Como acompanhar vários arquivos de log gerados dinamicamente em uma visualização combinada

Como acompanhar vários arquivos de log gerados dinamicamente em uma visualização combinada

Eu tenho um diretório com arquivos de log, com novos arquivos adicionados de tempos em tempos. Quero 'ajustá-los' em uma visualização combinada (ver todas as linhas de todos os arquivos mesclados)

Vi o lnav recomendado algumas vezes para isso e, com base na descrição do recurso, ele deve suportar essas opções - mas a documentação não é clara o suficiente.

especificamente - ao executar o lnav para rastrear um diretório, posso alternar arquivos de log usando as teclas f\F, mas não obter uma visualização combinada

Responder1

Na verdade, não vejo nenhuma boa solução para sua necessidade usando lnav. O melhor que consigo pensar é usar tail -fem todos os arquivos de log:

tail -f file_1.log ... file_n.log

Outra solução logtailque tem algumas desvantagens, mas lida com o caso em que novos arquivos de log são adicionados de tempos em tempos:

#!/bin/bash

# Quietly initialize logtail offset files
for logfile in *log
do
    logtail $logfile
done > /dev/null


while :
do
    # wait a second for new logs
    sleep 1
    for logfile in *log
    do  
        # output new logs since last logtail run, prepend with log filename
        logtail $logfile | sed "s/^/$logfile: /"
    done
done

Responder2

Você pode obter uma visão combinada das mensagens de log no lnav se os arquivos tiverem carimbos de data e hora e compreender os formatos dos arquivos. Se o lnav não entender o formato do arquivo de log, ele tratará os arquivos como texto simples. Você pode criar uma nova definição de formato conforme descrito em seudocumentação.

informação relacionada