tl; dr
W CentOS 7 musisz włączyć trwałe przechowywanie komunikatów dziennika:
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
W przeciwnym razie komunikaty dziennika dziennika nie są zachowywane między kolejnymi uruchomieniami.
Detale
Określa, czy journald
zachowuje komunikaty dziennika z poprzednich rozruchów /etc/systemd/journald.conf
. Domyślne ustawienie w CentOS 7 to:
[Journal]
Storage=auto
Gdzie strona man Journald.conf wyjaśnia auto
jako:
Jeden z „niestabilnych”, „trwałych”, „automatycznych” i „brak”. Jeśli jest „niestabilny”, dane dziennika będą przechowywane tylko w pamięci, tj. Poniżej hierarchii / run / log / journal (która jest tworzona w razie potrzeby). Jeśli „trwałe”, dane będą przechowywane najlepiej na dysku, tj. Poniżej hierarchii / var / log / journal (która jest tworzona w razie potrzeby), z możliwością powrotu do / run / log / journal (która jest tworzona w razie potrzeby), podczas wczesny rozruch i jeśli dysku nie można zapisać. „ auto ” jest podobne do „trwałego”, ale katalog / var / log / journal nie jest tworzony w razie potrzeby, więc jego istnienie kontroluje, gdzie idą dane dziennika .
(podkreśl moje)
Strona podręcznika systemd-journald.service stwierdza zatem, że:
Domyślnie dziennik przechowuje dane dziennika w / run / log / journal /. Ponieważ / run / jest niestabilny, dane dziennika są tracone przy ponownym uruchomieniu. Aby dane były trwałe, wystarczy utworzyć / var / log / journal / gdzie systemd-journald będzie następnie przechowywać dane.
Najwyraźniej domyślne ustawienie zostało zmienione w Fedorze 19 (na stałe przechowywanie), a ponieważ CentOS 7 pochodzi z Fedory 18 - domyślnie nadal tam nie jest. Trwałość jest domyślnie implementowana poza dziennikiem poprzez /var/log/messages
i wersje obrócone, /var/log/messages-YYYYMMDD
które są pisane przez rsyslogd (który domyślnie działa i pobiera dane z dziennika).
Tak więc, aby umożliwić trwałe logowanie za pomocą dziennika w RHEL / CentOS 7, trzeba to zrobić
# mkdir /var/log/journal
a następnie napraw uprawnienia i uruchom ponownie dziennik, np. przez
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
systemctl restart systemd-journald
Powinno wystarczyć. Dlatego nie jest wymagane ponowne uruchomienie.