Edite /etc/systemd/journald.conf
para especificar quanto espaço o diário pode usar, tanto na memória quanto no disco.
Veja man journald.conf
para uma explicação detalhada das configurações que ele contém.
Estou usando o systemd na máquina raspberrypi com o sistema baseado em yocto.
Recentemente eu tive alguns problemas com o redirecionamento de mensagens para rsyslog.socket, então decidi me livrar de rsyslog
completamente em favor de journald
.
Depois de fazer isso, notei que o tamanho dos arquivos journald é muito maior do que eu pensava que seria.
root@rpiDev: ~ $ journalctl -o cat > /tmp/journals-cat.txt
root@rpiDev: ~ $ journalctl -o export > /tmp/journals-exp.txt
root@rpiDev: ~ $ journalctl -o verbose > /tmp/journals-verb.txt
root@rpiDev: ~ $ journalctl -a -m > /tmp/journals.txt ### This is what I need!
root@rpiDev: ~ $ journalctl -a -m -o verbose > /tmp/journals-everything.txt
root@rpiDev: ~ $ du -sh /tmp/journals* /var/log/journal/ ; journalctl --disk-usage
468.0K /tmp/journals-cat.txt
15.7M /tmp/journals-everything.txt
4.7M /tmp/journals-exp.txt
4.9M /tmp/journals-verb.txt
2.3M /tmp/journals.txt
41.0M /var/log/journal/
Archived and active journals take up 12.5M on disk.
Comparando os tamanhos, parece que os arquivos binários criados pelo journald são muito maiores que os logs mesclados ( -m
).
O que eu realmente preciso é o que está dentro de /tmp/journals.txt
.
Pergunta:
É possível reduzir a quantidade de coisas armazenadas pelo journald em seus arquivos binários para o que eu notei ao executar journalctl -a -m
?
Em outras palavras: posso desabilitar o armazenamento de todas as informações que não são importantes para mim e usar o journald como faria no syslog?
Meu problema pode ser resolvido desabilitando o armazenamento permanente de logs do journald e encaminhando-os para o syslog, mas talvez seja possível sem trazer de volta o rsyslog?
EDITAR:
Parâmetros mencionados por alguns usuários não me ajudam aqui.
SystemMaxUse=
e RuntimeMaxUse=
apenas define o tamanho máximo dos arquivos armazenados - posso ter arquivos menores com a mesma quantidade de informações desnecessárias e, portanto, menos registros reais. MaxLevel...=
define o nível de log máximo armazenado no diário. Isso também não é o que eu preciso aqui. EDIT2:
Minha solução:
Eu decidi armazenar logs no syslog (eu uso rsyslog
).
No meu journald.conf eu defini Storage=volatile
e usei SystemMaxUse=64M
e RuntimeMaxUse=64M
para limitar o uso de disco pelo journald.
Eu também habilitei o ForwardToSyslog=yes
, então agora eu tenho a minha solução syslog antiga funcionando e também consigo visualizar logs do journald de tempo de execução.
Edite /etc/systemd/journald.conf
para especificar quanto espaço o diário pode usar, tanto na memória quanto no disco.
Veja man journald.conf
para uma explicação detalhada das configurações que ele contém.