监控 Ubuntu 上的邮件服务器,通常可以从 系统层、邮件服务层、日志、队列、安全与告警 几个方面来做。下面以最常见的 Postfix + Dovecot 为例说明,其他邮件系统(Exim、Sendmail)思路类似。
先确认你用的是哪种:
postconf mail_version # Postfix
dovecot --version # Dovecot
常见组合:
systemctl status postfix
systemctl status dovecot
建议用监控工具自动检测。
查看队列:
mailq
postqueue -p
队列异常(堆积)通常说明:
自动告警示例(队列超阈值):
if [ $(mailq | grep -c '^[') -gt 100 ]; then
echo "Mail queue too large" | mail -s "Postfix Alert" admin@example.com
fi
Postfix 日志:
/var/log/mail.log
/var/log/mail.err
常用查看:
tail -f /var/log/mail.log
grep "status=bounced" /var/log/mail.log
grep "warning" /var/log/mail.log
重点监控:
bounceddeferredrejectauthentication failure统计发信量:
grep "status=sent" /var/log/mail.log | wc -l
异常检测:
Dovecot 日志:
grep "Auth" /var/log/mail.log
关注:
示例:
grep "auth failed" /var/log/mail.log
邮件会占满磁盘:
df -h
df -i
邮件目录通常:
/var/mail
/var/spool/mail
/home/*/Maildir
安装:
apt install monit
示例监控 Postfix:
check process postfix with pidfile /var/spool/postfix/pid/master.pid
start program = "/usr/sbin/service postfix start"
stop program = "/usr/sbin/service postfix stop"
if failed port 25 protocol smtp then alert
可监控:
apt install logwatch
每天邮件发送报告。
systemctl 检测服务mailq 队列监控mail.log 错误监控如果你愿意,可以告诉我:
我可以直接给你一套可落地的监控脚本或配置。