Protokolle mit journalctl untersuchen
In den vorherigen Schritten haben Sie über den Kernel-Ringpuffer (kernel ring buffer) und die Anzeige seines Inhalts mit dmesg
gelernt. Während dmesg
hervorragend für Kernel-Nachrichten geeignet ist, verwenden moderne Linux-Systeme ein umfassenderes Protokollierungssystem namens systemd-journald
. Der Befehl journalctl
ist das primäre Tool zur Interaktion mit dem systemd-journald
-Journal.
systemd-journald
sammelt Protokollnachrichten aus verschiedenen Quellen, einschließlich des Kernels (wie die Nachrichten, die Sie mit dmesg
gesehen haben), Systemdiensten, Anwendungen und sogar der Standardausgabe und des Standardfehlers von Prozessen. Es speichert diese Protokolle in einem strukturierten, indizierten Format, was die Suche und Filterung von Nachrichten erleichtert.
Lassen Sie uns den journalctl
-Befehl erkunden.
Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist.
Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
journalctl
Dieser Befehl zeigt alle von systemd-journald
gesammelten Protokollnachrichten an. Ähnlich wie bei dmesg
kann die Ausgabe sehr lang sein und wird normalerweise automatisch an einen Pager wie less
weitergeleitet.
-- Journal begins at Tue 2024-07-23 10:00:00 UTC, ends at Tue 2024-07-23 10:30:00 UTC. --
Jul 23 10:00:01 hostname systemd[1]: Starting Network Manager...
Jul 23 10:00:02 hostname kernel: Linux version 5.15.0-xx-generic (...)
Jul 23 10:00:03 hostname systemd[1]: Started Network Manager.
Jul 23 10:00:04 hostname systemd[1]: Starting OpenSSH server daemon...
...
Sie können die Pfeiltasten verwenden, um zu scrollen, und q
drücken, um den Pager zu verlassen.
journalctl
verfügt über viele Optionen zur Filterung von Protokollen. Hier sind einige Beispiele:
Um nur Kernel-Nachrichten anzuzeigen (ähnlich wie dmesg
):
journalctl -k
Um Protokolle eines bestimmten Dienstes anzuzeigen, beispielsweise des SSH-Dienstes:
journalctl -u ssh.service
Um Protokolle seit einem bestimmten Zeitpunkt anzuzeigen, beispielsweise seit "heute":
journalctl --since "today"
Um die neuesten Protokolle anzuzeigen und neue Nachrichten sofort zu verfolgen (ähnlich wie tail -f
):
journalctl -f
Drücken Sie Ctrl+C
, um den journalctl -f
-Befehl zu beenden.
journalctl
ist ein leistungsstarkes Tool für die Systemadministration und die Fehlerbehebung. Es bietet einen zentralen Ort für Protokolle und flexible Optionen für die Anzeige und Filterung dieser Protokolle.
Experimentieren Sie in Ihrem Terminal mit einigen der journalctl
-Optionen, um zu sehen, wie sie die Ausgabe beeinflussen.
Klicken Sie auf Weiter, um dieses Lab abzuschließen.