tl; dr
Unter CentOS 7 müssen Sie die dauerhafte Speicherung von Protokollnachrichten aktivieren:
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
Andernfalls werden die Journalprotokollnachrichten zwischen den Startvorgängen nicht beibehalten.
Einzelheiten
journald
Über wird konfiguriert, ob Protokollnachrichten von früheren Startvorgängen beibehalten werden /etc/systemd/journald.conf
. Die Standardeinstellung unter CentOS 7 ist:
[Journal]
Storage=auto
Wo die Manpage journald.conf erklärt auto
:
Einer von "volatile", "persistent", "auto" und "none". Bei "flüchtig" werden Journalprotokolldaten nur im Speicher gespeichert, dh unter der Hierarchie / run / log / journal (die bei Bedarf erstellt wird). Wenn "persistent", werden die Daten vorzugsweise auf der Festplatte gespeichert, dh unter der Hierarchie / var / log / journal (die bei Bedarf erstellt wird), mit einem Fallback auf / run / log / journal (die bei Bedarf erstellt wird) früh booten und wenn die Festplatte nicht beschreibbar ist. " auto " ähnelt "persistent", aber das Verzeichnis / var / log / journal wird bei Bedarf nicht erstellt, sodass seine Existenz steuert, wohin die Protokolldaten gehen .
(betone meins)
In der Manpage systemd-journald.service heißt es daher:
Standardmäßig speichert das Journal Protokolldaten in / run / log / journal /. Da / run / flüchtig ist, gehen die Protokolldaten beim Neustart verloren. Um die Daten persistent zu machen, ist es ausreichend, / var / log / journal / zu erstellen, wo systemd-journald die Daten dann speichert.
Anscheinend wurde der Standard in Fedora 19 (auf persistenten Speicher) geändert, und da CentOS 7 von Fedora 18 abgeleitet ist, ist es dort standardmäßig immer noch nicht persistent. Die Persistenz wird standardmäßig außerhalb von Journald via /var/log/messages
und den gedrehten Versionen implementiert, die von rsyslogd /var/log/messages-YYYYMMDD
geschrieben wurden (das standardmäßig ausgeführt wird und seine Eingabe von Journald erhält).
Um also unter RHEL / CentOS 7 eine dauerhafte Protokollierung mit journald zu ermöglichen, muss dies geschehen
# mkdir /var/log/journal
und dann Berechtigungen korrigieren und Journald neu starten, z. B. über
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
systemctl restart systemd-journald
sollte es tun. Es ist also kein Neustart erforderlich./usr/share/doc/systemd/README.Debian
:install -d -g systemd-journal /var/log/journal
.drwxr-sr-x. 3 root systemd-journal
- vielleicht behebt Journald die Berechtigungen / Eigentumsrechte während der Initialisierung.USR1
Signal senden , anstatt neu zu starten, verlieren Sie nicht den aktuellen Journald-Inhalt.killall -USR1 systemd-journald
Sie können Ihre Protokolle verlieren: siehe https://github.com/systemd/systemd/issues/2236
Es gibt eine Änderung in
v208
:Also, sollten Sie so etwas wie laufen
systemd-tmpfiles --create --prefix /var/log/journal
nachmkdir /var/log/journal
Siehe auch :
systemd-journal
konnten einige Journaldateien nicht lesenquelle
chmod 4755 /var/log/journal; chown root:systemd-journal !:2
funktioniert gut. aber tmpfiles: Verwenden Sie ACL-Magie für Journalverzeichnisse