Zum Inhalt springen

Systemd/Journald

Aus Foxwiki

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/journal beispielsweise 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

  1. https://wiki.ubuntuusers.de/systemd/
  2. https://de.wikipedia.org/wiki/Logging