Cavando através de enormes arquivos de log gziped

4

Ocasionalmente, eu preciso vasculhar arquivos de log enormes (vários GB descompactados) para depurar um erro específico.

Agora, o vim está ok para navegar pelo arquivo, mas quando eu preciso encontrar algo no arquivo é completamente inútil. Existe alguma ferramenta que possa indexar o log e permitir que eu pesquise o arquivo mais rapidamente?

Idealmente, uma ferramenta de linha de comando.

EDIT: Só para esclarecer, ferramentas como ack ou grep não são adequadas, já que preciso examinar o contexto das correspondências e -C , -A , -B não são boas o suficiente . Além disso, ack e grep ainda são inutilmente lentos.

    
por Let_Me_Be 27.02.2013 / 12:36

2 respostas

4

Existem indexadores de log realmente bons que são um pouco maiores que o nível da ferramenta de linha de comando. Comercialmente, splunk é o grande e difícil de bater. O Graylog2 é uma boa implementação de código aberto. O Elasticsearch + Logstash também é muito bom.

Existe um pouco de sobrecarga para configurá-los para coletar e executar o servidor de coleta, mas uma vez que você tenha a coleta central de logs como parte de seu sistema, eles são ótimos. Consultar e relatar registros de várias fontes é o maior benefício para aplicativos com vários níveis.

Quanto à linha de comando, se você puder conectar seu log ao syslog, o systemd journald implementação permite a indexação em um número de campos conforme os itens são registrados. Não tenho certeza se isso seria útil no processamento de texto, mais para os metadados.

Não tenho certeza sobre qualquer ferramenta de linha de comando ad hoc, eles ainda teriam uma penalidade de tempo de extração / carga / análise cada vez que você carregasse o arquivo.

Dito isso, less faz a maior parte do que preciso em um único arquivo de log.

&pattern  grep pattern
/pattern  search forward
?pattern  search backward
shift-f   tail -f

o modo tail também pode levar em consideração o padrão anterior, o que é ótimo para assistir a registros ativos

    
por 27.02.2013 / 14:04
2

A pesquisa por um arquivo com less pode ser uma opção. Não requer que os arquivos caibam na memória. E é muito mais rápido comparado ao vim (mesmo quando o plugin LargeFile é usado).

As desvantagens são: Ele provavelmente não irá superar grep do ponto de vista do desempenho. E a maioria das alternativas sufoca se o tamanho do arquivo se aproximar do tamanho da RAM.

    
por 27.02.2013 / 14:04