orm@doc-tcpip.org

Erstellt: Januar 2016 - Letzte Modifikation: Februar 2020

[ Main | Local ]


Systemd Journal - System Logging Management


Journal - alle Logs in einem Dienst

Abfragen der Logs

Alle Einträge:

     journalctl

Alle Einträge mit UTC:

     journalctl --utc

Nicht so sinnvoll, weil sehr viele Einträge kommen. Die einzelnen Boot-Vorgänge werden auch geloggt, und es wird dauerhaft geloggt, wenn das so eingerichtet ist.

Einrichten des dauerhaften Loggens:

Will man Log-Daten über mehrere Boots aufheben, so muss man permanentes Logging einrichten. Wenn in der Konfiguration der storage auf "auto" gesetzt ist, dann reicht es, das Verzeichnis für die Logs anzulegen:

     mkdir -p /var/log/journal

Falls das nicht der Fall ist, so trägt man "persitent" oder "auto" in dem Konfigurationsfile des Journald ein: File /etc/systemd/journald.conf, eintragen:

     [journal]
     storage=persistent

Mit "persistent" wird das Verzeichnis automatisch angelegt, mit "auto" kann man durch das Anlegen bzw. Entfernen des Verzeichnis steuern, ob die Logs aufgehoben werden.

Filtern der Einträge nach Zeit:

Nach einzelnen Boot-vorgängen:

     journalctl -b   - Einträge nach dem letzten Boot.
     journalctl --list-boots   - Gibt einen Offset pro Boot sowie eine ID
     journalctl -b   - Einträge eines bekannten Boots nach Offset, z.B. 
     journalctl -b -2 (vorletzter Boot)
     journalctl -b   - Einträge eines bekannten Boots nach ID

Zeitliches Filtern:

Geht mit --since und --until. Das Zeitformat kann man setzen.

     journalctl --since "YYYY-MM-DD HH:MM:SS"

Lässt man die Zeit oder zB. die Minuten oder Sekunden weg, so wird 0 angenommen, also Mitternacht oder die volle Stunde bzw. Minute.

Zusätzlich kann man relative Werte und Schlüsselworte nutzen, wie zB. "yesterday", "today", "tomorrow". Mit "ago" oder einer Zahl mit plus/minus kann man Zeitbereiche filtern, zB. "--since 05:15 --until "3 hours ago""

Selbstverständlich kann man auch nach Arten des Logs, der Severity oder nach dem Verursacher filtern. Zusätzlich sind alle Setzungen miteinander kombinierbar.

Filtern nach Unit:

     journalctl -u   - Z.B. Service gpsd.service

Filtern nach einer Kombination:

     journalctl -u   -u  --since "3 hours ago"

Das Systemd Journal übernimmt alle Felder des zugrunde liegenden Logging-Dienstes. Es generiert aber auch neue Attribute, die auf dem System eingesammelt werden, wenn der Eintrag erzeugt wurde. Solche Attribute haben einen führenden Unterstrich, zB. _PID oder _GID. Danach kann man auch filtern.

     journalctl _UID=xy  - Alle Einträge zu dieser UID
     journalctl _PID=xy  - Alle Einträge zu dieser PID
     journalctl -F _UID  - Alle Werte, die zu UID vorkommen

Mit -F sieht man alle Werte, die zu so einem Attribut vorkommen. Welche Attribute es überhaupt gibt, findet man in der man-Page zu systemd.journal-fields.

Filtern nach Pfaden:

     journalctl /usr/bin/gpsd

Filtern nach Kernel-Meldungen:

     journalctl -k

Filtern nach der Priorität des Log-Eintrages:

     journalctl -p

Dabei gelten die Prioritäten 0 - 7 (emerg, alert, crit, err, warning, notice, info, debug).

Ausgabe Formate:

     journalctl -o 

Praktische Formate sind json, json-pretty und short (das ist wie die Ausabe von syslogd).

Weitere Optionen:

     --no-full - Die Ausgabe wird gekürzt
     -a - zeigt alles, auch nicht druckbare Zeichen
     --no-pager - wie cat, die Ausgabe läuft durch

Man kann das Journal auch als "tail" laufen lassen:

     journalctl -n 
     journalctl -n      - Anzahl der Einträge
     journalctl -f              - ist wie "tail -f"

Wartung des Journals

Plattenplatz:

     journalctl --disk-usage

Das Journal schrumpfen; dabei werden alte Einträge werden entferntm bis die eingestellte Größe erreicht ist.

     journalctl --vacuum-size=xG 

Das geht auch mit einem zeitlichen Cut-Off: --vacuum-time

All das kann im Konfigurations-File /etc/systemd/journald.conf eingestellt werden.

Zeitzonen mit Systemd verwalten:

     timedatectl list-timezones
     timedatectl set-timezones 
     timedatectl status

Die Ausgabe zeigt die Zeit in Lokal, UTC und die RTC Zeit, sowie Informationen zum NTP und der Zeitumstellung.


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]

Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )