Gerenciando os logs do Journal no Linux
Olá pessoal! Hoje vamos falar um pouco de sistema operacional, mais precisamente de Linux.
Para quem utiliza servidores Linux, seja em cloud, on premise ou mesmo no seu desktop, sempre é importante ter a possibilidade de observar logs. É através deles que temos como saber o que pode estar ocorrendo, em caso de erros, por exemplo, ou se há algum risco de segurança. Enfim, temos diversas utilidades para os logs.
Grande parte das distribuições Linux usam o Systemd para gerenciar processos do sistema operacional. O Systemd é um daemon que gerencia processos, dispositivos, pontos de montagem, entre outros.
Em tempo, “daemon” é um processo que roda em segundo plano, sem que o usuário precise gerenciá-lo. Isso possibilita que quando subimos nossas máquinas, os processos para que o sistema funcione, são gerenciados por um “daemon”, sem que precisemos ligar tudo que precisamos.
Bom, conceitos colocados, vamos falar do Journal, que é gerenciado pelo Systemd, também em um daemon, o systemd-journald. Ok, mas aonde queremos chegar?
Vamos por partes.
Primeiro que logs de diversas fontes são gravados no caminho /var/log/journal. Nesse caminho, teremos acesso aos logs. Isso por si só é importante. Na prática, se quisermos saber o log de algum serviço que estamos rodando na máquina, seja ela um servidor ou não, podemos usar o comando journalctl simplesmente e já veremos os logs mais recentes. Se quisermos, por exemplo, ver o journal do serviço do docker, de forma unitária, poderíamos indicar no comando:
journalctl -u docker.service
Vimos até aqui então, a importância do journal e como visualizar estes logs que ele gerencia. Vamos agora considerar que os logs podem ser úteis por um tempo e, apesar do journal poder compactar os logs antigos, podemos não precisar de logs de 1 ano atrás, por exemplo. Supondo que você tenha um servidor com limitação de disco, é importante configurar o journal para reter o volume e/ou tempo que você realmente precisará ter os logs.
Importante: não é recomendável excluírmos os arquivos do journal manualmente, usando por exemplo o comando rm no caminho /va/log/journal
Para excluirmos e já setamos o volume máximo de logs a ser mantido, devemos usar o comando abaixo, indicando quanto queremos manter de log. Neste exemplo, vamos preservar 500MB para retermos:
journalctl --vacuum-size=500M
O comando acima fará a exclusão dos logs mais antigos e limitará em 500MB o log.
As configurações do journal podem ser definidas no seu arquivo padrão de configuração: /etc/systemd/journald.conf.
Lembrando, que para alterações terem efeito, é necessário reiniciar o serviço:
systemctl restart systemd-journald.service
É isso, pessoal. Logs são importantes, lembrem-se, são eles que nos indicam muitas informações que precisamos no dia a dia para resolvermos problemas ou melhorarmos nossos sistemas e ambientes.