Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Guia de logs do Postfix: onde ficam e como analisar

16 min de leitura  ·  Guia técnico

Logs do Postfix são registros detalhados de todas as operações de envio, recebimento e rejeição de mensagens processadas pelo servidor de email. Para localizar, visualizar e analisar os logs do Postfix no Linux, siga estes passos:

  1. Localize o arquivo de log correto para sua distribuição (/var/log/mail.log no Ubuntu/Debian ou /var/log/maillog no Rocky Linux 9)
  2. Use tail -f para monitorar logs em tempo real durante testes de entrega
  3. Identifique o Queue ID de uma mensagem e rastreie seu ciclo de vida completo
  4. Filtre por endereço de email com grep para isolar problemas específicos
  5. Interprete os status de entrega: sent, bounced, deferred e rejected
  6. Use mailq e postqueue para inspecionar mensagens presas na fila

Pré-requisitos para analisar logs do Postfix

  • Postfix instalado e em execução (versão 3.x ou superior, presente no Ubuntu 22.04, Debian 12 e Rocky Linux 9)
  • Acesso root ou usuário com permissão sudo ao servidor
  • Acesso SSH ao servidor Linux — veja o guia Acessando servidores VPS Linux da AviraHost se precisar configurar o acesso
  • Serviço rsyslog ou journald ativo para gravação dos logs
  • Conhecimento básico de linha de comando Linux (grep, tail, less)

Onde ficam os logs do Postfix no Linux

O local dos logs do Postfix varia conforme a distribuição Linux utilizada. Entender essa diferença evita horas de busca desnecessária quando algo dá errado no servidor de email.

No Ubuntu 22.04 LTS, Ubuntu 24.04 LTS e Debian 12, o Postfix registra todas as atividades no arquivo centralizado de email:

/var/log/mail.log

No Rocky Linux 9 e AlmaLinux 9 (derivados do RHEL), o arquivo padrão é diferente:

/var/log/maillog

Em sistemas que utilizam systemd como init (praticamente todos os Linux modernos), os logs também ficam disponíveis no journal do systemd, independentemente do arquivo de texto:

journalctl -u postfix

Para verificar qual arquivo está sendo usado no seu sistema, execute:

postconf -d syslog_facility
syslog_facility = mail

Isso confirma que o Postfix usa a facility mail do syslog. O rsyslog então direciona esses registros para o arquivo correto conforme a configuração em /etc/rsyslog.conf ou em arquivos dentro de /etc/rsyslog.d/.

Para confirmar que o arquivo de log existe e está sendo atualizado:

ls -lh /var/log/mail.log
-rw-r----- 1 syslog adm 2,4M jan 15 14:32 /var/log/mail.log

Se o arquivo não existir, verifique se o rsyslog está ativo:

systemctl status rsyslog

Como visualizar os logs do Postfix em tempo real

Monitorar o fluxo de mensagens em tempo real é a forma mais eficiente de diagnosticar problemas de entrega de email no momento em que ocorrem.

Para acompanhar os logs do Postfix ao vivo no Ubuntu ou Debian:

tail -f /var/log/mail.log

No Rocky Linux 9 ou AlmaLinux 9:

tail -f /var/log/maillog

Via journalctl (funciona em qualquer distribuição com systemd):

journalctl -u postfix -f

Ao enviar um email de teste enquanto o tail -f está rodando, você verá algo semelhante a:

Jan 15 14:35:22 servidor postfix/pickup[1234]: A1B2C3D4E5F6: uid=1000 from=<[email protected]>
Jan 15 14:35:22 servidor postfix/cleanup[1235]: A1B2C3D4E5F6: message-id=<[email protected]>
Jan 15 14:35:22 servidor postfix/qmgr[1236]: A1B2C3D4E5F6: from=<[email protected]>, size=512, nrcpt=1 (queue active)
Jan 15 14:35:23 servidor postfix/smtp[1237]: A1B2C3D4E5F6: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[142.250.27.27]:25, delay=0.8, delays=0.1/0.0/0.5/0.2, dsn=2.0.0, status=sent (250 2.0.0 OK)

Para ver as últimas 100 linhas do log sem modo ao vivo:

tail -n 100 /var/log/mail.log

Para navegar pelo arquivo completo com paginação:

less /var/log/mail.log

Dentro do less, use /termo para buscar e n para ir para a próxima ocorrência.

Como interpretar as entradas de log do Postfix

