Grundlegende Arbeit mit journald

Journald ist ein Protokollierungssystem, das in modernen Linux-basierten Betriebssystemen zur Aufzeichnung von Systemereignissen verwendet wird. Es sammelt Informationen über den Betrieb verschiedener Dienste, Anwendungen und Systemprozesse, um Administratoren bei der Überwachung des Systemzustands und der Diagnose von Fehlern zu unterstützen.
Im Gegensatz zu Standard-Textprotokollen speichert journald Daten in einem Binärformat. Dies ermöglicht eine kompaktere Speicherung und eine effizientere Verwaltung der Protokolle, aber gleichzeitig kann man diese Protokolle nicht einfach in einem Texteditor öffnen. Spezielle Werkzeuge sind erforderlich, um sie anzuzeigen und zu analysieren.
In diesem Artikel erfahren Sie, wie Sie die von journald geführten Protokolle anzeigen und wie Sie sie löschen, um Speicherplatz zu sparen.
Journal-Protokolle anzeigen
Um Protokolle zu lesen, verwenden Sie den Befehl journalctl:
- Alle Protokolle:
sudo journalctl
- Protokolle seit dem letzten Neustart:
sudo journalctl -b
- Protokolle für einen bestimmten Dienst:
sudo journalctl -u nginx
- Protokolle für einen bestimmten Tag:
sudo journalctl --since "2024-11-01" --until "2024-11-02"
- Die letzten n Einträge anzeigen (z. B. die letzten 100):
sudo journalctl -n 100
- Nach Prioritätsstufe filtern (z. B. nach Fehlern):
sudo journalctl -p err
- Journal-Einträge in umgekehrter Reihenfolge anzeigen, beginnend mit den neuesten (nützlich, wenn Sie die neuesten Protokolleinträge schnell sehen möchten):
sudo journalctl -r
- Journal-Einträge in Echtzeit anzeigen (ähnlich wie tail -f):
sudo journalctl -f
Sie können diese Optionen kombinieren. Um beispielsweise alle Fehler des nginx-Dienstes vom 10. November 2024 anzuzeigen und nur die letzten 10 Einträge auszugeben:
sudo journalctl -u nginx --since "2024-11-10" --until "2024-11-10 23:59:59" -n 10
Das Journal löschen
Wenn die Protokolle zu viel Platz beanspruchen, können Sie sie mit den folgenden Befehlen löschen:
- Alte Protokolle löschen (z. B. älter als 7 Tage):
sudo journalctl --vacuum-time=7d
- Protokolle löschen, die eine bestimmte Größe überschreiten (z. B. 1 GB):
sudo journalctl --vacuum-size=1G
- Alle Protokolle vollständig löschen:
sudo journalctl --vacuum-files=0
Die Größe des Journals reduzieren
Standardmäßig kann journald viel Festplattenspeicher belegen, wenn die Protokolle nicht begrenzt werden. Um eine maximale Protokollgröße festzulegen, öffnen Sie die Konfigurationsdatei journald.conf:
sudo nano /etc/systemd/journald.conf
In dieser Datei können Sie die folgenden Parameter konfigurieren:
- SystemMaxUse – die maximale Größe für alle Journale:
SystemMaxUse=1G
- RuntimeMaxUse – die maximale Größe für temporäre Journale:
RuntimeMaxUse=500M
- MaxRetentionSec – die maximale Dauer, für die Protokolle aufbewahrt werden:
MaxRetentionSec=1month
Legen Sie Werte fest, die für Ihr System und Ihre Anforderungen geeignet sind, speichern Sie dann die Datei mit Strg + O und beenden Sie den Editor mit Strg + X.
Um die Änderungen zu übernehmen, starten Sie den journald-Dienst neu:
sudo systemctl restart systemd-journald
Sie können auch die Protokollierung in den RAM aktivieren oder sie sogar ganz deaktivieren. Keine der beiden Optionen wird in einer Produktionsumgebung empfohlen, da das Journal wichtige Diagnoseinformationen enthält. Seine Genauigkeit und Relevanz sind entscheidend für die ordnungsgemäße Diagnose von Prozessen auf Ihrem Server.
Wenn Sie die Speicherung des Journals im RAM aktivieren möchten, legen Sie den folgenden Wert in /etc/systemd/journald.conf fest:
Storage=volatile
Um die Protokollierung vollständig zu deaktivieren, geben Sie an:
Storage=none