Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:journald [2018/09/28 13:03] stefan_miethke [Persistentes Journal] |
admin_grundlagen:journald [2025/01/30 14:49] (aktuell) natureshadow2 [Receiver] Remote-Journal nach Sender-Hostname filtern |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | |||
====== systemd: journal ====== | ====== systemd: journal ====== | ||
Die "Logfiles" im systemd sind eine binäre Datenbank mit umfassenden Suchwerkzeugen | Die "Logfiles" im systemd sind eine binäre Datenbank mit umfassenden Suchwerkzeugen | ||
Zeile 18: | Zeile 17: | ||
* ''/run/systemd/journal/<machine-id>'' <- dynamisch | * ''/run/systemd/journal/<machine-id>'' <- dynamisch | ||
- | Die ''machine-id'' steht in ''/etc/machine-id'' und wird automatisch generiert oder mit ''systemd-machine-id-setup''. ((Bei geklonten Maschinen hilft ein ''dbus-uuidgen > /etc/machineid'')). | + | Die "machine-id" steht in ''/etc/machine-id'' und wird automatisch generiert oder mit ''systemd-machine-id-setup''. ''/var/lib/dbus/machine-id'' beachten. Man kann eine Generierung erzwingen, indem man die Datei trunkiert |
+ | |||
+ | > /etc/machine-id | ||
+ | readlink /var/lib/dbus/machine-id || rm /var/lib/dbus/machine-id | ||
+ | |||
+ | ((man könnte auch eine id selbst erzeugen mit ''dbus-uuidgen > /etc/machineid'')). | ||
+ | (( Debian Wiki zu dem Thema: | ||
+ | https://wiki.debian.org/MachineId#line-35 | ||
+ | )) | ||
Das Verzeichnis ''/var/log/journal'' muss vorhanden sein; systemd loggt andernfalls nur temporär. | Das Verzeichnis ''/var/log/journal'' muss vorhanden sein; systemd loggt andernfalls nur temporär. | ||
Zeile 38: | Zeile 45: | ||
in einem bestimmten Zeitraum | in einem bestimmten Zeitraum | ||
- | journalctl --since "2016-01-10" --until "2016-01-11 03:00" | + | journalctl --since '2016-01-10' --until '2016-01-11 03:00' |
| | ||
ab einem bestimmten Level | ab einem bestimmten Level | ||
Zeile 56: | Zeile 63: | ||
systemd-cat hostnamectl | systemd-cat hostnamectl | ||
==== Größe beschränken ==== | ==== Größe beschränken ==== | ||
- | <file txt /etc/systemd/journald.conf> | + | Defaults für ''persistent'': 10% filesystem. Max 4 GiB |
+ | |||
+ | <file txt /etc/systemd/journald.conf.d/lukas.conf> | ||
SystemMaxUse=100M | SystemMaxUse=100M | ||
SystemKeepFree=1G | SystemKeepFree=1G | ||
</file> | </file> | ||
+ | |||
+ | ==== Größe manuell verkleinern ==== | ||
+ | Aktuelle Größe anzeigen: | ||
+ | journalctl --disk-usage | ||
+ | sollte etwa das selbe sein wie: | ||
+ | du -sh /var/log/journal/ | ||
+ | |||
+ | So lange alte Logs löschen, bis 100M erreicht sind: | ||
+ | sudo journalctl --vacuum-size=100M | ||
+ | |||
+ | oder: alle Logs löschen, die älter als 2 Tage sind: | ||
+ | journalctl --vacuum-time=2days | ||
==== Persistentes Journal ==== | ==== Persistentes Journal ==== | ||
mkdir /var/log/journal | mkdir /var/log/journal | ||
systemctl restart systemd-journald | systemctl restart systemd-journald | ||
+ | journalctl --flush | ||
==== Boots ==== | ==== Boots ==== | ||
Auflisten, letztes boot | Auflisten, letztes boot | ||
Zeile 80: | Zeile 101: | ||
* http://0pointer.de/blog/projects/journalctl.html | * http://0pointer.de/blog/projects/journalctl.html | ||
+ | ====== Remote Logging ====== | ||
+ | Benötigte Pakete: systemd-journal-remote | ||
+ | ===== Push Betrieb ===== | ||
+ | ==== Receiver ==== | ||
+ | Zunächst plain HTTP. Im ''systemd-journal-remote.socket'' steht der ''ListenStream=19532'' | ||
+ | als Standard-Port. | ||
+ | |||
+ | systemctl edit systemd-journal-remote.service | ||
+ | |||
+ | HTTPS durch HTTP ersetzen. Eigentlich keine gute Idee ;-) | ||
+ | |||
+ | <file> | ||
+ | [Service] | ||
+ | ExecStart= | ||
+ | ExecStart=...--listen-http... | ||
+ | </file> | ||
+ | |||
+ | systemctl enable --now systemd-journal-remote.socket | ||
+ | ss -lnp '( sport = 19532 )' | ||
+ | |||
+ | Remote-Logs mit journalctl anzeigen: | ||
+ | |||
+ | journalctl -D /var/log/journal/remote | ||
+ | journalctl -D /var/log/journal/remote _HOSTNAME=notebook42 | ||
+ | ==== Sender ==== | ||
+ | <file txt /etc/systemd/journal-upload.conf> | ||
+ | [Upload] | ||
+ | URL=http://10.0.0.1:19532 | ||
+ | </file> | ||
+ | |||
+ | systemctl enable --now systemd-journal-upload.service |