Zum Inhalt springen

systemd Journal

journald (systemd-journald) ist der Log-Dienst von systemd. Er sammelt Meldungen aus allen Quellen — Kernel, Dienste, Anwendungen — in einem zentralen, binären Journal. Abgefragt wird es mit journalctl.

Terminal-Fenster
journalctl # gesamtes Journal (älteste zuerst)
journalctl -r # neueste Einträge zuerst (reverse)
journalctl -f # Echtzeit-Ansicht (wie tail -f)
journalctl -n 50 # letzte 50 Zeilen
journalctl -e # direkt ans Ende springen
Terminal-Fenster
journalctl -u nginx # Logs eines bestimmten Units
journalctl -u nginx -u php-fpm # mehrere Units gleichzeitig
journalctl -u nginx -f # Echtzeit-Logs eines Dienstes
journalctl -u ssh --since today # seit Mitternacht
Terminal-Fenster
journalctl --since "2026-03-24 08:00"
journalctl --since "2026-03-24 08:00" --until "2026-03-24 09:00"
journalctl --since "1 hour ago"
journalctl --since yesterday
journalctl --since today

journald verwendet die syslog-Prioritätsstufen (0 = kritischst, 7 = debug — beschrieben im Überblick):

Terminal-Fenster
journalctl -p err # Fehler und schlimmeres (0–3)
journalctl -p warning # Warnungen und schlimmeres (0–4)
journalctl -p err -n 20 # letzte 20 Fehlermeldungen
journalctl -p err --since today # Fehler von heute
Terminal-Fenster
journalctl -k # nur Kernel-Meldungen (entspricht dmesg)
journalctl -k --since today
journalctl -k -p err # nur Kernel-Fehler
Terminal-Fenster
journalctl _PID=1234 # Logs eines bestimmten Prozesses
journalctl _UID=1000 # Logs eines bestimmten Benutzers
journalctl _EXE=/usr/sbin/sshd # Logs eines bestimmten Programms
Terminal-Fenster
journalctl -o short # Standard (Zeitstempel + Meldung)
journalctl -o short-precise # mit Mikrosekunden
journalctl -o verbose # alle Metadaten
journalctl -o json # JSON (für Weiterverarbeitung)
journalctl -o json-pretty # JSON, lesbar formatiert
journalctl -o cat # nur Meldungstext, keine Metadaten
Terminal-Fenster
journalctl --disk-usage # aktueller Speicherverbrauch
# Altes Journal löschen
journalctl --vacuum-time=7d # alles älter als 7 Tage
journalctl --vacuum-size=500M # auf 500 MB reduzieren

Dauerhaft konfigurieren in /etc/systemd/journald.conf:

[Journal]
SystemMaxUse=500M # maximale Größe auf der Festplatte
MaxRetentionSec=1month # maximales Alter
Terminal-Fenster
sudo systemctl restart systemd-journald # Konfiguration übernehmen

Standardmäßig liegt das Journal in /run/log/journal/ und geht beim Neustart verloren. Für dauerhafte Speicherung:

Terminal-Fenster
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald

Oder in /etc/systemd/journald.conf:

[Journal]
Storage=persistent