Cada linha do log do Postfix segue uma estrutura padronizada que, uma vez compreendida, permite identificar rapidamente o status de qualquer mensagem no servidor de email.

A anatomia de uma linha de log típica é:

Jan 15 14:35:23 servidor postfix/smtp[1237]: A1B2C3D4E5F6: to=<[email protected]>, relay=..., delay=0.8, status=sent (250 2.0.0 OK)
  • Jan 15 14:35:23 — data e hora do evento
  • servidor — hostname do servidor
  • postfix/smtp[1237] — componente do Postfix responsável (smtp, smtpd, qmgr, cleanup, pickup)
  • A1B2C3D4E5F6 — Queue ID, identificador único da mensagem na fila
  • to= — endereço do destinatário
  • relay= — servidor de destino utilizado para entrega
  • delay= — tempo total de processamento em segundos
  • status= — resultado final da tentativa de entrega

Os status de entrega mais importantes são:

  • status=sent — mensagem entregue com sucesso ao servidor de destino
  • status=bounced — rejeição permanente (erro 5xx); o email não será reenviado
  • status=deferred — falha temporária (erro 4xx); o Postfix tentará reenviar automaticamente
  • status=expired — mensagem ficou na fila por tempo demais e foi descartada

Os componentes do Postfix que aparecem nos logs têm funções distintas:

  • postfix/smtpd — recebe conexões SMTP de entrada
  • postfix/smtp — envia mensagens para servidores externos
  • postfix/qmgr — gerencia a fila de mensagens
  • postfix/cleanup — processa e normaliza mensagens recebidas
  • postfix/pickup — coleta mensagens do diretório de spool local
  • postfix/bounce — gera notificações de falha de entrega

Como filtrar e rastrear mensagens específicas nos logs

Filtrar registros de email por endereço ou por Queue ID é a técnica mais poderosa para rastrear o ciclo de vida completo de uma mensagem no Postfix.

Para buscar todas as entradas relacionadas a um endereço de email específico:

grep '[email protected]' /var/log/mail.log

Para buscar apenas emails enviados para um destinatário:

grep 'to=<[email protected]>' /var/log/mail.log

Para buscar apenas emails originados de um remetente:

grep 'from=<[email protected]>' /var/log/mail.log

Para rastrear uma mensagem pelo Queue ID (substitua A1B2C3D4E5F6 pelo ID real):

grep 'A1B2C3D4E5F6' /var/log/mail.log

Isso mostrará todas as etapas de processamento daquela mensagem específica, do recebimento à entrega ou rejeição.

Para filtrar apenas mensagens com falha de entrega permanente:

grep 'status=bounced' /var/log/mail.log

Para filtrar mensagens adiadas (deferred) nas últimas 24 horas:

grep 'status=deferred' /var/log/mail.log | grep "$(date '+%b %e')"

Para contar quantas mensagens foram enviadas com sucesso hoje:

grep "$(date '+%b %e')" /var/log/mail.log | grep 'status=sent' | wc -l

Para buscar em logs rotacionados (arquivos comprimidos):

zgrep '[email protected]' /var/log/mail.log.*.gz

Se você está configurando um servidor de email do zero, consulte o guia Passo a passo para configurar servidor de e-mail no VPS Linux para entender a arquitetura completa antes de analisar os logs.

Como inspecionar e gerenciar a fila de emails do Postfix

A fila de mensagens do Postfix é onde ficam os emails aguardando entrega. Inspecioná-la é essencial quando os logs mostram mensagens com status=deferred ou quando usuários reclamam de emails não entregues.

Para listar todas as mensagens na fila:

mailq

Ou equivalentemente:

postqueue -p

O output mostrará algo como:

-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
A1B2C3D4E5F6      512 Wed Jan 15 14:30:00  [email protected]
(connect to destino.com[192.168.1.1]:25: Connection refused)
                                         [email protected]

-- 1 Kbytes in 1 Request.

Para ver o conteúdo completo de uma mensagem na fila pelo Queue ID:

postcat -q A1B2C3D4E5F6

Para forçar nova tentativa de entrega de todas as mensagens na fila imediatamente:

postqueue -f

Para remover uma mensagem específica da fila:

Atenção: o comando abaixo remove permanentemente a mensagem da fila. Não há como desfazer esta ação.

postsuper -d A1B2C3D4E5F6

Para remover todas as mensagens da fila de uma vez:

Atenção: este comando apaga todas as mensagens pendentes de entrega. Use apenas se tiver certeza absoluta.

