Problema para ler grandes arquivos de log no servidor redhat linux

1

Meu servidor de aplicativos jboss gera alguns arquivos de log muito grandes, geralmente em torno de 8 a 10 gb. Como posso visualizar esses arquivos de log no meu servidor redhat linux?

    
por Jayakrishnan T 27.12.2010 / 12:13

4 respostas

3

Tente usar o comando split.

split --bytes=100M <logfile> <logfile>

E sim, gire seus arquivos de log com mais frequência. É um crime hediondo não fazer isso.

    
por 27.12.2010 / 14:04
3

Eu costumo usar less para ver arquivos de log. Pode ver enormes arquivos de log (bytes multi-giga). less também é capaz de visualizar arquivos de log compactados (terminando com .gz ).

Você também pode usar grep para filtrar por um padrão específico.

    
por 27.12.2010 / 12:15
1

Você também pode usar um 'cabeçalho' para listar as primeiras linhas ou um 'final' para listar o final do arquivo. Se você acrescentar um número após a "cabeça" ou a "cauda", ele exibirá esse número de linhas.

Alan

    
por 27.12.2010 / 15:40
0

Temos um problema semelhante aqui (grandes arquivos de log, embora não o JBoss), e tudo o que posso dizer é que "grep é seu amigo". Eu suponho que seus arquivos de log sejam parecidos com isto: %pr_e%

(estes são extraídos de um arquivo / var / log / messages, mas a idéia é que cada entrada é precedida por um timestamp).

Dado que seu arquivo de log é preenchido com registros de data e hora, o que eu faço é algo parecido com o seguinte:

Dec 27 08:14:35 hostname kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex
Dec 27 08:14:35 hostname kernel: eth2: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:35 hostname kernel: eth3: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:36 hostname pcscd: hotplug_libusb.c:402:HPEstablishUSBNotifications() Driver ifd-egate.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.

Que realmente é apenas grep'ing para timestamp de hoje, ou seja,

grep '^'date "+%b %d"' 08:14' /my/log/file > /tmp/814amLog.txt

Então eu menos ou vim -R o arquivo 814amLog.txt. A ideia é colocá-lo em um pedaço do tamanho que você está interessado.

O comando dividido dado como a primeira resposta é utilizável, mas na minha experiência dá resultados bastante arbitrários. Normalmente estou procurando algo que aconteceu "sobre esse tempo". Assim, a data e a hora são usadas com mais frequência.

Você pode criar um script de cron job para grep através de seus arquivos de log à noite e salvá-los em um local apropriado, assim você não precisa fazê-lo adhoc. Eu também recomendo a criação de um trabalho para gzip compactar arquivos de log mais antigos que um ou dois dias, pois você ficará surpreso com a quantidade de espaço em disco que você economiza.

    
por 27.12.2010 / 18:10