dbus-uuidgen > /etc/machineid
Die „Logfiles“ im systemd sind eine binäre Datenbank mit umfassenden Suchwerkzeugen
/var/log/journal/<machine-id>
← persistent/run/systemd/journal/<machine-id>
← dynamisch
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
Das Verzeichnis /var/log/journal
muss vorhanden sein; systemd loggt andernfalls nur temporär.
gleich ans Ende springen
journalctl -e
follow file mit allem und catalog
journalctl -f -a -x
alle Felder aufschlüsseln
journalctl -o verbose
(alle Felder, die mit '_' beginnen, sind interne Felder und werden intern vom journald gesetzt und nicht vom Client. Somit sind sie nicht leicht manipulierbar.)
seit dem letztem Boot
journalctl -b
in einem bestimmten Zeitraum
journalctl --since '2016-01-10' --until '2016-01-11 03:00'
ab einem bestimmten Level
journalctl -p 4 journalctl -p warning
journalctl _SYSTEMD_UNIT=ssh.service journalctl -u ssh.service journalctl /usr/sbin/sshd
journalctl -k
genauer: stdout und stderr mit dem journal verbinden
ls | systemd-cat systemd-cat hostnamectl
Defaults für persistent
: 10% filesystem. Max 4 GiB
SystemMaxUse=100M SystemKeepFree=1G
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
mkdir /var/log/journal systemctl restart systemd-journald journalctl --flush
Auflisten, letztes boot
journalctl --list-boots journalctl -b
Ein bestimmtes boot (mit ID oder ordinal)
journalctl -b 76fcd53ed6d54d24b1422e6bb48bab61 journalctl -b -2
So können die sealing keys erstellt werden
journalctl --setup-keys
Benötigte Pakete: systemd-journal-remote
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
[Service] ExecStart= ExecStart=...--listen-http...
systemctl enable --now systemd-journal-remote.socket ss -lnp '( sport = 19532 )'
Remote-Logs mit journalctl anzeigen:
journalctl -D /var/log/journal/remote
[Upload] URL=http://10.0.0.1:19532
systemctl enable --now systemd-journal-upload.service
dbus-uuidgen > /etc/machineid