Aus Raspberry Pi Geek 06/2017

Mit Journalctl die Systemd-Protokolle auswerten (Seite 2)

# journalctl --vacuum-size=100M

Dabei löscht die Software die ältesten Einträge, bis das Protokoll die gewünschte Größe erreicht. Alternativ schneiden Sie unter Angabe einer Zeit alles Ältere heraus:

# journalctl --vacuum-time=1month

Dieser Befehl würde – ungeachtet der resultierenden Größe der Protokolldatei – alle Meldungen verwerfen, die älter als ein Monat sind (Abbildung 2).

Abbildung 2: Mit Schaltern wie »--vacuum-time« weisen Sie Journald an, die Protokolldateien zu verkleinern, ohne dazu die Konfiguration ändern zu müssen.

Abbildung 2: Mit Schaltern wie »–vacuum-time« weisen Sie Journald an, die Protokolldateien zu verkleinern, ohne dazu die Konfiguration ändern zu müssen.

Früher und mehr

Journald zeichnet nicht nur wesentlich mehr Daten auf, als die früheren Protokollmechanismen, sondern beginnt damit früher im Boot-Prozess, als das bislang möglich war. Das hilft dabei, Probleme beim Systemstart leichter einzugrenzen. Wer erinnert sich nicht an Fotos von Monitoren mit einem Startbildschirm, auf dem eine Kernel Panic oder sonstige Probleme den Start des Rechners verhinderten? So etwas gehört mit Systemd weitestgehend der Vergangenheit an.

SysVinit speichert keine Meldungen aus sehr frühen Phasen des Betriebs, da zu diesem Zeitpunkt das Root-Dateisystem noch nicht zum Schreiben eingehängt ist. Systemd erstellt stattdessen zur Laufzeit einen Socket [4], aus dem der Dienst später die gesammelten Meldungen einliest. Damit bietet das Journal – trotz des oft als Problem angesehenen Speicherns als Binärdatei – einige wesentliche Vorteile.

Status und Überprüfung

Es existiert ein Journal für den User und eines für das System. Gehört der Benutzer zur Gruppe systemd-journal, so darf er das Journal als User aufrufen und erhält trotzdem die gesamte Ausgabe. Bevor Sie jedoch die eigentlichen Daten des Journals kennenlernen, stellen wir Ihnen die wichtigsten Befehle zum Überprüfen der Funktion vor.

Den aktuellen Status des Daemons stellen Sie über Systemctl fest (Listing 1). Mit journalctl --disk-usage überprüfen Sie die derzeitige Größe des Journals, während journalctl --verify die Integrität der einzelnen Daten testet (Listing 2).

Listing 1

 

$ systemctl status systemd-journald
 systemd-journald.service - Journal Service
   Loaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled)
   Active: active (running) since Fr 2017-03-10 14:33:37 CET; 4h 21min ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
 Main PID: 10376 (systemd-journal)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-journald.service
            10376 /lib/systemd/systemd-journald
Mär 10 14:33:37 rpg-pi3b-01 systemd-journald[10376]: Runtime journal (/run/log/journal/) is 4.7M, max 38.3M, 33.5M free.
Mär 10 14:33:37 rpg-pi3b-01 systemd-journald[10376]: Journal started
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

Listing 2

 

$ sudo journalctl --disk-usage
Archived and active journals take up 4.7M on disk.
$ sudo journalctl --verify
PASS: /run/log/journal/747bced4498d729c8a19f23400000006/system.journal

Um festzustellen, ob die Zeitangaben des Logs zuverlässig sind, überprüfen Sie mit timedatectl status, ob die eingestellte Zeitzone Ihrem Standort entspricht (Listing 3). Die oberste Zeile sollte die aktuelle Zeit anzeigen. Betreiben Sie einen Rechner in einer anderen Zeitzone, passen Sie diese mithilfe des Befehls timedatectl set-timezone Zone an.

Listing 3

 

$ timedatectl status
      Local time: Fr 2017-03-10 19:02:02 CET
  Universal time: Fr 2017-03-10 18:02:02 UTC
        RTC time: Fr 2017-03-10 18:02:02
       Time zone: Europe/Berlin (CET, +0100)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Grundsätzlich fordern Sie Auszüge aus dem Journal immer mit dem Befehl journalctl an. Standardmäßig kommt dabei zur Anzeige automatisch der Pager Less zum Einsatz. Er ermöglicht, zeilen- oder seitenweise vor und zurück durch das Protokoll zu blättern. Der Zugriff erfolgt als normaler User, Sie benötigen keine Root-Rechte. Da es sich um Binärdateien handelt, kehren Sie erst nach einem Druck auf [Q] wieder zum Prompt zurück.

Das komplette Journal

Die komplette Ausgabe – deren Umfang richtet sich nach der zulässigen Größe des gesamten Logs und der Laufzeit seit dem letzten Reboot – erhalten Sie mit der Eingabe von journalctl ohne Optionen. Damit sehen Sie alle gespeicherten Logs.

Für jeden Neustart des Rechners fügt die Software die Zeile -- Reboot -- an, um die Informationen voneinander abzugrenzen. Das erweist sich insbesondere dann als sinnvoll, wenn Sie verfolgen wollen, wie lange ein Fehler bereits auftritt. Mit journalctl -p err grenzen Sie dann die Ausgabe bei Bedarf ein: Die Option zeigt über das gesamte Journal hinweg nur Ausgaben des Log-Levels ERROR an.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben