So zeigen und analysieren Sie Protokolle unter Linux mit journalctl

Protokollmeldungen sind wichtig für die Überwachung und Wartung eines fehlerfreien Linux-Systems. Jeder Linux-Computer speichert Protokollmeldungen für verschiedene Dienste oder Jobs. In diesem Handbuch wird untersucht, wie Protokollnachrichten mit journalctl gelesen und analysiert werden, einem Befehlszeilentool zum Lesen von Protokollnachrichten, die von journald geschrieben wurden.

Was wird aufgezeichnet?

Journald ist ein Systemprotokollierungsdienst, der Protokollnachrichten in einem Journal aggregiert. Es ist ein Teil des systemd-Daemons, der für die Ereignisprotokollierung unter Linux verantwortlich ist. Das Journal ist einfach eine Binärdatei, die zum Speichern von Protokollnachrichten verwendet wird, die von journald generiert werden.

Journalprotokollnachrichten sind nicht dauerhaft, da sie im RAM gespeichert werden, einer flüchtigen Speicherform. Standardmäßig gehen aufgezeichnete Protokolle verloren oder werden gelöscht, wenn Ihr PC neu startet oder die Stromversorgung ausfällt. Linux weist Journalprotokollen eine feste Menge an RAM zu, um eine Verstopfung des Systemspeichers zu vermeiden.

So verwenden Sie den journalctl-Befehl

Sie können journalctl verwenden, um das Systemd-Journal oder die Journald-Protokolle abzufragen. Das System indiziert alle Journalprotokolle, um die Effizienz beim Lesen von Protokollnachrichten aus dem Journal zu verbessern.

Hinweis : Dieses Handbuch verwendet sudo zum Ausführen von Befehlen mit erhöhten Rechten, da der Befehl journalctl nicht alle Protokollnachrichten auflistet, wenn Sie ihn als normaler Linux-Benutzer ausführen.

Alle Protokollnachrichten anzeigen

Um alle Journalprotokolle anzuzeigen, führen Sie einfach den Befehl journalctl ohne Argumente aus:

 sudo journalctl
So zeigen und analysieren Sie Protokolle unter Linux mit journalctl - journalctl logs

Der Befehl journalctl listet alle Journalprotokolle auf Ihrem System in chronologischer Reihenfolge auf. Der Befehl verwendet weniger im Hintergrund, was Ihnen die gleiche Navigationsfähigkeit bietet, die Sie im Allgemeinen mit dem Befehl less hätten. Sie können beispielsweise mit den Tasten F und B auf Ihrer Tastatur durch die Protokolle navigieren.

Wenn Sie die Reihenfolge ändern möchten, in der das System die Protokolle ausgibt, dh die neuesten zuerst anzeigen , können Sie das Flag -r mit dem Befehl verwenden. Das Flag -r steht für Reverse .

 sudo journalctl -r

Kernel-Journald-Protokolle anzeigen

Kernel-Protokolle sind unter Linux sehr wichtig, da sie Informationen zu Ihrem System ab dem Zeitpunkt des Hochfahrens enthalten. Um nur Kernel-Logs anzuzeigen, geben Sie das Flag -k mit dem Befehl journalctl an:

 sudo journalctl -k

Die Ausgabe listet auch einige Kernel-Informationen auf, wie die Kernel-Version und ihren Namen.

Verwandte: Was ist ein Kernel in Linux und wie überprüfen Sie Ihre Version?

Aufgezeichnete Logs nach einem bestimmten Programm filtern

Sie können mit journalctl auch Protokolle anzeigen, die sich auf ein bestimmtes Programm oder einen bestimmten Dienst beziehen. Um beispielsweise Protokolle anzuzeigen, die dem Cron- Dienst zugeordnet sind, führen Sie den folgenden Befehl aus:

 sudo journalctl -u cron

Protokollnachrichten in Echtzeit anzeigen

Manchmal möchten Sie möglicherweise die Protokolle in Echtzeit anzeigen, während sie protokolliert werden. Geben Sie dazu den folgenden Befehl ein:

 sudo journalctl -f

Verwenden Sie die Tastenkombination Strg + C , um die Echtzeitansicht zu verlassen.

Protokollnachrichten nach Datum abrufen

Sie können journalctl verwenden, um die Protokolle mithilfe eines Zeitstempels zu filtern und zu analysieren. Um beispielsweise die Protokolle von gestern bis heute anzuzeigen:

 sudo journalctl --since=yesterday

Sie können genauer sein, indem Sie einen detaillierten "seit"- und "bis"-Zeitstempel wie folgt verwenden:

 sudo journalctl --since="2021-07-17 12:00:00" --until="2021-07-17 15:00:00"

Journalctl zeigt nur die Protokollnachrichten für den angegebenen Zeitraum an.

Protokollnachrichten nach UID oder PID anzeigen

Sie können Journalprotokolle auch anhand der Benutzer-ID (UID) oder der Prozess-ID (PID) filtern. Die grundlegende Syntax lautet:

 sudo journalctl _UID=0

…wobei 0 die UID für das Root-Konto ist. Sie können die UID im oben genannten Befehl auch durch PID oder GID (Gruppen-ID) ersetzen.

Formatieren der journalctl-Ausgabe

Um Journalctl-Protokolle in einem bestimmten Ausgabeformat anzuzeigen, sollten Sie den Befehl journalctl -o gefolgt von Ihrem bevorzugten Format verwenden. Um beispielsweise die Protokolle in einem hübschen JSON-Format anzuzeigen, führen Sie den folgenden Befehl aus:

 sudo journalctl -o json-pretty

Ausgabe:

So zeigen und analysieren Sie Protokolle unter Linux mit journalctl - journald logs in json formatt

Verwandte: Erste Schritte mit der Systemprotokollierung unter Linux

Journald unter Linux konfigurieren

Dieses Handbuch hat Ihnen gezeigt, wie Sie Journalprotokollnachrichten unter Linux mit dem Befehl journalctl anzeigen und analysieren. Das Verzeichnis /var/log/journal speichert alle Journald-Protokolle. Beachten Sie, dass nicht alle Linux-Distributionen standardmäßig Journald aktiviert haben.

Sie können die Datei /etc/systemd/journald.conf verwenden, um die Journald-Konfiguration auf Ihrem PC zu konfigurieren oder zu ändern. Abgesehen von einem effektiven Protokollierungsdienst gibt es mehrere andere Tools, die ein Muss sind, wenn Sie die Sicherheit Ihrer Linux-Server ernst nehmen.