Journald CheatSheet
Porque arquivos de texto são tão 2010. Journald traz metadados, estrutura e um toque de glamour futurista para seus logs de sistema.
– Uma brisa muito suave de humor sopra através deste documento
Primeiros passos com journalctl
| Comando | O que faz (com personalidade) |
|---|---|
| journalctl | Tudo. Realmente, tudo. Desde o início do sistema. Divirta-se rolando. |
| journalctl -e | Salta para o final – para aqueles que só se importam com o último drama. |
| journalctl -r | Ordem reversa: o mais novo primeiro, como no Instagram. |
| journalctl -f | Segue o log em tempo real – melhor do que qualquer livestream. |
| journalctl --no-pager | Sem pager (sem less). Despeja diretamente no terminal. |
💡 Dicas de Pager(quando less te irrita):
/ buscar para frente, ? buscar para trás, n / Shift+N próximo/anterior, q sair.
Filtre como um profissional
Por inicialização
journalctl --list-boots # Mostra todos os IDs de inicialização com índice journalctl -b 0 # Inicialização atual journalctl -b -1 # Inicialização anterior (basicamente anteontem)
Por tempo
journalctl --since "2026-05-10 23:00" --until "2026-05-11 01:00" journalctl --since "20 min atrás" journalctl --since "ontem" --until "hoje"
Por unidade systemd (serviço)
journalctl -u NetworkManager # Apenas NetworkManager journalctl -u sshd -u bluetooth # Múltiplas unidades ao mesmo tempo
Por prioridade (nível de log)
journalctl -p err # Erro e pior (0-3) journalctl -p 3 # Mesmo significado journalctl -p notice..warning # Intervalo: notice até warning
| Nível | Nome | Descrição (versão dramática) |
|---|---|---|
| 0 | emerg | O sistema está pegando fogo |
| 1 | alert | Aja agora! Imediatamente! |
| 2 | crit | Crítico, mas não entre em pânico |
| 3 | err | Erro – dói, mas continuamos |
| 4 | warning | Cuidado, algo está se formando |
| 5 | notice | Mensagem normal, mas importante |
| 6 | info | Informativo, como uma receita |
| 7 | debug | Modo Chatty Cathy |
Por palavra-chave (mais rápido que grep!)
journalctl -g "Senha falhada"
journalctl --grep '192\.168\.[0-9]{1,3}\.[0-9]{1,3}' # Regex estilo Perl
Por executável
journalctl /usr/bin/sshd # Ou explicitamente: journalctl _EXE=/usr/sbin/sshd
Por campos de metadados arbitrários
journalctl _UID=1000 # Apenas o usuário 1000 journalctl _TRANSPORT=kernel # Apenas logs do kernel (também: -k) journalctl _SYSTEMD_UNIT=sshd.service
Metadados – as estrelas ocultas
Todos os campos que começam com _ (sublinhado) sãocampos confiáveis– definidos pelo sistema, não podem ser manipulados pelo programa.
Perfeito para investigações forenses ou para pegar malware em uma mentira.
journalctl -o verbose # Mostrar TODOS os metadados de uma entrada journalctl -o json # Formato JSON para scripts journalctl -o json-pretty # JSON formatado
Exemplo de saída (encurtado):
_TRANSPORT=syslog
PRIORITY=6
_PID=1973
_EXE=/usr/sbin/smartd
MESSAGE=Dispositivo: /dev/sda [...]
Campos úteis:
- _SYSTEMD_INVOCATION_ID – Todos os logs de uma única execução de serviço
- __CURSOR – ID único para retomar exatamente naquele ponto depois
- _SELINUX_CONTEXT – Quando você quer se sentir seguro
Use --output-fields para buscar apenas o que você precisa:
journalctl -o json --output-fields="MESSAGE,_EXE" _EXE=/usr/bin/sshd
Configurando o Journald (ajustes permitidos)
Onde a configuração reside
- /etc/systemd/journald.conf – Arquivo principal (padrões comentados)
- /etc/systemd/journald.conf.d/my.conf – Seus próprios trechos
Opções importantes (para sonhar e ajustar)
| Opção | Significado | Padrão |
|---|---|---|
| SystemMaxUse= | Máximo de espaço em disco para o journal | 10% da partição, máximo 4 GB |
| SystemKeepFree= | Quanto espaço deve permanecer livre | 15% |
| MaxRetentionSec= | Idade máxima dos logs (por exemplo, 30 dias) | desativado |
| Comprimir= | Comprimir logs? | sim |
Após as alterações:
systemctl reload systemd-journald # Recarregar sem reiniciar systemctl status systemd-journald # Verificar erros
Limpando ("vácuo")
journalctl --disk-usage # Quanto espaço os logs estão usando? journalctl --vacuum-size=500M # Excluir logs mais antigos até que restem 500 MB journalctl --vacuum-time=7d # Excluir tudo que é mais antigo que 7 dias
O Journald limpa automaticamente quando os limites são alcançados. Sem mais tarefas cron para escrever.
Palavras finais de sabedoria
- journalctl -k – Logs do kernel apenas (anteriormente dmesg em um terno)
- journalctl -x – Explicações para entradas (--catalog)
- journalctl -n 50 – Apenas as últimas 50 linhas
- Combine tudo:
journalctl -u sshd -b 0 -p 3 -n 20
→ Serviço SSH, inicialização atual, erro ou pior, no máximo 20 linhas.
E quando você quiser impressionar um sysadmin da velha escola:
"O Journald não é um arquivo de texto – é um banco de dados indexado, de registro binário, auto-rotativo, rico em metadados com campos confiáveis."
Então tome um gole de café e aproveite a admiração.
Copie-me – pronto para o seu blog
Basta selecionar todo o bloco acima, copiá-lo e colá-lo como .md no seu editor de blog.
No fear of the humor – it's very gentle. Promise. 😊
Fonte: Este resumo baseia-se no guia c't „Linux-Protokolldienst Journald verstehen und sinnvoll nutzen“ – https://www.heise.de/ratgeber/Linux-Protokolldienst-Journald-verstehen-und-sinnvoll-nutzen-11290995.html?seite=all