Problem beim Lesen großer Protokolldateien im Redhat-Linux-Server

Problem beim Lesen großer Protokolldateien im Redhat-Linux-Server

Mein JBoss-Anwendungsserver generiert einige ziemlich große Protokolldateien, oft zwischen 8 und 10 GB groß. Wie kann ich diese Protokolldateien auf meinem Redhat-Linux-Server anzeigen?

Antwort1

Versuchen Sie es mit dem Split-Befehl.

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

Und ja, rotieren Sie Ihre Protokolldateien häufiger. Es wäre ein abscheuliches Verbrechen, dies nicht zu tun.

Antwort2

Normalerweise verwende ich lesses, um Protokolldateien anzuzeigen. Es kann riesige Protokolldateien (mehrere Gigabyte) anzeigen. lesskann auch komprimierte Protokolldateien (mit der Endung .gz) anzeigen.

Sie können auch grepnach bestimmten Mustern filtern.

Antwort3

Sie können auch einen „Kopf“ verwenden, um die ersten Zeilen aufzulisten, oder einen „Schwanz“, um das Ende der Datei aufzulisten. Wenn Sie nach dem „Kopf“ oder „Schwanz“ eine Zahl anhängen, wird diese Zeilenanzahl angezeigt.

Alan

Antwort4

Wir haben hier ein ähnliches Problem (große Logdateien, allerdings nicht JBoss) und ich kann nur sagen: „grep ist dein Freund“. Ich nehme an, deine Logdateien sehen ungefähr so ​​aus:

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.

(diese werden aus einer Datei /var/log/messages gezogen, aber die Idee ist, dass jedem Eintrag ein Zeitstempel vorangestellt wird).

Da Ihre Protokolldatei mit Zeitstempeln gefüllt ist, gehe ich ungefähr wie folgt vor:

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

Das ist eigentlich nur das Suchen nach dem heutigen Zeitstempel, d. h.

grep "^27. Dez. 08:14" /mein/log/datei > /tmp/814amLog.txt

Dann verwende ich less oder vim -R für die Datei 814amLog.txt. Die Idee ist, sie in mundgerechte Stücke zu zerlegen, die Sie interessieren.

Der als erste Antwort angegebene Split-Befehl ist verwendbar, liefert meiner Erfahrung nach aber eher willkürliche Ergebnisse. Normalerweise suche ich nach etwas, das „ungefähr zu dieser Zeit“ passiert ist. Daher wird Grep nach Datum und Uhrzeit häufiger verwendet.

Sie können einen Cron-Job skripten, um Ihre Protokolldateien nachts zu durchsuchen und an einem geeigneten Ort zu speichern, sodass Sie dies nicht ad hoc tun müssen. Ich empfehle außerdem dringend, einen Job zum GZIP-Komprimieren von Protokolldateien zu erstellen, die älter als etwa einen Tag sind. Sie werden erstaunt sein, wie viel Speicherplatz Sie sparen.

verwandte Informationen