Veja como ver logs no Linux com journalctl e /var/log, descobrir por que o servidor reiniciou, limitar o journal e usar o logrotate sem encher o disco.

Para que serve

Quando algo dá errado no servidor, a resposta quase sempre está nos logs. No Debian e no Proxmox atuais, o registro principal é o journal do systemd, consultado com journalctl. Aplicações como Nginx, Apache e bancos de dados continuam gravando seus próprios arquivos em /var/log, que são girados pelo logrotate. Este artigo mostra como ver logs no Linux pelos dois caminhos e como impedir que eles encham o disco.

Pré-requisitos

  • Acesso root ou usuário no grupo adm ou systemd-journal (podem ler os logs sem sudo).
  • Debian 12/13, Ubuntu 24.04 ou Proxmox VE 8/9.
Onde foi parar o /var/log/syslog? Desde o Debian 12, o rsyslog não é mais instalado por padrão em instalações novas, então arquivos como /var/log/syslog e /var/log/auth.log podem não existir. As mesmas informações estão no journal. Se você depende desses arquivos (para alguma ferramenta antiga, por exemplo), instale com apt install rsyslog.

Passo a passo para ver logs no Linux

1. Consultas essenciais com journalctl

ObjetivoComando
Últimas 100 linhas, sem paginaçãojournalctl -n 100 --no-pager
Acompanhar em tempo realjournalctl -f
Somente um serviçojournalctl -u nginx
Desde o boot atual / o anteriorjournalctl -b / journalctl -b -1
Listar os boots registradosjournalctl --list-boots
Somente erros e pioresjournalctl -p err -b
Intervalo de tempojournalctl --since "2026-10-01 08:00" --until "2026-10-01 09:00"
Mensagens do kernel (disco, rede, OOM)journalctl -k
Logins SSHjournalctl -u ssh --since today
Uso de sudojournalctl _COMM=sudo

As opções podem ser combinadas, por exemplo journalctl -u pveproxy -p warning --since "1 hour ago". Para descobrir por que o servidor reiniciou, olhe o fim do boot anterior: journalctl -b -1 -n 50. Se o log termina de repente, sem mensagens de desligamento, a parada foi abrupta (energia, travamento ou reset pelo console).

2. Garantir que o journal sobreviva ao reinício

Em instalações atuais o journal já é gravado em disco em /var/log/journal. Em sistemas antigos atualizados, ele pode estar apenas na memória e se perder a cada reinício. Para conferir e ativar:

journalctl --header | grep -i 'file path'
mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald

3. Limitar o tamanho do journal

Por padrão, o journal pode usar até 10% do sistema de arquivos (limitado a 4 GB). Para definir seu próprio limite e tempo de retenção, crie um arquivo complementar:

mkdir -p /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/retencao.conf <<'EOF'
[Journal]
Storage=persistent
SystemMaxUse=2G
MaxRetentionSec=3month
EOF
systemctl restart systemd-journald

Para liberar espaço imediatamente:

journalctl --disk-usage
journalctl --vacuum-size=1G
journalctl --vacuum-time=30d

4. Os arquivos em /var/log

Arquivo ou pastaConteúdo
/var/log/apt/Histórico de instalações e atualizações de pacotes
/var/log/nginx/, /var/log/apache2/Acessos e erros do servidor web
/var/log/mysql/, /var/log/postgresql/Logs do banco de dados
/var/log/pve/tasks/Proxmox: tarefas (backups, migrações, criação de VMs)
/var/log/fail2ban.logBloqueios do fail2ban, se instalado

Ferramentas úteis: tail -f arquivo para acompanhar, less +G arquivo para abrir no fim, zgrep termo arquivo.gz para buscar em logs antigos compactados.

5. Configurar o logrotate para a sua aplicação

O logrotate roda uma vez por dia (pelo logrotate.timer) e gira os arquivos conforme as regras em /etc/logrotate.d/. Se a sua aplicação grava em /var/log/minhaapp/, crie /etc/logrotate.d/minhaapp:

/var/log/minhaapp/*.log {
    daily
    rotate 14
    maxsize 500M
    missingok
    notifempty
    compress
    delaycompress
    copytruncate
}
  • rotate 14: mantém 14 arquivos antigos.
  • maxsize 500M: gira antes do prazo se o arquivo passar desse tamanho.
  • copytruncate: copia e esvazia o arquivo original, para aplicações que não reabrem o log. Se a aplicação aceita um sinal para reabrir os logs, prefira create com um bloco postrotate chamando, por exemplo, systemctl reload minhaapp.

Teste sem alterar nada e, depois, force uma rotação:

logrotate -d /etc/logrotate.d/minhaapp
logrotate -f /etc/logrotate.d/minhaapp

Como saber se funcionou

  • journalctl --list-boots mostra boots anteriores (o journal é persistente).
  • journalctl --disk-usage fica abaixo do limite configurado.
  • Em /var/log/minhaapp/ aparecem arquivos .1 e .gz após a rotação; systemctl list-timers logrotate.timer mostra a próxima execução.

Problemas comuns

  • No journal files were found com -b -1: o journal não era persistente antes; ative conforme o passo 2.
  • logrotate reclama de permissões (insecure permissions): adicione a linha su usuario grupo na regra, com o dono da pasta de logs.
  • Log girou, mas a aplicação continua escrevendo no arquivo antigo: faltou copytruncate ou o postrotate para a aplicação reabrir o arquivo.
  • Horários dos logs estranhos: confira o fuso horário e a sincronização NTP do servidor.

Se os logs revelarem tentativas de acesso suspeitas, veja também o artigo «Detecção de intrusão no servidor Linux: como usar Wazuh, AIDE e auditd» e «Como proteger o SSH: chaves ed25519, sem senha, sem root e com fail2ban ou CrowdSec».

Perguntas frequentes

Onde ficam os logs no Linux?

O journal do systemd fica em /var/log/journal e é lido com journalctl. Os logs próprios das aplicações (Nginx, Apache, bancos de dados) ficam em /var/log.

Como ver os logs de um serviço específico?

Use journalctl -u nome-do-servico, por exemplo journalctl -u nginx --since today. Para acompanhar em tempo real, acrescente -f.

Como descobrir por que o servidor reiniciou?

Veja o fim do boot anterior com journalctl -b -1 -n 50. Se o log termina sem mensagens de desligamento, a parada foi abrupta.

Posso apagar os logs do journal?

Sim, de forma controlada: journalctl --vacuum-size=1G ou --vacuum-time=30d removem os mais antigos. Não apague os arquivos à mão.

Leitura complementar

Precisa de ajuda?

Se precisar de ajuda para interpretar um erro, abra um ticket anexando o trecho relevante do log (com data e hora) e descrevendo o que estava acontecendo no momento.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)

Leia também