Trabalho básico com journald

O Journald é um sistema de log usado nos sistemas operacionais modernos baseados em Linux para registrar eventos do sistema. Ele coleta informações sobre a operação de vários serviços, aplicativos e processos do sistema para ajudar os administradores a monitorar a integridade do sistema e diagnosticar erros.
Ao contrário dos logs de texto padrão, o journald armazena dados em formato binário. Isso permite que os logs sejam armazenados de forma mais compacta e gerenciados de forma mais eficiente, mas, ao mesmo tempo, você não pode simplesmente abrir esses logs em um editor de texto. Ferramentas especiais são necessárias para visualizá-los e analisá-los.
Neste artigo, veremos como visualizar os registros mantidos pelo journald e como limpá-los para economizar espaço em disco.
Como visualizar logs do journal
Para ler os logs, use o comando journalctl:
- Todos os logs:
sudo journalctl
- Logs desde a última reinicialização:
sudo journalctl -b
- Logs de um serviço específico:
sudo journalctl -u nginx
- Logs de um dia específico:
sudo journalctl --since "2024-11-01" --until "2024-11-02"
- Visualizar as últimas N entradas (por exemplo, as últimas 100):
sudo journalctl -n 100
- Filtrar por nível de prioridade (por exemplo, para erros):
sudo journalctl -p err
- Visualizar entradas do journal em ordem reversa, começando pelas mais recentes (útil quando você precisa ver as últimas entradas de log rapidamente):
sudo journalctl -r
- Visualizar entradas do journal em tempo real (semelhante a tail -f):
sudo journalctl -f
Você pode combinar essas opções. Por exemplo, para exibir todos os erros do serviço nginx em 10 de novembro de 2024, mostrando apenas as últimas 10 entradas:
sudo journalctl -u nginx --since "2024-11-10" --until "2024-11-10 23:59:59" -n 10
Como limpar o Journal
Se os logs ocuparem muito espaço, você pode usar os seguintes comandos para limpá-los:
- Limpar logs antigos (por exemplo, com mais de 7 dias):
sudo journalctl --vacuum-time=7d
- Limpar logs que excedem um tamanho especificado (por exemplo, 1 GB):
sudo journalctl --vacuum-size=1G
- Limpar completamente todos os logs:
sudo journalctl --vacuum-files=0
Como reduzir o tamanho do Journal
Por padrão, o journald pode ocupar muito espaço em disco se os logs não forem limitados. Para definir um tamanho máximo para os logs, abra o arquivo de configuração journald.conf:
sudo nano /etc/systemd/journald.conf
Neste arquivo, você pode configurar os seguintes parâmetros:
- SystemMaxUse — o tamanho máximo para todos os journals:
SystemMaxUse=1G
- RuntimeMaxUse — o tamanho máximo para journals temporários:
RuntimeMaxUse=500M
- MaxRetentionSec — o tempo máximo para reter logs:
MaxRetentionSec=1month
Defina valores adequados para seu sistema e necessidades, salve o arquivo usando Ctrl + O e saia do editor usando Ctrl + X.
Para aplicar as alterações, reinicie o serviço journald:
sudo systemctl restart systemd-journald
Você também pode habilitar o registro em log na RAM ou até mesmo desativá-lo completamente. Nenhuma das opções é recomendada em um ambiente de produção, pois o journal contém informações de diagnóstico importantes. Sua precisão e relevância são cruciais para o diagnóstico adequado de processos em seu servidor.
Se você ainda quiser ativar o armazenamento do journal na RAM, defina o seguinte valor em /etc/systemd/journald.conf:
Storage=volatile
Para desativar completamente o registro em log, especifique:
Storage=none