Systemd/Journald
journald - Service Unit des systemd zum Logging in das zentrale Journal
Beschreibung
Standardmäßig werden dort die Logmeldungen des Kernels, des Systems, der Service Units als auch von stdout und stderr gesammelt
Die Logmeldungen werden standardmäßig in der Datei system.journal gespeichert
- /run/log/journal/UUID_DES_VERZEICHNISSES
- Die UUID_DES_VERZEICHNISSES variiert dabei von System zu System
Aktiviert man die persistente Speicherung der Logdateien, dann ändert sich der Speicherort zu /var/log/journal/UUID_DES_VERZEICHNISSES
- Je nach Einstellung wird zusätzlich für jeden angemeldeten Benutzer eine Journald-Datei angelegt, siehe den entsprechenden Abschnitt dazu weiter unten
- journald kümmert sich selbst um die Log rotation
- Standardmäßig erfolgt dies in Abhängigkeit von der Größe der Logdatei, wobei man in der Konfiguration auch eine zeit-basierte Logrotation umstellen kann
- Journaldateien werden binär gespeichert
- Zum Auslesen der Daten gibt es verschiedene Möglichkeiten
- Schutz vor Manipulation
Zusätzlich schützt journald die Journaleinträge gegen Manipulation durch eine Technik namens "Forward Secure Sealing"
- Dadurch wird es etwa unerwünschten Eindringlingen ins eigene System erschwert, ihre Spuren durch Manipulation der Logeinträge zu verschleiern
Installation
- Auf aktueller Debian-Systemen während der Systeminstallation als Standard installiert
- TODO: List der Pakete
Journal-Datei auslesen
journalctl
journalctl ist das Standardwerkzeug zum Auslesen und Anzeige der Journaldatei
strings und grep
Auch wenn die Logdateien in einem Binärformat gespeichert werden, sind darin gespeicherten Meldungen unverändert als Zeichenketten abgelegt und lassen sich mit dem Werkzeug strings (enthalten im Paket binutils) und grep auch ohne journalctl herausfiltern:
strings /pfad/zum/system.journal | grep -i SUCHBEGRIFF
(der Pfad ist meist ein Unterordner von /run/log/journal/)
Installation
Aufruf
Optionen
Argumente
Umgebungsvariablen
Exit-Status
Anwendung
Problembehebung
Konfiguration
Das Verhalten des systemd-journald-Service lässt sich in /etc/systemd/journald.conf festlegen
- In diesem Abschnitt werden lediglich die grundlegenden Optionseinstellungen vorgestellt
- Eine vollständige Beschreibung der Datei finden Sie auf der man-Seite
man 5 journald.conf - Damit die Änderungen in Kraft treten, müssen Sie das Journal wie folgt neu starten
systemctl restart systemd-journald
Persistenz
Das Journal speichert die Protokolldaten standardmäßig in /run/log/journal/
- Das Verzeichnis
/run/ist naturgemäß flüchtig, weshalb die Protokolldaten beim Neubooten verloren gehen - Um persistente Protokolldaten zu erzielen, muss das Verzeichnis
/var/log/journal/mit den entsprechenden Angaben zu Eigentümer und Berechtigungen vorhanden sein, damit der systemd-journald-Service die Daten dort speichern kann
So können Sie das Verzeichnis mit systemd erstellen und die persistente Protokollierung aktivieren: # Öffnen Sie die Datei /etc/systemd/journald.conf als root zum Bearbeiten
vi /etc/systemd/journald.conf
Heben Sie die Auskommentierung der Zeile auf, die mit Storage= beginnt, und ändern Sie sie wie folgt
[...] [Journal] Storage=persistent #Compress=yes [...]
Speichern Sie die Datei, und starten Sie systemd-journald neu
systemctl restart systemd-journald
Größenbeschränkung
Wenn die Journalprotokolldaten an einem persistenten Speicherort gespeichert werden, belegen sie bis zu 10 % des Dateisystems, auf dem sich /var/log/journal befindet
- Ist
/var/log/journalbeispielsweise auf einer/var-Partition mit einer Kapazität von 30 GB gespeichert, so kann das Journal bis zu 3 GB des Festplattenspeichers belegen
Zum Bearbeiten dieser Größenbeschränkung ändern Sie die Option SystemMaxUse (und heben Sie die Auskommentierung dieser Option auf)
SystemMaxUse=50M
Weiterleiten an /dev/ttyX
Sie können das Journal an ein Terminalgerät weiterleiten, sodass Sie an einem bevorzugten Terminalbildschirm (beispielsweise /dev/tty12) über Systemmeldungen informiert werden
Ändern Sie die folgenden journald-Optionen
ForwardToConsole=yes TTYPath=/dev/tty12
Weiterleitung an Syslog
journald ist abwärtskompatibel zu herkömmlichen syslog-Implementierungen wie rsyslog
apt install rsyslog
systemctl is-enabled rsyslog
Die Weiterleitung an syslog wird in /etc/systemd/journald.conf aktiviert
ForwardToSyslog=yes
Dateien
| Datei | Beschreibung |
|---|---|
Anhang
Siehe auch
Dokumentation
- Man-Page
- Info-Page
Links
Projekt
Weblinks