tl; dr
No CentOS 7, você precisa habilitar o armazenamento persistente de mensagens de log:
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
Caso contrário, as mensagens de log do diário não serão mantidas entre as botas.
Detalhes
Se a journald
retenção de mensagens de log de inicializações anteriores é configurada via /etc/systemd/journald.conf
. A configuração padrão no CentOS 7 é:
[Journal]
Storage=auto
Onde a página do manual journald.conf explica auto
como:
Um de "volátil", "persistente", "automático" e "nenhum". Se "volátil", os dados do log do diário serão armazenados apenas na memória, ou seja, abaixo da hierarquia / run / log / journal (criada se necessário). Se "persistente", os dados serão armazenados preferencialmente em disco, ou seja, abaixo da hierarquia / var / log / journal (criada se necessário), com um fallback para / run / log / journal (criado se necessário), durante inicialização antecipada e se o disco não for gravável. " auto " é semelhante a "persistente", mas o diretório / var / log / journal não é criado, se necessário, de modo que sua existência controla aonde os dados do log vão .
(enfatize o meu)
A página de manual systemd-journald.service afirma que:
Por padrão, o diário armazena dados de log em / run / log / journal /. Como / run / é volátil, os dados do log são perdidos na reinicialização. Para tornar os dados persistentes, é suficiente criar / var / log / journal / onde systemd-journald armazenará os dados.
Aparentemente, o padrão foi alterado no Fedora 19 (para armazenamento persistente) e, como o CentOS 7 é derivado do Fedora 18 - ele ainda não é persistente por padrão. A persistência é implementada por padrão fora do journald via /var/log/messages
e as versões rotacionadas /var/log/messages-YYYYMMDD
são escritas pelo rsyslogd (que é executado por padrão e obtém sua entrada do journald).
Portanto, para habilitar o log persistente com o journald no RHEL / CentOS 7, é necessário
# mkdir /var/log/journal
e, em seguida, corrija as permissões e reinicie o journald, por exemplo, via
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
systemctl restart systemd-journald
deve fazê-lo. Portanto, não é necessário reiniciar./usr/share/doc/systemd/README.Debian
:install -d -g systemd-journal /var/log/journal
.drwxr-sr-x. 3 root systemd-journal
- talvez o journald corrija as permissões / propriedade durante a inicialização.USR1
sinal em vez de reiniciar, não perderá o conteúdo atual do diário.killall -USR1 systemd-journald
Você pode perder seus logs: consulte https://github.com/systemd/systemd/issues/2236
Há uma mudança em
v208
:Então, você deve executar algo como
systemd-tmpfiles --create --prefix /var/log/journal
depoismkdir /var/log/journal
Veja também :
systemd-journal
não conseguiam ler alguns arquivos de diáriofonte
chmod 4755 /var/log/journal; chown root:systemd-journal !:2
funciona bem. mas TMPFILES: usar magia ACL em diretórios de jornal