Como monitorar logs no Linux com journalctl e tail
Quando algo dá errado no servidor, os logs são o primeiro lugar para procurar respostas. Veja onde eles ficam e como lê-los de forma eficiente.
Onde ficam os logs
| Log | Caminho comum |
|---|---|
| Sistema (Debian/Ubuntu) | /var/log/syslog |
| Sistema (AlmaLinux/Rocky) | /var/log/messages |
| Autenticação/SSH | /var/log/auth.log ou /var/log/secure |
| Nginx | /var/log/nginx/access.log e error.log |
| Apache | /var/log/apache2/ ou /var/log/httpd/ |
| MySQL/MariaDB | /var/log/mysql/ |
| PHP-FPM | /var/log/php*-fpm.log |
| Journal do systemd | acessado via journalctl |
journalctl: os logs do systemd
journalctl # todos os logs
journalctl -f # em tempo real
journalctl -u nginx # de um serviço
journalctl -u nginx -f # serviço em tempo real
journalctl --since "1 hour ago" # última hora
journalctl --since "2026-09-24 10:00" --until "2026-09-24 12:00"
journalctl -p err # apenas erros ou mais graves
journalctl -b # desde o último boot
journalctl -b -1 # boot anterior (útil após travamentos)
journalctl -k # mensagens do kernel
Controlando o espaço do journal
journalctl --disk-usage
sudo journalctl --vacuum-time=14d # mantém só 14 dias
sudo journalctl --vacuum-size=500M # limita a 500 MB
tail, less e grep: os clássicos
sudo tail -n 100 /var/log/nginx/error.log # últimas 100 linhas
sudo tail -f /var/log/nginx/error.log # acompanha em tempo real
sudo less /var/log/syslog # navega (/ para buscar, q para sair)
sudo grep "error" /var/log/syslog # filtra
sudo grep -i "out of memory" /var/log/syslog
Acompanhar vários arquivos de uma vez:
sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log
Investigações comuns
Quem está tentando acessar o SSH?
sudo grep "Failed password" /var/log/auth.log | tail
sudo journalctl -u ssh --since today | grep -i failed # o serviço pode se chamar sshd
Processos encerrados por falta de memória
sudo journalctl -k | grep -i "killed process"
IPs que mais acessam o site
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
Páginas que mais geram erro 500
sudo awk '$9 == 500 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
logrotate: evitando que os logs lotem o disco
O logrotate compacta e remove logs antigos automaticamente. As regras ficam em /etc/logrotate.d/. Exemplo para uma aplicação:
/var/log/meuapp/*.log {
daily
rotate 14
compress
missingok
notifempty
copytruncate
}
Teste com:
sudo logrotate -d /etc/logrotate.d/meuapp
Indo além
Para vários servidores ou análise avançada, considere centralizar logs com ferramentas como Grafana Loki, Graylog ou a stack ELK.
Conclusão
Saber ler logs transforma horas de tentativa e erro em minutos de diagnóstico. E com armazenamento NVMe, até a busca em arquivos de log grandes fica mais rápida.Conheça os planos VPS-NVME-BR da VittHost e use o cupom SP-VITT20 para ganhar 20% de desconto na primeira fatura enquanto a promoção estiver ativa.