É possível reduzir o formato armazenado no tamanho do systemd-journald (e, portanto, o tamanho)?

2

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.

  • Usar 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.
  • O uso de 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.

    
por lewiatan 06.01.2017 / 14:39

1 resposta

0

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.

    
por 13.04.2017 / 08:37