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 -1
não está funcionando, então não sei se você tem muitos logs da inicialização atual naquele momento.)
Você SystemMaxUse=500M
configurou, 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/journal
em 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.conf
será ignorada.
Responder3
Estendendo emespelhoresposta, para Storage=volatile
que Storage=auto
funcione, o /var/log/journal
diretório deve existir e algumas distribuições não fornecem esse local por padrão.
Então você precisa criar e instruir journald
para liberar tudo o que está na memória.
sudo mkdir /var/log/journal ## Enable persistent logging
sudo journalctl --flush