Zum Inhalt springen

Systemd/Journald: Unterschied zwischen den Versionen

Aus Foxwiki
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''journald''' - Service Unit des [[systemd]] zum [[Logging]] in das zentrale Journal
'''journald''' - Service Unit des [[systemd]] zum [[Linux/Logging|Logging]] in das zentrale Journal


== Beschreibung ==
== Beschreibung ==
Standardmäßig werden dort die Logmeldungen des Kernels, des Systems, der [https://wiki.ubuntuusers.de/systemd/Service_Units/ Service Units] als auch von [https://wiki.ubuntuusers.de/Shell/Umleitungen/#stdin-stdout-stderr-Kanaele-der-Bash stdout] und [https://wiki.ubuntuusers.de/Shell/Umleitungen/#stdin-stdout-stderr-Kanaele-der-Bash stderr] gesammelt
; 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]  


; system.journal
Die Logmeldungen werden standardmäßig in der Datei '''system.journal''' gespeichert
Die Logmeldungen werden standardmäßig in der Datei '''system.journal''' gespeichert
* ''/run/log/journal/UUID_DES_VERZEICHNISSES''
* ''/run/log/journal/UUID_DES_VERZEICHNISSES''
* Die <tt>UUID_DES_VERZEICHNISSES</tt> variiert dabei von System zu System
* 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'''
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, siehe den entsprechenden Abschnitt dazu [https://wiki.ubuntuusers.de/systemd/journald/#zusaetzliche-Journal-Dateien-pro-Benutzer weiter unten]
* Je nach Einstellung wird zusätzlich für jeden angemeldeten Benutzer eine Journald-Datei angelegt
** [[#zusaetzliche-Journal-Dateien-pro-Benutzer]]


; journald kümmert sich selbst um die [https://en.wikipedia.org/wiki/Log%20rotation Log rotation]
; 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
* 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
; Binäre Journaldateien
* Zum Auslesen der Daten gibt es verschiedene Möglichkeiten
* Zum Auslesen sind spezielle Programme notwendig
* [[#Journal-Datei auslesen| Möglichkeiten]]


; Schutz vor Manipulation
; Schutz vor Manipulation
Zeile 25: Zeile 35:


== Journal-Datei auslesen ==
== Journal-Datei auslesen ==
=== journalctl ===
{| class="wikitable options big"
[[journalctl]] ist das Standardwerkzeug zum Auslesen und Anzeige der Journaldatei
|-
! 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 ===
; [[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 <tt>strings</tt> (enthalten im Paket '''binutils''') und [https://wiki.ubuntuusers.de/grep/ grep] auch ohne journalctl herausfiltern:
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 /pfad/zum/system.journal | grep -i SUCHBEGRIFF
  strings system.journal | grep -i SUCHBEGRIFF


(der Pfad ist meist ein Unterordner von /run/log/journal/)
Die Datei [[system.journal]] liegt in einem Unterordner von
* /run/log/journal/
* /var/log/journal/


== Aufruf ==
== Aufruf ==
Zeile 45: Zeile 63:
== Anwendung ==
== Anwendung ==
=== Problembehebung ===
=== Problembehebung ===
== Konfiguration ==
Das Verhalten des systemd-journald-Service lässt sich in <code>/etc/systemd/journald.conf</code> festlegen
* In diesem Abschnitt werden lediglich die grundlegenden Optionseinstellungen vorgestellt
* Eine vollständige Beschreibung der Datei finden Sie auf der man-Seite <code>man 5 journald.conf</code>
* 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 <code>/run/log/journal/</code>
* Das Verzeichnis <code>/run/</code> ist naturgemäß flüchtig, weshalb die Protokolldaten beim Neubooten verloren gehen
* Um persistente Protokolldaten zu erzielen, muss das Verzeichnis <code>/var/log/journal/</code> 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 <code>systemd</code> erstellen und die persistente Protokollierung aktivieren: # Öffnen Sie die Datei <code>/etc/systemd/journald.conf</code> als <code>root</code> zum Bearbeiten
vi /etc/systemd/journald.conf
Heben Sie die Auskommentierung der Zeile auf, die mit <code>Storage=</code> 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 <code>/var/log/journal</code> befindet
* Ist <code>/var/log/journal</code> beispielsweise auf einer <code>/var</code>-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 <code>SystemMaxUse</code> (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 <code>/dev/tty12</code>) ü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 <code>rsyslog</code>
apt install rsyslog
systemctl is-enabled rsyslog
Die Weiterleitung an syslog wird in <code>/etc/systemd/journald.conf</code> aktiviert
ForwardToSyslog=yes
=== Dateien ===
{| class="wikitable options big"
|-
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}
<noinclude>
<noinclude>
<noinclude>


== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/journal}}
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
 
=== Dokumentation ===
=== Dokumentation ===
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
<!--
; Info-Pages
-->


; Man-Page
;Info-Page
=== Links ===
=== Links ===
==== Projekt ====
==== Projekt ====
Zeile 123: Zeile 87:
# https://de.wikipedia.org/wiki/Logging
# https://de.wikipedia.org/wiki/Logging


{{DISPLAYTITLE:journald}}
[[Kategorie:Journald]]
{{DEFAULTSORT:journald}}
 
[[Kategorie:Systemd]]
[[Kategorie:Linux/Logging]]


</noinclude>
</noinclude>

Aktuelle Version vom 20. Oktober 2025, 22:34 Uhr

journald - Service Unit des systemd zum Logging in das zentrale Journal

Beschreibung

Das Journal sammelt Logmeldungen
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

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
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

Journald ist Teil von Systemd

Journal-Datei auslesen

Befehl Beschreibung
journalctl Standardwerkzeug zum Auslesen und Anzeige der Journaldatei
strings und grep strings /pfad/zum/system.journal | grep -i SUCHBEGRIFF
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

Optionen

Argumente

Umgebungsvariablen

Exit-Status

Anwendung

Problembehebung

Anhang

Siehe auch


Dokumentation

Man-Page
  1. prep(1)


Links

Projekt

Weblinks

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