~ / blog / ops
18 set 2026ops9 min de leitura

Ler logs: journalctl no Linux e Event Viewer no Windows

Comandos e filtros essenciais para diagnosticar serviço, boot e erros — journalctl e Event Viewer/PowerShell lado a lado.

LinuxWindowslogsobservabilidade

1. O que procurar primeiro

Em incidente: horário aproximado, serviço afetado, e se o erro é de aplicação, rede ou sistema.

2. journalctl na prática

journalctl -u nginx -n 100 --no-pager
journalctl -u nginx --since "1 hour ago"
journalctl -u nginx -f
journalctl -b
journalctl -p err..alert --since today

3. Event Viewer e PowerShell

Get-WinEvent -LogName System -MaxEvents 50 | Where-Object LevelDisplayName -eq 'Error'
Get-WinEvent -FilterHashtable @{LogName='Application'; Level=2; StartTime=(Get-Date).AddHours(-2)}

GUI: eventvwr.msc → Windows Logs → Application / System / Security.

4. Equivalências

  • Últimas linhas: journalctl -n 50 / Get-WinEvent -MaxEvents 50
  • Por serviço: -u nginx / filtrar por ProviderName
ATENÇÃO Logs de autenticação são sensíveis. Restrinja quem pode ler.

5. Checklist

  • Saber o nome da unit / provider do serviço crítico
  • Filtro por tempo + severidade
  • Rotação e retenção configuradas

6. Comandos explicados

journalctl (Linux)

Comando ou opçãoO que faz
journalctl -u nginx-u filtra pelo serviço (unit), aqui o nginx.
-n 100Mostra apenas as 100 últimas linhas.
--no-pagerImprime tudo direto no terminal, sem abrir o paginador. Bom para copiar ou usar em pipes.
--since "1 hour ago"Limita ao período. Aceita também today, yesterday e datas como "2026-09-20 10:00".
-fAcompanha as novas linhas em tempo real, como o tail -f.
-bMostra só o boot atual. -b -1 mostra o boot anterior.
-p err..alertFiltra por prioridade, de err a alert.
PrioridadeNomeUso
0emergsistema inutilizável
1alertação imediata
2critcondição crítica
3errerro
4warningaviso
5noticenormal, mas relevante
6infoinformativo
7debugdepuração

Get-WinEvent (Windows)

Comando ou parâmetroO que faz
Get-WinEvent -LogName System -MaxEvents 50Lê os 50 eventos mais recentes do log System.
Where-Object LevelDisplayName -eq 'Error'Mantém só os eventos de nível Erro.
-FilterHashtable @{LogName='Application'; Level=2; StartTime=...}Filtra na origem, o que é mais rápido em logs grandes. Level=2 é Erro.
(Get-Date).AddHours(-2)Calcula "duas horas atrás" para o StartTime.
Nível no WindowsSignificado
1Crítico
2Erro
3Aviso
4Informação

7. Exemplo de investigação no Linux

Um site fora do ar depois de um deploy. A sequência de comandos, do mais amplo ao mais específico:

systemctl status nginx
journalctl -u nginx --since "30 min ago" -p warning --no-pager

Uma linha típica de erro, ilustrativa, seria: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use). Ela indica que outra aplicação já ocupa a porta 80. O próximo passo é descobrir qual, com sudo ss -lntp | grep :80.

8. Erros comuns e como resolver

SintomaCausa provávelSolução
O journalctl mostra pouco ou nadaO usuário não tem permissão para ler o journal completo.Use sudo ou adicione o usuário ao grupo systemd-journal.
Os logs somem depois de reiniciarO journal está configurado como volátil.Crie /var/log/journal ou use Storage=persistent no journald.conf.
O Get-WinEvent demora muitoSem filtro, ele percorre o log inteiro.Use -FilterHashtable com LogName, Level e StartTime.

Quer aplicar isso ao seu contexto?

Se esse problema existe na sua operação, podemos analisar o cenário em um diagnóstico gratuito de 30 minutos.

solicitar diagnóstico gratuito →

Leia também