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./usr/share/doc/systemd/README.Debian
:install -d -g systemd-journal /var/log/journal
.drwxr-sr-x. 3 root systemd-journal
- być może dziennik naprawia uprawnienia / własność podczas inicjalizacji.USR1
sygnał zamiast restartu, nie stracisz bieżącej zawartości dziennika.killall -USR1 systemd-journald
Możesz stracić dzienniki: patrz https://github.com/systemd/systemd/issues/2236
Nastąpiła zmiana w
v208
:Powinieneś więc uruchomić coś takiego jak
systemd-tmpfiles --create --prefix /var/log/journal
pomkdir /var/log/journal
Zobacz także :
systemd-journal
nie mogli odczytać niektórych plików dziennikaźródło
chmod 4755 /var/log/journal; chown root:systemd-journal !:2
działa w porządku. ale tmpfiles: użyj magii ACL w katalogach czasopism