O comando é journalctl -u nginx --since '1 hour ago': -u escolhe a unit, --since define a janela. Quatro flags — -u, --since, -p e -f — cobrem a maior parte do triage de incidentes, e a ordem abaixo é a que você realmente usa: da lista completa do que o serviço registrou até seguir o fluxo de erros em tempo real e exportar uma cópia à prova de rotação para um colega.
1. Como vejo os logs de um único serviço?
$ clai mostra os logs do nginx→ journalctl -u nginx
-u é unit. Sem ele você recebe todo o journal do sistema, onde as mensagens do seu serviço se afogam entre as do kernel e tudo mais.
2. Como reduzo a janela para a última hora?
$ clai mostra os logs do nginx da última hora→ journalctl -u nginx --since '1 hour ago'
--since entende expressões humanas: today, yesterday, '1 hour ago', '2026-06-20 14:00'. Existe um --until correspondente para cortar a cauda depois do incidente.
3. Como deixo só os erros?
$ clai mostra só os erros do nginx de hoje→ journalctl -u nginx --since today -p err
-p é a prioridade do syslog. err mostra o nível error e tudo mais grave — critical, alert, emergency. A escala completa: emerg, alert, crit, err, warning, notice, info, debug.
4. Como sigo os logs em tempo real?
$ clai segue os logs do nginx agora mesmo→ journalctl -u nginx -f
É o equivalente do tail -f, mas o journald conhece a rotação, então este comando não pode ficar mudo. Essa é a vantagem real sobre ler o arquivo diretamente.
5. Como vejo o que aconteceu desde o último boot?
$ clai mostra os erros deste serviço desde o boot anterior→ journalctl -u nginx -b -1 -p err
-b é boot. -b -1 é o boot anterior, -b 0 ou apenas -b é o atual. Indispensável quando a máquina reiniciou sem avisar e você precisa saber por quê.
6. Como entrego o log para um colega?
$ clai exporta os logs do nginx de hoje para um arquivo sem paginação→ journalctl -u nginx --since today --no-pager -o short-iso > nginx-today.log
--no-pager remove o less, que travaria o comando num ambiente não interativo. -o short-iso dá timestamps ISO-8601 que ordenam corretamente e não dependem do locale.
Pegadinhas
-urecebe o nome da unit, não do processo.journalctl -u nginxfunciona,journalctl -u /usr/sbin/nginxnão.systemctl list-units --type=servicelista os nomes das units.- O journal nem sempre sobrevive a um reinício. Se
Storage=volatileestiver em/etc/systemd/journald.conf, o histórico se perde ao reiniciar. Verifique se/var/log/journalexiste. - Units de usuário e de sistema são separadas. Para serviços rodando sob seu próprio usuário, você precisa de
journalctl --user -u nome, ou não vai achar nada.
Perguntas relacionadas
Como vejo só as últimas N linhas? journalctl -u nginx -n 50. Por padrão journalctl mostra tudo desde o início, incômodo num journal grande.
Por que journalctl é melhor do que ler o arquivo em /var/log? Ele conhece a rotação, filtra por unit, prioridade e tempo, e mostra logs de serviços que nem escrevem em arquivo.
Como limito o tamanho do journal? SystemMaxUse=500M em /etc/systemd/journald.conf, depois systemctl restart systemd-journald. Limpeza pontual: journalctl --vacuum-size=200M.
Veja também
- Ver vários arquivos de log de uma vez
- O processo que não quer morrer
- Limpe logs e backups antigos com uma frase
Pare de decorar as flags do journalctl — descreva o incidente e o CliAI escreve o comando. Instale em uma linha.