Systemd/Journald: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
K Textersetzung - „ “ durch „ “ |
||
| (59 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''journald''' | '''journald''' - Service Unit des [[systemd]] zum [[Linux/Logging|Logging]] in das zentrale Journal | ||
== Beschreibung == | == Beschreibung == | ||
* | ; [[systemd]] bringt ein eigenes Logging-Framework namens [[journald]] mit | ||
* Dass die Log-Dateien binär gespeichert werden, um sie länger und fälschungssicher – so zumindest der Anspruch der systemd-Entwickler – speichern zu können, ist jedoch ein großer Kritikpunkt der Linux-Community | |||
* Allerdings hat [[journald]] Charme und bringt außer der Umgewöhnung auch einige Vorteile mit, wie beispielsweise, dass Fehler in den Log-Dateien in Rot markiert werden und so eher auffallen | |||
; Journal abfragen | |||
Mit dem Wechsel von herkömmlichen init-Skripten zu <code>systemd</code> wurde ein eigenes Protokolliersystem eingeführt, das als ''Journal'' bezeichnet wird | |||
* Alle Systemereignisse werden in das Journal geschrieben, sodass kein <code>syslog</code>-basierter Service ausgeführt werden muss | |||
* | |||
journald | Das Journal selbst ist ein Systemservice und wird mit <code>systemd</code> verwaltet | ||
* | * Die vollständige Bezeichnung des Service lautet <code>systemd-journald.service</code> | ||
* Hier werden Protokolldaten in strukturierten, indizierten Journalen erfasst und gespeichert | |||
* Die Daten basieren dabei auf den Protokollinformationen aus dem Kernel, von den Benutzerprozessen, aus der Standardeingabe und aus den Fehlern von Systemdiensten | |||
; [[systemd-journald]] ist standardmäßig aktiviert | |||
* | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo systemctl status systemd-journald | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" highlight="" line> | |||
systemd-journald.service - Journal Service | |||
Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static) | |||
Active: active (running) since Mon 2014-05-26 08:36:59 EDT; 3 days ago | |||
Docs: man:systemd-journald.service(8) | |||
man:journald.conf(5) | |||
Main PID: 413 (systemd-journal) | |||
Status: "Processing requests..." | |||
CGroup: /system.slice/systemd-journald.service | |||
└─413 /usr/lib/systemd/systemd-journald | |||
[...] | |||
</syntaxhighlight> | |||
; Quellen | |||
Das Journal sammelt Logmeldungen | |||
* [[Kernel]] | |||
* System | |||
* [https://wiki.ubuntuusers.de/systemd/Service_Units/ Service Units] | |||
* [https://wiki.ubuntuusers.de/Shell/Umleitungen/#stdin-stdout-stderr-Kanaele-der-Bash stdout] | |||
* [https://wiki.ubuntuusers.de/Shell/Umleitungen/#stdin-stdout-stderr-Kanaele-der-Bash stderr] | |||
Zusätzlich schützt journald die Journaleinträge gegen Manipulation durch eine Technik namens "Forward Secure Sealing" | ; system.journal | ||
* Dadurch wird es | Die Logmeldungen werden standardmäßig in der Datei '''system.journal''' gespeichert | ||
* ''/run/log/journal/UUID_DES_VERZEICHNISSES'' | |||
* Die <tt>UUID_DES_VERZEICHNISSES</tt> variiert dabei von System zu System | |||
; Persistente Speicherung | |||
Aktiviert man die [https://wiki.ubuntuusers.de/systemd/journald/#Speichereinstellung-fuer-das-Journal-aendern 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 | |||
** [[#zusaetzliche-Journal-Dateien-pro-Benutzer]] | |||
; Log rotation | |||
journald kümmert sich selbst um die [https://en.wikipedia.org/wiki/Log%20rotation 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 | |||
; Binäre Journaldateien | |||
* Zum Auslesen sind spezielle Programme notwendig | |||
* [[#Journal-Datei auslesen| 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 == | == Installation == | ||
[[Systemd/Journald|Journald]] ist Teil von [[Systemd]] | |||
== | == Journal-Datei auslesen == | ||
{| class="wikitable options big" | |||
|- | |||
! Befehl !! Beschreibung | |||
|- | |||
| [[journalctl]] || Standardwerkzeug zum Auslesen und Anzeige der Journaldatei | |||
|- | |||
| [[strings]] und [[grep]] || <nowiki>strings /pfad/zum/system.journal | grep -i SUCHBEGRIFF</nowiki> | |||
|} | |||
; [[strings]] und [[grep]] | |||
Obwohl die Logdateien in einem Binärformat gespeichert werden, sind darin gespeicherte Meldungen unverändert als Zeichenketten abgelegt und lassen sich mit dem Werkzeug [[strings]] ([[binutils]]) und [[grep]] ohne journalctl herausfiltern: | |||
strings system.journal | grep -i SUCHBEGRIFF | |||
Die Datei [[system.journal]] liegt in einem Unterordner von | |||
* /run/log/journal/ | |||
* | * /var/log/journal/ | ||
* | |||
== Aufruf == | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
</syntaxhighlight> | |||
=== Optionen === | |||
=== Argumente === | |||
=== Umgebungsvariablen === | |||
=== Exit-Status === | |||
== Anwendung == | |||
=== Problembehebung === | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
<div style="column-count:2"> | |||
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | |||
</div> | |||
---- | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | |||
=== | === Dokumentation === | ||
<!-- | |||
; Man-Page | |||
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | |||
; Info-Pages | |||
--> | |||
=== Links === | |||
==== Projekt ==== | |||
==== Weblinks ==== | |||
# https://wiki.ubuntuusers.de/systemd/ | |||
# https://de.wikipedia.org/wiki/Logging | |||
[[Kategorie:Journald]] | |||
* | |||
</noinclude> | |||
= TMP = | |||
== systemd-journald == | |||
Bestandteil von [[systemd]] | |||
* Werden in ''/run/log/journal/'' untergebracht | |||
* Die Protokolle können mit ''journalctl'' angezeigt werden | |||
=== journalctl === | === journalctl === | ||
journalctl | {|class="wikitable options big" | ||
* | ! Option !! Bedeutung | ||
|- | |||
| -f || verhält sich so wie tail -f | |||
|- | |||
| -e || lässt journalctl ans Ende des Journals springen | |||
|- | |||
| -n || verhält sich so wie tail -n | |||
|- | |||
| -r || zeigt die neuesten Einträge | |||
|- | |||
| -b || zeigt nur die Einträge seit dem letzten Systemstart | |||
|- | |||
| --since "Datum Uhrzeit" --until "Datum Uhrzeit" || zeigt Einträge in einem bestimmten Zeitraum | |||
|- | |||
| -u || zeigt nur Einträge eines bestimmten Diensts | |||
|- | |||
| -p err || zeigt nur Fehlereinträge | |||
|} | |||
=== Konfiguration === | |||
; /etc/systemd/journald.conf | |||
{| class="wikitable options big" | |||
|- | |||
! Direktive !! Beschreibung | |||
|- | |||
| Storage || legt fest, wie die Journale gespeichert werden | |||
* volatile: wird lediglich im RAM gespeichert | |||
* persistent: Verzeichnis ''/var/log/journal'' wird automatisch erstellt und dort gespeichert | |||
* compress: Große Objekte werden komprimiert, bevor sie gespeichert werden | |||
|- | |||
| ForwardToSyslog || Leitet die Ereignisse zusätzlich an syslog weiter | |||
|- | |||
| SplitMode || Legt separate Journale pro User an | |||
|- | |||
| SystemMaxUse || Maximale Größe des Journals festlegen (Gegenstück wäre ''SystemKeepFree'') | |||
|- | |||
| MaxFileSec || legt die Zeit fest, für die ein einzelner Journaleintrag gespeichert werden soll | |||
|} | |||
=== | === Pflege === | ||
; Journalgröße prüfen | |||
journalctl --disk-usage | |||
; Journalgröße verringern | |||
Ältere Einträge aus dem Journal entfernen | |||
journalctl --vacuum-size | |||
Aktuelle Version vom 14. Juni 2026, 00:50 Uhr
journald - Service Unit des systemd zum Logging in das zentrale Journal
Beschreibung
- Dass die Log-Dateien binär gespeichert werden, um sie länger und fälschungssicher – so zumindest der Anspruch der systemd-Entwickler – speichern zu können, ist jedoch ein großer Kritikpunkt der Linux-Community
- Allerdings hat journald Charme und bringt außer der Umgewöhnung auch einige Vorteile mit, wie beispielsweise, dass Fehler in den Log-Dateien in Rot markiert werden und so eher auffallen
- Journal abfragen
Mit dem Wechsel von herkömmlichen init-Skripten zu systemd wurde ein eigenes Protokolliersystem eingeführt, das als Journal bezeichnet wird
- Alle Systemereignisse werden in das Journal geschrieben, sodass kein
syslog-basierter Service ausgeführt werden muss
Das Journal selbst ist ein Systemservice und wird mit systemd verwaltet
- Die vollständige Bezeichnung des Service lautet
systemd-journald.service - Hier werden Protokolldaten in strukturierten, indizierten Journalen erfasst und gespeichert
- Die Daten basieren dabei auf den Protokollinformationen aus dem Kernel, von den Benutzerprozessen, aus der Standardeingabe und aus den Fehlern von Systemdiensten
- systemd-journald ist standardmäßig aktiviert
sudo systemctl status systemd-journald
systemd-journald.service - Journal Service
Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static)
Active: active (running) since Mon 2014-05-26 08:36:59 EDT; 3 days ago
Docs: man:systemd-journald.service(8)
man:journald.conf(5)
Main PID: 413 (systemd-journal)
Status: "Processing requests..."
CGroup: /system.slice/systemd-journald.service
└─413 /usr/lib/systemd/systemd-journald
[...]
- Quellen
Das Journal sammelt Logmeldungen
- Kernel
- System
- Service Units
- stdout
- stderr
- system.journal
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
- Persistente Speicherung
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
- Log rotation
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
- Binäre Journaldateien
- Zum Auslesen sind spezielle Programme notwendig
- 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
Journal-Datei auslesen
| Befehl | Beschreibung |
|---|---|
| journalctl | Standardwerkzeug zum Auslesen und Anzeige der Journaldatei |
| strings und grep | strings /pfad/zum/system.journal | grep -i SUCHBEGRIFF |
Obwohl die Logdateien in einem Binärformat gespeichert werden, sind darin gespeicherte Meldungen unverändert als Zeichenketten abgelegt und lassen sich mit dem Werkzeug strings (binutils) und grep ohne journalctl herausfiltern:
strings system.journal | grep -i SUCHBEGRIFF
Die Datei system.journal liegt in einem Unterordner von
- /run/log/journal/
- /var/log/journal/
Aufruf
Optionen
Argumente
Umgebungsvariablen
Exit-Status
Anwendung
Problembehebung
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks
TMP
systemd-journald
Bestandteil von systemd
- Werden in /run/log/journal/ untergebracht
- Die Protokolle können mit journalctl angezeigt werden
journalctl
| Option | Bedeutung |
|---|---|
| -f | verhält sich so wie tail -f |
| -e | lässt journalctl ans Ende des Journals springen |
| -n | verhält sich so wie tail -n |
| -r | zeigt die neuesten Einträge |
| -b | zeigt nur die Einträge seit dem letzten Systemstart |
| --since "Datum Uhrzeit" --until "Datum Uhrzeit" | zeigt Einträge in einem bestimmten Zeitraum |
| -u | zeigt nur Einträge eines bestimmten Diensts |
| -p err | zeigt nur Fehlereinträge |
Konfiguration
- /etc/systemd/journald.conf
| Direktive | Beschreibung |
|---|---|
| Storage | legt fest, wie die Journale gespeichert werden
|
| ForwardToSyslog | Leitet die Ereignisse zusätzlich an syslog weiter |
| SplitMode | Legt separate Journale pro User an |
| SystemMaxUse | Maximale Größe des Journals festlegen (Gegenstück wäre SystemKeepFree) |
| MaxFileSec | legt die Zeit fest, für die ein einzelner Journaleintrag gespeichert werden soll |
Pflege
- Journalgröße prüfen
journalctl --disk-usage
- Journalgröße verringern
Ältere Einträge aus dem Journal entfernen
journalctl --vacuum-size