Fehlerdiagnose und Systemprotokolle
Wenn ein Dienst nicht startet oder eine Anwendung Fehler meldet, helfen Dir die Systemprotokolle bei der Suche nach der Ursache. Auf vielen Linux-Systemen sammelt systemd-journald Meldungen des Kernels, von Systemdiensten und von Anwendungen, die an das Journal angebunden sind. Mit journalctl kannst Du diese Meldungen anzeigen und filtern.
Meldungen gezielt anzeigen
Die folgenden Befehle lesen das Journal, ohne seine Einträge zu verändern. Welche Meldungen Du sehen darfst, hängt von Deinen Benutzerrechten ab. Verwende bei Bedarf sudo journalctl …, um auch geschützte Systemmeldungen anzuzeigen.
| Befehl | Bedeutung |
|---|---|
journalctl |
Zeigt alle gespeicherten und für Dich zugänglichen Journal-Einträge an |
journalctl -b |
Zeigt Meldungen des aktuellen Systemstarts |
journalctl --list-boots |
Listet die im Journal verfügbaren Systemstarts auf |
journalctl -b -1 |
Zeigt Meldungen des vorherigen Systemstarts, sofern sie noch gespeichert sind |
journalctl -u apache2.service |
Filtert Meldungen für den angegebenen Dienst |
journalctl -k -b |
Zeigt Kernelmeldungen des aktuellen Systemstarts |
journalctl -p err -b |
Zeigt Fehler und schwerwiegendere Meldungen des aktuellen Systemstarts |
journalctl --since "1 hour ago" |
Zeigt Meldungen aus der letzten Stunde |
journalctl --since "2026-11-01 08:00:00" --until "2026-11-01 09:00:00" |
Begrenzt die Ausgabe auf einen bestimmten Zeitraum; Datum und Uhrzeit entsprechend anpassen |
journalctl -n 50 |
Zeigt die letzten 50 Einträge |
journalctl -f |
Zeigt die neuesten Einträge und anschließend neu eintreffende Meldungen; Beenden mit Strg+C |
journalctl --disk-usage |
Zeigt den Speicherverbrauch der aktiven und archivierten Journal-Dateien |
Ersetze apache2.service durch den tatsächlichen Namen Deines Dienstes. Dieser kann je nach Distribution abweichen, beispielsweise httpd.service für Apache. In der seitenweisen Anzeige kannst Du mit /Suchbegriff suchen und mit q zur Shell zurückkehren.
Prioritätsstufen verstehen
Eine kleinere Zahl bezeichnet eine schwerwiegendere Meldung. Ein einzelner Wert bei -p schließt alle höheren Schweregrade ein: journalctl -p 3 zeigt somit die Stufen 0 bis 3, nicht ausschließlich Stufe 3. Mit -p 3..3 begrenzt Du die Ausgabe auf genau diese Stufe.
| Stufe | Bezeichnung | Bedeutung |
|---|---|---|
| 0 | emerg |
System nicht benutzbar |
| 1 | alert |
Sofortiges Eingreifen erforderlich |
| 2 | crit |
Kritischer Zustand |
| 3 | err |
Fehler |
| 4 | warning |
Warnung |
| 5 | notice |
Normales, aber bedeutsames Ereignis |
| 6 | info |
Allgemeine Information |
| 7 | debug |
Ausführliche Diagnoseinformation |
Einen Dienst untersuchen
Am Beispiel von Apache kannst Du zunächst den Zustand und anschließend die zugehörigen Meldungen prüfen:
Wenn Du einen Fehler gezielt nachstellst, kannst Du die Meldungen parallel verfolgen:
Achte auf den Zeitpunkt des Fehlers und lies auch die unmittelbar vorhergehenden Meldungen. Ein fehlgeschlagener Dienst kann beispielsweise auf eine ungültige Konfiguration, fehlende Berechtigungen oder eine nicht erreichbare Abhängigkeit hinweisen. Ein Filter nur auf Fehlerprioritäten kann hilfreichen Kontext ausblenden.
Speicherung und Aufbewahrung
Das Journal verwendet ein binäres Format. Zum Lesen nutzt Du journalctl statt cat. Die Einträge können unter anderem Zeitstempel, Priorität, Dienstzuordnung und Meldungstext enthalten.
Ob Protokolle einen Neustart überstehen, hängt von der Einstellung Storage= in der journald-Konfiguration ab:
| Einstellung | Verhalten |
|---|---|
persistent |
Speicherung vorzugsweise unter /var/log/journal/; vorübergehender Rückgriff auf /run/log/journal/ möglich |
volatile |
Speicherung unter /run/log/journal/; die Einträge gehen beim Neustart verloren |
auto |
Dauerhafte Speicherung, wenn /var/log/journal/ vorhanden ist; andernfalls flüchtige Speicherung |
none |
Keine Speicherung im Journal; Weiterleitung an andere Ziele kann weiterhin stattfinden |
Die Konfiguration kann aus /etc/systemd/journald.conf und ergänzenden Konfigurationsdateien stammen. Größen- und Aufbewahrungsgrenzen bestimmen zusätzlich, wie lange Einträge verfügbar bleiben. Deshalb kannst Du nicht auf jedem System frühere Systemstarts oder beliebig alte Meldungen abrufen.
Rotation und Speicherbereinigung unterscheiden
Rotation schließt aktive Journal-Dateien ab und markiert sie als archiviert. Neue Meldungen werden anschließend in neue Dateien geschrieben. Sie löscht allein keine alten Einträge:
Bereinigung entfernt archivierte Journal-Dateien nach den angegebenen Grenzen. Das folgende Beispiel löscht archivierte Dateien, die älter als sieben Tage sind:
Die Bereinigung entfernt gespeicherte Diagnoseinformationen unwiderruflich. Sichere benötigte Meldungen vorher. Die Altersgrenze wird auf ganze archivierte Dateien angewendet, nicht auf einzelne Meldungen.
Eine Größenbegrenzung lässt sich beispielsweise so anwenden:
Dabei werden archivierte Dateien entfernt, bis die Größenbedingung erfüllt ist oder keine weiteren archivierten Dateien mehr entfernt werden können. Aktive Dateien werden mitgezählt, wenn Du --disk-usage abfragst, aber durch die Bereinigung nicht gelöscht. Der gesamte Journal-Verbrauch kann daher weiterhin über dem angegebenen Wert liegen. Eine vorherige Rotation kann zusätzliche Dateien für die Bereinigung verfügbar machen.
Weitere Einzelheiten findest Du im journalctl-Handbuch und in der Dokumentation zur journald-Konfiguration.