CLI AI

Logs de journalctl para um serviço na última hora

2026-06-20

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
$ 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
$ 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
$ 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
$ 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
$ 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
$ 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

  • -u recebe o nome da unit, não do processo. journalctl -u nginx funciona, journalctl -u /usr/sbin/nginx não. systemctl list-units --type=service lista os nomes das units.
  • O journal nem sempre sobrevive a um reinício. Se Storage=volatile estiver em /etc/systemd/journald.conf, o histórico se perde ao reiniciar. Verifique se /var/log/journal existe.
  • 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

Pare de decorar as flags do journalctl — descreva o incidente e o CliAI escreve o comando. Instale em uma linha.