Os logs do sistema systemd-journald não são persistentes nas inicializações, apesar de Storage = persistente

Os logs do sistema systemd-journald não são persistentes nas inicializações, apesar de Storage = persistente

Recentemente tive um problema com o systemd não preservando logs de inicializações anteriores. Verifiquei várias respostas aqui e em outros lugares, mas não encontrei uma solução.

o problema é que o log do usuário fica persistente nas inicializações, mas os logs do sistema não são

/etc/systemd/journald.conf

[Journal]
Storage=persistent
SystemMaxUse=500M
SystemMaxFiles=5

journalctl -b -1

[root@2ba2de9e /var/log/journal] # journalctl --system -b -1
Data from the specified boot (-1) is not available: No such boot ID in journal

Estou usando o braço archlinux em alguns raspberry pis

versões4.14.24-1-ARCH systemd 237.64-1 systemd-sysvcompat 237.64-1

Alguém tem uma idéia de por que isso está ocorrendo? na minha máquina desktop isso está funcionando sem problemas?

Responder1

É possível que o journald esteja removendo os logs antigos porque você está com pouco espaço em disco. (Você não mencionou quanto tempo após a inicialização o sistema -b -1não está funcionando, então não sei se você tem muitos logs da inicialização atual naquele momento.)

Você SystemMaxUse=500Mconfigurou, mas o journald pode decidir usar menos de 500 MB se não tiver muito espaço livre em disco. Há também uma SystemKeepFree=...configuração cujo padrão é 15% do tamanho do sistema de arquivos (ou 4 GB, o que for menor) e o journald imporá esse limite com mais força do que a quantidade de espaço que você permite. Se você estiver /var/log/journalem uma partição compacta, talvez isso possa ser parte do problema.

Você pode usar alguns comandos para verificar quanto espaço o journald está usando, como:

$ journalctl --disk-usage

E você também vê quantas botas (e quais são seus tempos e IDs) o Journald conhece com:

$ journalctl --list-boots

Isso também pode ajudar a esclarecer seu problema ...

Eu espero que isso ajude!

Responder2

Minha distro veio com este arquivo: /etc/systemd/journald.conf.d/volatile-storage.conf Tinha a seguinte linha

Storage=volatile

A parte volátil precisa ser alterada para persistente, caso contrário a alteração /etc/systemd/journal.confserá ignorada.

Responder3

Estendendo emespelhoresposta, para Storage=volatileque Storage=autofuncione, o /var/log/journaldiretório deve existir e algumas distribuições não fornecem esse local por padrão.

Então você precisa criar e instruir journaldpara liberar tudo o que está na memória.

sudo mkdir /var/log/journal     ## Enable persistent logging
sudo journalctl --flush

informação relacionada