Alguém conhece uma ferramenta para detectar e relatar padrões repetidos em um arquivo de log? [fechadas]

12

Eu preciso monitorar alguns arquivos de log barulhentos grandes (500 m / dia) de um aplicativo Java (log4j). Agora, eu olho manualmente para os arquivos, grep para "ERRO" e assim por diante. No entanto, deve ser possível que uma ferramenta encontre padrões repetidos no arquivo, conte-os e forneça detalhes dos detalhes de entradas individuais. Alguém conhece essa ferramenta? Uma interface do usuário baseada em texto ou na Web seria legal.

David Tinker
fonte
1
Para mim, essa pergunta grita absolutamente perl.
John Gardeniers
Hmm, está começando a parecer que vou ter que escrever um script bash com muitos greps. Eu esperava que algo descobrisse os padrões automaticamente.
David Tinker
sério, é exatamente para isso que o perl foi criado. Você pode escrever um script de autoaprendizagem para esses padrões, embora isso esteja obviamente fora de escopo aqui.
John Gardeniers
O stackoverflow.com/questions/2590251/… possui uma solução chamada Chainsaw.
John aka hot2use
datadoghq.com/blog/log-patterns <- recomendo, mas, embora não seja muito caro, também não é super barato.
28419 neokyle

Respostas:

3

Ouvi falar de pessoas que aplicam a filtragem bayesiana em arquivos de log para identificar coisas interessantes versus entradas de log de rotina. Eles usavam filtros de spam, nos quais as entradas desinteressantes de rotina eram consideradas "boas", enquanto as incomuns eram consideradas "spam" e, usando essa coloração, elas eram capazes de mudar.

Parece muito com coisas de aprendizado de máquina para mim, mas, novamente, eu não vi isso em ação, apenas ouvi falar sobre cervejas.

adamo
fonte
Isso me parece perfeitamente razoável e você pode até ter suposições anteriores muito fortes (no sentido bayesiano) sobre certas palavras que sempre aparecem nos logs do servidor.
DrewConway
Sim, isso faria o trabalho. Alguém conhece uma implementação que eu possa treinar?
David Tinker
Alguém poderia começar com o CRM114, eu acho. Ou aguarde até que Drew Conway publique seu Machine Learning for Hackers . Ainda estou trabalhando para encontrar a referência original ao que propus.
Adamo 22/12
Sim! Eu li em 2005 neste tópico de membros sábios . O autor do email menciona o spamprobe .
Adamo
6

Splunk faz maravilhas para esse tipo de coisa. Eu o uso internamente para reunir todos os logs e fazer pesquisas rápidas por meio de sua excelente interface baseada em navegador.

Burhan Khalid
fonte
Infelizmente, provavelmente precisará da versão não-livre e um pouco caro
David Tinker
3

O syslog-ng possui um recurso chamado patterndb. Você pode criar padrões e corresponder entradas de log a eles em tempo real e enviar essas entradas para separar os arquivos de log.

Pedra
fonte
2

Ao analisar o syslog-ng e o patterndb (+1 dessa resposta acima), encontrei uma ferramenta baseada na Web chamada ELSA: http://code.google.com/p/enterprise-log-search-and-archive/ . É o F / OSS em perl, com uma interface web, e supostamente muito rápido.

Ainda não tentei, mas assim que terminar de filtrar usando o patterndb, tentarei o ELSA.

EdwardTeach
fonte
1

Experimente petit .
Não tenho certeza se funcionará com o formato log4j, mas você poderá criar um filtro personalizado para isso.
O Petit não possui interface web, exibe gráficos em seu shell (ASCII art ftw!).
É muito útil ver rapidamente mensagens repetidas e descobrir quando elas aconteceram ou começaram a acontecer com mais frequência.

falsificador
fonte
0

O Glogg é um explorador de logs muito bom, pois você tem a possibilidade de criar uma base de filtro na string e na linha de cores ou recuperar toda a ocorrência em uma string.

http://glogg.bonnefon.org/

Alexandre Roux
fonte
0

Splunk geralmente é uma boa solução para isso. Mas você mencionou que é muito caro para você. Portanto, recomendo que você consulte o Logstash ou o GrayLog .

Raffael Luthiger
fonte
-1

Você pode experimentar o LogXtender da SEQREL, que detecta automaticamente padrões e agrega logs semelhantes. O jeito é criar expressões regulares dinamicamente e usar o regex em cache para corresponder a outros logs. Com a detecção de taxonomia adicional, mais granularidade pode ser adicionada. Uma versão gratuita pode ser baixada em https://try.logxtender.net .

Mihnea
fonte