postsuper -d ALL

Para mover mensagens da fila ativa para a fila de espera (hold):

postsuper -h ALL deferred

Análise avançada de logs com pflogsumm

O pflogsumm é uma ferramenta de análise de logs do Postfix que gera relatórios estatísticos detalhados, sendo especialmente útil para administradores que precisam de uma visão consolidada do tráfego de email.

Para instalar o pflogsumm no Ubuntu 22.04 ou Debian 12:

apt install pflogsumm -y

No Rocky Linux 9 ou AlmaLinux 9:

dnf install postfix-perl-scripts -y

Para gerar um relatório do dia atual:

pflogsumm /var/log/mail.log

Para gerar um relatório apenas das últimas 24 horas:

pflogsumm -d today /var/log/mail.log

Para gerar um relatório do dia anterior:

pflogsumm -d yesterday /var/log/mail.log

O relatório gerado inclui:

  • Total de mensagens recebidas, entregues, rejeitadas e com bounce
  • Top remetentes e destinatários por volume
  • Hosts com mais rejeições
  • Erros mais frequentes e suas contagens
  • Tempo médio de entrega

Para enviar o relatório diário por email automaticamente via cron:

0 6 * * * pflogsumm -d yesterday /var/log/mail.log | mail -s "Relatório Postfix $(date '+%d/%m/%Y')" [email protected]

Problemas comuns e como resolver

Sintoma: arquivo /var/log/mail.log não existe ou está vazio

Causa: O rsyslog não está instalado, não está em execução, ou não está configurado para capturar a facility mail. Isso é comum em instalações mínimas de servidor.
Solução: Verifique e reinicie o rsyslog com systemctl status rsyslog. Se não estiver instalado, execute apt install rsyslog -y no Ubuntu/Debian. Confirme que o arquivo /etc/rsyslog.d/50-default.conf contém a linha mail.* -/var/log/mail.log. Após ajustar, reinicie com systemctl restart rsyslog e envie um email de teste para verificar.

Sintoma: logs mostram "status=deferred" repetidamente para o mesmo destinatário

Causa: Falha temporária de conexão com o servidor de destino. Pode ser bloqueio de porta 25 pelo provedor de internet, problema de DNS reverso (PTR) não configurado, ou o servidor de destino está temporariamente indisponível.
Solução: Verifique se a porta 25 está acessível com telnet gmail-smtp-in.l.google.com 25. Confirme que o registro PTR do IP do servidor está configurado corretamente com dig -x SEU_IP_DO_SERVIDOR. Se a porta 25 estiver bloqueada pelo provedor, considere usar um relay SMTP como alternativa. Verifique também se o IP do servidor está em alguma blacklist.

Sintoma: logs mostram "NOQUEUE: reject" com código 554

Causa: O Postfix está rejeitando mensagens antes mesmo de aceitar na fila. Geralmente indica que o remetente está em uma lista de bloqueio (RBL), que o SPF falhou, ou que as restrições de smtpd_recipient_restrictions estão bloqueando a mensagem.
Solução: Analise a mensagem completa de rejeição no log para identificar a causa exata. Para rejeições por RBL, verifique se o IP do remetente está em blacklists com ferramentas como MXToolbox. Para falhas de SPF, revise os registros DNS do domínio remetente. Execute grep 'NOQUEUE' /var/log/mail.log | tail -20 para ver os padrões de rejeição mais recentes.

Sintoma: logs do Postfix não aparecem no journalctl

Causa: Em algumas configurações, o Postfix usa apenas o syslog tradicional e não envia logs diretamente ao journal do systemd. Isso é comum quando o rsyslog está configurado sem o módulo de encaminhamento para o journal.
Solução: Verifique se o serviço está ativo com systemctl is-active postfix. Para forçar o Postfix a usar o journal, adicione syslog_name = postfix no /etc/postfix/main.cf e reinicie com systemctl restart postfix. Alternativamente, use sempre tail -f /var/log/mail.log como método primário de monitoramento.

Sintoma: mensagens ficam presas na fila com "Connection timed out"

Causa: O servidor não consegue estabelecer conexão TCP na porta 25 com o servidor de destino. Isso pode ser causado por firewall bloqueando saída na porta 25, problema de roteamento de rede, ou o servidor de destino estar offline.
Solução: Teste a conectividade diretamente com nc -zv gmail-smtp-in.l.google.com 25. Verifique as regras de firewall com iptables -L OUTPUT -n ou nft list ruleset. Se o VPS for de um provedor que bloqueia a porta 25 por padrão, será necessário solicitar a liberação ou configurar um relay SMTP autenticado via porta 587.

