Problema para ler arquivos de log grandes no servidor redhat linux

Problema para ler arquivos de log grandes no servidor redhat linux

Meu servidor de aplicativos jboss gera alguns arquivos de log bastante grandes, geralmente em torno de 8 a 10 gb. Como posso visualizar esses arquivos de log em meu servidor Redhat Linux?

Responder1

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 fazê-lo.

Responder2

Eu costumo usar lesspara visualizar arquivos de log. Ele pode visualizar arquivos de log enormes (multi-giga bytes). lesstambém é capaz de visualizar arquivos de log compactados (terminando com .gz).

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

Responder3

Você também pode usar um 'head' para listar as primeiras linhas ou um 'tail' para listar o final do arquivo. Se você anexar um número após o 'cabeçalho' ou o 'cauda', esse número de linhas será exibido.

Alan

Responder4

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

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.

(eles são extraídos de um arquivo /var/log/messages, mas a idéia é que cada entrada seja precedida por um carimbo de data/hora).

Dado que seu arquivo de log está preenchido com carimbos de data/hora, o que faço é algo semelhante ao seguinte:

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

O que na verdade é apenas uma busca pelo carimbo de data e hora de hoje, ou seja,

grep "^27 de dezembro 08:14" /my/log/file > /tmp/814amLog.txt

Então eu less ou vim -R o arquivo 814amLog.txt. A ideia é colocá-lo em um pedaço pequeno que lhe interesse.

O comando split fornecido como primeira resposta é utilizável, mas na minha experiência fornece resultados bastante arbitrários. Normalmente procuro algo que aconteceu "nessa época". Portanto, o grep'ing por data e hora é usado com mais frequência.

Você pode criar um script de um cron job para percorrer seus arquivos de log à noite e salvá-los em um local apropriado, para que você não precise fazer isso ad hoc. Eu também recomendo fortemente a criação de um trabalho para compactar com gzip arquivos de log com mais de um dia ou mais, pois você ficará surpreso com a quantidade de espaço em disco que você economiza.

informação relacionada