systemd-journald-Systemprotokolle bleiben trotz Storage=persistent nicht über mehrere Systemstarts hinweg bestehen.

systemd-journald-Systemprotokolle bleiben trotz Storage=persistent nicht über mehrere Systemstarts hinweg bestehen.

Ich habe seit Kurzem ein Problem mit systemd, das die Protokolle früherer Startvorgänge nicht speichert. Ich habe hier und anderswo mehrere Antworten geprüft, aber keine Lösung gefunden.

Das Problem besteht darin, dass das Benutzerprotokoll über mehrere Systemstarts hinweg bestehen bleibt, Systemprotokolle jedoch nicht.

/etc/systemd/journald.conf

[Journal]
Storage=persistent
SystemMaxUse=500M
SystemMaxFiles=5

journalctl -b -1

[root@2ba2de9e /var/log/journal] # journalctl --system -b -1
Data from the specified boot (-1) is not available: No such boot ID in journal

Ich verwende Archlinux Arm auf einigen Raspberry Pis

Versionen4.14.24-1-ARCH systemd 237.64-1 systemd-sysvcompat 237.64-1

Hat jemand eine Idee, warum das passiert? Auf meinem Desktop-Computer funktioniert es ohne Probleme?

Antwort1

Es ist möglich, dass Journald die alten Protokolle löscht, weil Sie nicht genügend Speicherplatz haben. (Sie haben nicht erwähnt, wie lange nach dem Booten es -b -1nicht funktioniert, daher weiß ich nicht, ob Sie zu diesem Zeitpunkt viele Protokolle vom aktuellen Booten haben.)

Sie haben SystemMaxUse=500Mes konfiguriert, aber journald könnte entscheiden, weniger als 500 MB zu verwenden, wenn Sie nicht zu viel freien Speicherplatz haben. Es gibt auch eine SystemKeepFree=...Einstellung, die standardmäßig 15 % der Größe des Dateisystems (oder 4 GB, je nachdem, was kleiner ist) beträgt, und journald wird diese Grenze strenger durchsetzen als den von Ihnen zugelassenen Speicherplatz. Wenn Sie /var/log/journaleine kleine Partition haben, könnte das Teil des Problems sein.

Mit einigen Befehlen können Sie überprüfen, wie viel Speicherplatz Journald verwendet. Zum Beispiel:

$ journalctl --disk-usage

Außerdem können Sie sehen, wie viele Boots (und wie ihre Zeiten und IDs lauten) journald kennt, und zwar mit:

$ journalctl --list-boots

Diese könnten ebenfalls dazu beitragen, Licht in Ihr Problem zu bringen ...

Ich hoffe das hilft!

Antwort2

Meine Distribution kam mit dieser Datei: /etc/systemd/journald.conf.d/volatile-storage.conf Sie hatte die folgende Zeile

Storage=volatile

Der volatile Teil muss in persistent geändert werden, sonst /etc/systemd/journal.confwird die Änderung ignoriert.

Antwort3

Erweiterung aufmirrAntwort: Damit Storage=volatileund Storage=autofunktionieren, /var/log/journalmuss das Verzeichnis vorhanden sein und einige Distributionen stellen diesen Speicherort nicht standardmäßig bereit.

Sie müssen also journaldalles, was sich im Speicher befindet, erstellen und anweisen, es dorthin zu übertragen.

sudo mkdir /var/log/journal     ## Enable persistent logging
sudo journalctl --flush

verwandte Informationen