Der Befehl lautet journalctl -u nginx --since '1 hour ago': -u wählt die Unit, --since legt das Zeitfenster fest. Vier Flags — -u, --since, -p und -f — decken den Großteil der Incident-Analyse ab, und die Reihenfolge unten ist die, in der du sie tatsächlich einsetzt: von der kompletten Liste der Meldungen eines Dienstes bis zum Verfolgen des Fehlerstroms in Echtzeit und dem Export einer rotationssicheren Kopie für einen Kollegen.
1. Wie sehe ich die Logs eines einzelnen Dienstes?
$ clai zeige mir die nginx-Logs→ journalctl -u nginx
-u steht für Unit. Ohne dieses Flag bekommst du das gesamte System-Journal, in dem die Meldungen deines Dienstes zwischen Kernel-Meldungen und allem anderen untergehen.
2. Wie grenze ich das Fenster auf die letzte Stunde ein?
$ clai zeige mir die nginx-Logs der letzten Stunde→ journalctl -u nginx --since '1 hour ago'
--since versteht menschliche Formulierungen: today, yesterday, '1 hour ago', '2026-06-20 14:00'. Es gibt ein passendes --until, um den Schwanz nach dem Incident abzuschneiden.
3. Wie zeige ich nur Fehler an?
$ clai zeige mir nur die nginx-Fehler von heute→ journalctl -u nginx --since today -p err
-p ist die Syslog-Priorität. err zeigt die Stufe error und alles Schwerwiegendere — critical, alert, emergency. Die volle Skala: emerg, alert, crit, err, warning, notice, info, debug.
4. Wie verfolge ich die Logs in Echtzeit?
$ clai verfolge die nginx-Logs jetzt gerade→ journalctl -u nginx -f
Das ist das Äquivalent zu tail -f, aber journald kennt die Rotation, sodass dieser Befehl nicht verstummen kann. Das ist der eigentliche Vorteil gegenüber dem direkten Lesen der Datei.
5. Wie sehe ich, was seit dem letzten Boot passiert ist?
$ clai zeige mir die Fehler dieses Dienstes seit dem vorherigen Boot→ journalctl -u nginx -b -1 -p err
-b steht für Boot. -b -1 ist der vorherige Boot, -b 0 oder einfach -b der aktuelle. Unverzichtbar, wenn die Maschine unerwartet neu gestartet ist und du wissen musst, warum.
6. Wie gebe ich das Log an einen Kollegen weiter?
$ clai exportiere die nginx-Logs von heute in eine Datei ohne Paginierung→ journalctl -u nginx --since today --no-pager -o short-iso > nginx-today.log
--no-pager entfernt less, das den Befehl in einer nicht-interaktiven Umgebung sonst hängen lassen würde. -o short-iso liefert ISO-8601-Zeitstempel, die sich korrekt sortieren lassen und nicht vom Locale abhängen.
Stolperfallen
-uerwartet einen Unit-Namen, keinen Prozessnamen.journalctl -u nginxfunktioniert,journalctl -u /usr/sbin/nginxnicht.systemctl list-units --type=servicelistet die Unit-Namen.- Das Journal überlebt einen Neustart nicht immer. Steht
Storage=volatilein/etc/systemd/journald.conf, geht die Historie beim Neustart verloren. Prüfe, ob/var/log/journalexistiert. - Benutzer- und System-Units sind getrennt. Für Dienste, die unter deinem eigenen Benutzer laufen, brauchst du
journalctl --user -u Name, sonst findest du nichts.
Verwandte Fragen
Wie sehe ich nur die letzten N Zeilen? journalctl -u nginx -n 50. Standardmäßig zeigt journalctl alles von Anfang an, was bei einem großen Journal unpraktisch ist.
Warum ist journalctl besser als das Lesen der Datei in /var/log? Es kennt die Rotation, filtert nach Unit, Priorität und Zeit und zeigt Logs von Diensten, die überhaupt keine Datei schreiben.
Wie begrenze ich die Größe des Journals? SystemMaxUse=500M in /etc/systemd/journald.conf, danach systemctl restart systemd-journald. Einmalige Bereinigung: journalctl --vacuum-size=200M.
Siehe auch
- Mehrere Log-Dateien gleichzeitig beobachten
- Der Prozess, der nicht sterben will
- Alte Logs und Backups mit einem Satz aufräumen
Hör auf, journalctl-Flags auswendig zu lernen — beschreibe den Incident, und CliAI schreibt den Befehl. In einer Zeile installieren.