ТЛ; др
В CentOS 7 необходимо включить постоянное хранение сообщений журнала:
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
В противном случае сообщения журнала не сохраняются между загрузками.
подробности
Сохраняет ли journald
сообщения журнала от предыдущих загрузок, настраивается через /etc/systemd/journald.conf
. Настройка по умолчанию в CentOS 7:
[Journal]
Storage=auto
Где справочная страница journald.conf объясняется auto
как:
Один из "volatile", "persistent", "auto" и "none". Если установлено значение «volatile», данные журнала журнала будут храниться только в памяти, то есть ниже иерархии / run / log / journal (которая создается при необходимости). Если «постоянный», данные будут храниться предпочтительно на диске, то есть ниже иерархии / var / log / journal (которая создается при необходимости), с откатом на / run / log / journal (которая создается при необходимости), во время ранняя загрузка и если диск не для записи. « auto » аналогично «persistent», но каталог / var / log / journal не создается при необходимости, так что его существование контролирует, куда попадают данные журнала .
(подчеркните мой)
Страница людей Systemd-journald.service , таким образом , утверждает , что:
По умолчанию журнал хранит данные журнала в / run / log / journal /. Поскольку / run / является изменчивым, данные журнала теряются при перезагрузке. Чтобы сделать данные постоянными, достаточно создать / var / log / journal /, где systemd-journald будет хранить данные.
Очевидно, в Fedora 19 значение по умолчанию было изменено (на постоянное хранилище), и поскольку CentOS 7 является производным от Fedora 18 - он по-прежнему непостоянен, по умолчанию. Постоянство по умолчанию реализовано за пределами journald через /var/log/messages
и повернутые версии, /var/log/messages-YYYYMMDD
которые записываются с помощью rsyslogd (который запускается по умолчанию и получает свои данные из journald).
Таким образом, чтобы включить постоянное ведение журнала с journald под RHEL / CentOS 7, необходимо
# mkdir /var/log/journal
а затем исправить разрешения и перезапустить journald, например, через
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
systemctl restart systemd-journald
должен это сделать. Поэтому перезагрузка не требуется./usr/share/doc/systemd/README.Debian
:install -d -g systemd-journal /var/log/journal
.drwxr-sr-x. 3 root systemd-journal
- возможно, journald исправляет права доступа / владельца во время инициализации.USR1
сигнал вместо перезапуска, вы не потеряете текущее содержимое журнала.killall -USR1 systemd-journald
Вы можете потерять свои журналы: см. Https://github.com/systemd/systemd/issues/2236
Есть изменение в
v208
:Итак, вы должны запустить что-то вроде
systemd-tmpfiles --create --prefix /var/log/journal
послеmkdir /var/log/journal
Смотрите также :
systemd-journal
не могли прочитать некоторые файлы журналаисточник
chmod 4755 /var/log/journal; chown root:systemd-journal !:2
работает отлично. но tmpfiles: используйте магию ACL для каталогов журналов