O journalctl é a ferramenta de linha de comando poderosa usada para consultar e exibir logs coletados pelo systemd-journald. Diferente dos logs tradicionais em texto puro (como o antigo /var/log/messages), o journalctl trabalha com arquivos binários indexados, o que torna as buscas muito mais rápidas e precisas.
🏛️ Como o Journal funciona
O journald centraliza mensagens vindas do kernel, de serviços do sistema, do console e de erros de aplicativos.
🔍 Comandos Essenciais de Visualização
1. Ver tudo (com paginação)
O comando básico abre um visualizador estilo less. Use as setas para navegar e q para sair.
Bash
journalctl
2. Logs em tempo real (Monitoramento)
Igual ao famoso tail -f, este comando mostra as novas linhas à medida que elas chegam.
Bash
journalctl -f
3. Filtrar por Serviço (Unit)
Útil para debugar por que um serviço específico (como o Apache ou Nginx) falhou.
Bash
journalctl -u nginx.service
4. Ver apenas logs do Kernel
Ideal para identificar problemas de hardware ou drivers.
Bash
journalctl -k
⏱️ Filtragem por Tempo e Inicialização
O journalctl brilha quando você precisa encontrar algo que aconteceu em um momento específico.
- Desde uma data/hora:
journalctl --since "2024-05-10 14:30:00" - Períodos relativos:
journalctl --since "2 hours ago"oujournalctl --since yesterday - Logs de Boots anteriores:O Windows tem o “Visualizador de Eventos”, o Linux tem os boots.
- Listar boots salvos:
journalctl --list-boots - Ver logs do boot anterior:
journalctl -b -1
- Listar boots salvos:
❗ Filtragem por Gravidade (Prioridade)
Você pode filtrar mensagens por nível de importância usando a flag -p.
| Nível | Comando | Descrição |
| Emergência | journalctl -p 0 | Sistema inutilizável. |
| Erro | journalctl -p 3 | Condições de erro (o mais comum para debug). |
| Aviso | journalctl -p 4 | Alertas que não impedem o funcionamento. |
| Informação | journalctl -p 6 | Mensagens informativas normais. |
🧹 Gerenciamento e Limpeza (Manutenção)
Logs podem crescer rapidamente e “comer” todo o seu espaço em disco. Veja como gerenciar isso:
- Verificar quanto espaço os logs ocupam:Bash
journalctl --disk-usage - Limpar logs antigos (por tempo):Remove tudo que for mais velho que 7 dias.Bash
sudo journalctl --vacuum-time=7d - Limpar logs por tamanho:Mantém apenas os últimos 500MB de logs.Bash
sudo journalctl --vacuum-size=500M
💡 Dica Extra: Saída em JSON
Se você estiver criando um script ou enviando logs para uma ferramenta de análise, pode exportar tudo em formato JSON:
Bash
journalctl -u ssh.service -o json-pretty
[!NOTE]
Por padrão, o
journalctlsó mostra logs do seu usuário a menos que você usesudo. Para gerenciar logs do sistema, você precisa de privilégios de root.
- Como usar o cmdlet Set-PSFLoggingProvider no PowerShell para aprimorar o monitoramento de logs.
- Como personalizar esquemas de cores no prompt de comando do Windows
- Descubra como implementar o altruísmo em um ambiente Windows.
- Como resolver o erro 0x8007f026 STATUS_WININET_LOAD_FAILED no Windows 10 e 11
- Como criar e gerenciar uma conta da Microsoft no Windows