Perguntas frequentes sobre logs do Postfix

Onde ficam os logs do Postfix no Linux?

No Ubuntu e Debian, os logs do Postfix ficam em /var/log/mail.log. No Rocky Linux 9 e AlmaLinux 9, o arquivo principal é /var/log/maillog. Em sistemas com systemd, você também pode consultar os logs via journalctl -u postfix. A localização exata depende da configuração do rsyslog no sistema, mas esses são os caminhos padrão para cada família de distribuições.

Como ver em tempo real os logs do Postfix?

Execute tail -f /var/log/mail.log no Ubuntu/Debian ou tail -f /var/log/maillog no Rocky Linux para acompanhar os logs em tempo real. Cada linha nova aparece conforme o Postfix processa mensagens, permitindo diagnóstico imediato de falhas de entrega. Você também pode usar journalctl -u postfix -f em qualquer distribuição com systemd para o mesmo efeito.

O que significa 'status=bounced' no log do Postfix?

O status=bounced indica que o email foi rejeitado permanentemente pelo servidor de destino, geralmente por endereço inexistente (erro 550) ou domínio inválido. O Postfix gera uma notificação de falha (NDR) para o remetente e remove a mensagem da fila. Diferente do status=deferred, o bounce é definitivo e o Postfix não tentará reenviar a mensagem automaticamente.

Como filtrar logs do Postfix por endereço de email?

Use grep com o endereço desejado: grep '[email protected]' /var/log/mail.log. Para rastrear uma mensagem específica pelo ID, primeiro localize o Queue ID com grep e depois filtre por ele: grep 'QUEUEID' /var/log/mail.log para ver todo o ciclo de vida da mensagem. Combine com zgrep para pesquisar também em logs rotacionados e comprimidos.

Como verificar a fila de emails parados no Postfix?

Execute mailq ou postqueue -p para listar todas as mensagens na fila de entrega. Para ver detalhes de uma mensagem específica, use postcat -q QUEUEID. Para forçar nova tentativa de entrega de todas as mensagens na fila, execute postqueue -f. Se precisar remover uma mensagem específica da fila, use postsuper -d QUEUEID.

Conclusão

  • Localize o arquivo correto para sua distro: /var/log/mail.log no Ubuntu/Debian e /var/log/maillog no Rocky Linux 9 — use journalctl -u postfix como alternativa universal em sistemas com systemd
  • Domine o rastreamento por Queue ID: todo problema de entrega pode ser diagnosticado filtrando o log pelo identificador único da mensagem com grep 'QUEUEID' /var/log/mail.log e interpretando os status sent, bounced e deferred
  • Automatize a análise com pflogsumm: configure um relatório diário via cron para monitorar proativamente o volume de bounces, rejeições e mensagens adiadas antes que problemas afetem os usuários

Leia também

Precisa de ajuda com seu servidor de email?

Configurar e manter um servidor Postfix em produção exige atenção constante aos logs, configuração correta de DNS (SPF, DKIM, DMARC) e um ambiente de VPS estável com IP limpo. A AviraHost oferece servidores VPS Linux com suporte técnico especializado para quem precisa de infraestrutura confiável para hospedar serviços de email.

Conheça os planos de VPS da AviraHost

  • 0 Os usuários acharam isso útil
  • Postfix, logs, email, Linux, AviraHost, diagnóstico, servidor-email
Esta resposta foi útil?

Artigos Relacionados

Guia Completo para Configurar E-mails Profissionais no cPanel

Guia Completo para Configurar E-mails Profissionais no cPanel Ter um e-mail profissional é...

Como Configurar DNS Personalizado para Seu Domínio na AviraHost

Como Configurar DNS Personalizado para Seu Domínio na AviraHost Ter um DNS personalizado é...

Como gerenciar um domínio.

Adicione um domínio a sua conta, utilizando nosso painel de gerenciar domínios, Você pode...

Solucionar problemas de resolução de nomes DNS em VPS Linux e servidor dedicado

Introdução Falhas na resolução de nomes DNS podem causar lentidão, indisponibilidade de sites e...

Checklist para Configurar e Testar Limite de E-mails Enviados por Hora no VPS Linux e Servidor Dedicado

Introdução Controlar o volume de e-mails enviados por hora é fundamental para evitar bloqueios...