Como posso visualizar arquivos de log no Linux e aplicar arquivadores personalizados durante a exibição?

7

(Eu perguntei esta questão em stackoverflow mas pode ser melhor aqui ...)

Eu preciso ler alguns arquivos de log gigantescos em um sistema Linux. Há muita desordem nos logs. No momento estou fazendo algo assim:

cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less

Mas é trabalhoso - toda vez que eu quiser adicionar outro filtro, eu preciso sair do less e editar a linha de comando. Alguns dos filtros são relativamente complicados e podem ser multi-linhas.

Eu gostaria de aplicar alguns filtros enquanto estou lendo o log e uma maneira de salvar esses filtros em algum lugar.

Existe uma ferramenta que pode fazer isso por mim? Não consigo instalar novos softwares, então espero que seja algo que já esteja instalado - por exemplo, less, vi, algo em um lib Python ou Perl, etc.

Alterar o código que gera o registro para gerar menos não é uma opção.

    
por Dan 26.02.2010 / 02:33

2 respostas

2

  1. Ler arquivos de log grandes não é uma boa ideia
    • você precisa primeiro filtrá-los para as linhas necessárias e depois analisá-las
    • mesmo assim, se possível (e se as linhas filtradas também forem muito),
      você deve executar filtros secundários e contar scripts para analisá-los
  2. Quando você tem um arquivo estático grande e conhece os filtros para eliminar linhas dele,
    é sempre uma boa idéia armazenar a saída filtrada (em vez de tentar examiná-la imediatamente).
    • Dessa forma, você pode executar filtros secundários na saída filtrada e eles não precisarão ser executados novamente na coisa inteira
    • assim, em seu exemplo, armazene a primeira saída em um novo arquivo e, quando souber que outro filtro o aplica nesse arquivo armazenado
    • claro, isso implica em algum espaço de armazenamento para o arquivo filtrado.
      Funciona melhor se seus filtros reduzirem o arquivo real em grande quantidade
  3. Ferramenta de linux comum como ' grep ', 'sed ',' AWK 'geralmente é suficiente para processar muito bem o arquivo de log de texto.
    Eu tenho processado arquivos de log na ordem de 10 GB freqüentemente com essas coisas. Você pode criar suas próprias ferramentas com essas coisas em ' bash scripts '.
  4. Não subestime ' vim ', ele também pode manipular arquivos grandes (mas levará tempo, então forneça arquivos filtrados)
por 26.02.2010 / 02:56
0

Você certamente não instalará isso, mas se isso for algo normal, vale a pena pesquisar em Splunk . Splunk existe para indexar grandes conjuntos de dados como este para ajudá-lo a encontrar o que você está procurando.

    
por 26.02.2010 / 21:11