Ubuntu邮件服务器日志查看与分析
一 日志位置与基础查看
tail -f /var/log/mail.loggrep -i "error\|reject" /var/log/mail.loggrep -C 5 "reject" /var/log/mail.logless /var/log/mail.log(在 less 中按 / 搜索,如 /reject)grep "ABC123" /var/log/mail.logpostqueue -p(查看队列)、postqueue -f(尝试重投)、mailq(同义)top/htop、ss -lntp | grep :25二 按邮件服务解析日志
NOQUEUE: reject: RCPT from unknown[1.2.3.4]: 554 5.7.1 <u@x>: Recipient address rejected: Access deniedstatus=deferred (connect to remote.com[2.3.4.5]:25: Connection timed out)status=bounced (host remote.com said: 550 5.1.1 <bad@x>: Recipient address does not exist)三 高效分析与可视化
grep "$(date -d '1 hour ago' '+%b %d %H')" /var/log/mail.log | grep -i reject | wc -lawk '/status=/ {print $6, $NF}' /var/log/mail.log | sort | uniq -cgrep "ABC123" /var/log/mail.log | less四 常见故障定位速查表
| 症状 | 关键日志关键词 | 快速检查 | 处理建议 |
|---|---|---|---|
| 外发被拒 | NOQUEUE reject、554 | 查来源 IP、收件域策略 | 核对 SPF/DKIM/DMARC,检查策略/黑名单配置 |
| 延迟投递 | status=deferred、Connection timed out | 目标主机连通性、DNS | 测试 telnet mx.example.com 25,排查网络与 DNS |
| 收件人不存在 | status=bounced、550 5.1.1 | 目标域解析与邮箱有效性 | 确认收件人地址,必要时与对方管理员核对 |
| 认证失败 | auth failed、SASL | 查看 /var/log/auth.log | 核对 SASL 机制、密码、允许网段 |
| 队列堆积 | postqueue -p 输出长 |
查看 deferred 原因 | 解决网络/DNS 后 postqueue -f 重试,必要时限流/分批 |
| 磁盘写满 | 无法写入日志/队列 | df -h、du -sh /var/log |
清理旧日志、扩容磁盘、调整 logrotate 策略 |
五 Zimbra场景补充
tail -f /var/log/zimbra/mail.loggrep "error" /var/log/zimbra/mail.logsudo logwatch --report(需安装 logwatch)