Journald CheatSheet
Weil Textdateien so 2010 sind. Journald bringt Metadaten, Struktur und einen Hauch futuristischen Glamours in Ihre Systemprotokolle.
– Eine sehr sanfte Brise des Humors weht durch dieses Dokument
Erste Schritte mit journalctl
| Befehl | Was es tut (mit Persönlichkeit) |
|---|---|
| journalctl | Alles. Wirklich alles. Seit Systemstart. Viel Spaß beim Scrollen. |
| journalctl -e | Springt zum Ende – für diejenigen, die sich nur für das neueste Drama interessieren. |
| journalctl -r | Umgekehrte Reihenfolge: neueste zuerst, wie bei Instagram. |
| journalctl -f | Folgt dem Protokoll in Echtzeit – besser als jeder Livestream. |
| journalctl --no-pager | Kein Pager (kein less). Gibt direkt im Terminal aus. |
💡 Pager-Tipps(wenn less Sie nervt):
/ vorwärts suchen, ? rückwärts suchen, n / Shift+N nächste/vorherige, q beenden.
Filtern wie ein Profi
Nach Boot
journalctl --list-boots # Zeigt alle Boot-IDs mit Index an journalctl -b 0 # Aktueller Boot journalctl -b -1 # Vorheriger Boot (im Grunde der Vorgestern)
Nach Zeit
journalctl --since "2026-05-10 23:00" --until "2026-05-11 01:00" journalctl --since "vor 20 Minuten" journalctl --since "gestern" --until "heute"
Nach systemd-Einheit (Dienst)
journalctl -u NetworkManager # Nur NetworkManager journalctl -u sshd -u bluetooth # Mehrere Einheiten gleichzeitig
Nach Priorität (Protokollebene)
journalctl -p err # Fehler und schlimmer (0-3) journalctl -p 3 # Gleiche Bedeutung journalctl -p notice..warning # Bereich: notice bis warning
| Ebene | Name | Beschreibung (dramatische Version) |
|---|---|---|
| 0 | emerg | System steht in Flammen |
| 1 | alert | Jetzt handeln! Sofort! |
| 2 | crit | Kritisch, aber keine Panik |
| 3 | err | Fehler – tut weh, aber wir machen weiter |
| 4 | warning | Vorsicht, da braut sich etwas zusammen |
| 5 | notice | Normale, aber wichtige Nachricht |
| 6 | info | Informativ, wie ein Rezept |
| 7 | debug | Plauder-Modus |
Nach Schlüsselwort (schneller als grep!)
journalctl -g "Fehlgeschlagenes Passwort"
journalctl --grep '192\.168\.[0-9]{1,3}\.[0-9]{1,3}' # Perl-ähnlicher Regex
Nach ausführbarer Datei
journalctl /usr/bin/sshd # Oder ausdrücklich: journalctl _EXE=/usr/sbin/sshd
Nach beliebigen Metadatenfeldern
journalctl _UID=1000 # Nur Benutzer 1000 journalctl _TRANSPORT=kernel # Nur Kernel-Protokolle (auch: -k) journalctl _SYSTEMD_UNIT=sshd.service
Metadaten – die verborgenen Sterne
Alle Felder, die mit _ (Unterstrich) beginnen, sindvertrauenswürdige Felder– vom System gesetzt, können nicht vom Programm manipuliert werden.
Perfekt für Forensik oder um Malware auf frischer Tat zu ertappen.
journalctl -o verbose # Alle Metadaten eines Eintrags anzeigen journalctl -o json # JSON-Format für Skripte journalctl -o json-pretty # Schön formatiertes JSON
Beispielausgabe (verkürzt):
_TRANSPORT=syslog
PRIORITY=6
_PID=1973
_EXE=/usr/sbin/smartd
MESSAGE=Gerät: /dev/sda [...]
Nützliche Felder:
- _SYSTEMD_INVOCATION_ID – Alle Protokolle eines einzelnen Dienstlaufs
- __CURSOR – Eindeutige ID, um später genau an diesem Punkt fortzufahren
- _SELINUX_CONTEXT – Wenn Sie sich sicher fühlen möchten
Verwenden Sie --output-fields, um nur das zu holen, was Sie benötigen:
journalctl -o json --output-fields="MESSAGE,_EXE" _EXE=/usr/bin/sshd
Journald konfigurieren (Tüfteln erlaubt)
Wo die Konfiguration lebt
- /etc/systemd/journald.conf – Hauptdatei (kommentierte Standardwerte)
- /etc/systemd/journald.conf.d/my.conf – Ihre eigenen Snippets
Wichtige Optionen (von denen man träumen und die man anpassen kann)
| Option | Bedeutung | Standard |
|---|---|---|
| SystemMaxUse= | Maximaler Speicherplatz für das Journal | 10% der Partition, maximal 4 GB |
| SystemKeepFree= | Wie viel Speicherplatz muss frei bleiben | 15% |
| MaxRetentionSec= | Maximalalter der Protokolle (z. B. 30 Tage) | deaktiviert |
| Komprimieren= | Protokolle komprimieren? | ja |
Nach Änderungen:
systemctl reload systemd-journald # Neu laden ohne Neustart systemctl status systemd-journald # Auf Fehler überprüfen
Aufräumen ("Vakuumieren")
journalctl --disk-usage # Wie viel Speicherplatz verwenden die Protokolle? journalctl --vacuum-size=500M # Lösche die ältesten Protokolle, bis 500 MB übrig sind journalctl --vacuum-time=7d # Lösche alles, was älter als 7 Tage ist
Journald räumt automatisch auf, wenn die Grenzen erreicht sind. Keine weiteren Cron-Jobs zum Schreiben.
Letzte Worte der Weisheit
- journalctl -k – Nur Kernel-Protokolle (früher dmesg in einem Anzug)
- journalctl -x – Erklärungen zu Einträgen (--katalog)
- journalctl -n 50 – Nur die letzten 50 Zeilen
- Alles kombinieren:
journalctl -u sshd -b 0 -p 3 -n 20
→ SSH-Dienst, aktueller Boot, Fehler oder schlimmer, maximal 20 Zeilen.
Und wenn du einen alten Sysadmin beeindrucken möchtest:
"Journald ist keine Textdatei – es ist eine indizierte, binäre Protokollierung, selbstrotierende, metadatenreiche Datenbank mit vertrauenswürdigen Feldern."
Dann nimm einen Schluck Kaffee und genieße das Staunen.
Kopiere mich – bereit für deinen Blog
Wähle einfach den gesamten obigen Block aus, kopiere ihn und füge ihn als .md in deinen Blog-Editor ein.
Keine Angst vor dem Humor – er ist sehr sanft. Versprochen. 😊
Quelle: Dieser Artikel basiert auf dem c't-Ratgeber „Linux-Protokolldienst Journald verstehen und sinnvoll nutzen“ – https://www.heise.de/ratgeber/Linux-Protokolldienst-Journald-verstehen-und-sinnvoll-nutzen-11290995.html?seite=all