Análise de log de script de software livre: ferramentas para quebrar mensagens de log stderr em grupos (bugs normais vs anormais) ou observar tendências (estamos recebendo menos desta mensagem e mais dela)

3

Imagine alguns sistemas Linux com scripts de vários tipos (principalmente PERL, mas pode ser qualquer coisa que grava no STDERR) que são executados 100 vezes por usuários diferentes com necessidades ligeiramente diferentes.

Os logs são mantidos da saída e os avisos / erros (stderr) de cada execução do script. Isso significa que milhares de logs estão se acumulando.

Os usuários cometem erros. E os desenvolvedores nem sempre escrevem códigos limpos, etc.

Gostaríamos de saber, a partir dos registros, o que está acontecendo, ambos (programaticamente) em cada caso e (administrativamente, analiticamente) no entendimento das tendências ao longo do tempo.

Esse problema também pode ser considerado em um contexto de servidor da web / cgi, já que muitas vezes gera centenas de execuções de scripts, mas eu não estou procurando por soluções peculiares aos logs de acesso / erro do apache.

Quais ferramentas de software livre / de código aberto existem, em geral, para identificar e analisar resultados incomuns a partir de uma coleção de logs em que cada log representa uma execução de um procedimento?

Recursos úteis podem incluir:

  • pode comparar o stdout / stderr dessa execução com a saída histórica e determinar quais partes do stdout ou stderr são incomuns ou dignas de nota
  • pode alcançar "compactação" ao armazenar todos os registros em texto simples, eliminando a necessidade de armazenar o mesmo erro 100 vezes ou mais
  • pode analisar toda a loja em busca de tendências (essa mensagem está aparecendo menos ou mais do que no passado), bem como as contagens (os erros mais frequentes são esses)
  • tem uma interface de usuário navegável de algum tipo com gráficos e exportação de dados

Por exemplo, pode-se pegar todos os logs feitos a partir de stderr, cat-los e executá-los através de sort e uniq -c e ordenar novamente para fazer uma lista das strings de erro do menos frequente ao mais frequente. Pode-se também começar a despejar os logs em um banco de dados SQL de algum tipo.

Isso pode se tornar o bloco de construção de uma ferramenta, mas talvez existam pacotes completos que já fazem isso e muito mais. Então eu pensei em pedir para ver o que outras pessoas usam.

Você desenvolve ferramentas internas para esse tipo de coisa ou existem boas alternativas de código aberto?

    
por Paul 12.02.2010 / 15:13

2 respostas

1

Parece que o Splunk seria uma boa resposta para muitas das suas necessidades, se não todas. É muito fácil correr para avaliar. Se você já pensou nisso, talvez comente por que não atende às suas necessidades.

Felicidades

    
por 17.02.2010 / 02:21
2

Meus pensamentos seriam: Use petit ( link ) para analisar em vez de uniq. Os registros podem ser armazenados em formato .gz, de modo que o seguinte pode alcançar seus primeiros 3 objetivos e é GPL. Não há interface gráfica ou noção de exportação.

zcat logfile.gz | petit --hash

Ou

zcat logfile.gz | petit --dgraph
    
por 01.03.2010 / 18:53