温馨提示×

怎样监控ubuntu邮件服务器

小樊
42
2026-09-02 00:34:46
栏目: 云计算

监控 Ubuntu 上的邮件服务器,通常可以从 系统层、邮件服务层、日志、队列、安全与告警 几个方面来做。下面以最常见的 Postfix + Dovecot 为例说明,其他邮件系统(Exim、Sendmail)思路类似。


一、确认邮件服务器组件

先确认你用的是哪种:

postconf mail_version      # Postfix
dovecot --version          # Dovecot

常见组合:

  • Postfix(发信 SMTP)
  • Dovecot(收信 IMAP/POP3)
  • SpamAssassin / Amavis(反垃圾)
  • OpenDKIM / SPF / DMARC

二、核心监控项

1. 服务运行状态

systemctl status postfix
systemctl status dovecot

建议用监控工具自动检测。


2. 邮件队列监控(非常重要)

查看队列:

mailq
postqueue -p

队列异常(堆积)通常说明:

  • 网络问题
  • 被对方拒收
  • 被当成垃圾邮件

自动告警示例(队列超阈值):

if [ $(mailq | grep -c '^[') -gt 100 ]; then
  echo "Mail queue too large" | mail -s "Postfix Alert" admin@example.com
fi

3. 日志监控(最关键)

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

重点监控:

  • bounced
  • deferred
  • reject
  • authentication failure

4. 发信量 & 异常行为

统计发信量:

grep "status=sent" /var/log/mail.log | wc -l

异常检测:

  • 单账号短时间大量发信(可能是被盗)
  • 非授权 IP 登录

5. 用户登录监控(Dovecot)

Dovecot 日志:

grep "Auth" /var/log/mail.log

关注:

  • 登录失败次数
  • 异常 IP
  • 暴力破解

示例:

grep "auth failed" /var/log/mail.log

6. 磁盘 & inode 监控

邮件会占满磁盘:

df -h
df -i

邮件目录通常:

/var/mail
/var/spool/mail
/home/*/Maildir

三、使用监控工具(推荐)

1. 基础:Monit(轻量)

安装:

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

2. 专业:Zabbix / Prometheus

可监控:

  • SMTP 端口存活
  • 队列长度
  • 发信成功率
  • 登录失败次数
  • 磁盘使用率

3. 日志分析:Logwatch / GoAccess

apt install logwatch

每天邮件发送报告。


四、安全与告警建议

  • 启用 fail2ban
  • 限制 SMTP 登录 IP
  • 启用 SPF / DKIM / DMARC
  • 定期检查是否被拉黑(MXToolbox)
  • 设置队列、错误日志自动告警

五、最小可用监控方案(推荐起步)

  1. systemctl 检测服务
  2. mailq 队列监控
  3. mail.log 错误监控
  4. 磁盘监控
  5. fail2ban

如果你愿意,可以告诉我:

  • 用的是 Postfix / Exim / Sendmail
  • 是否公网邮件服务器
  • 想要 命令行 / 图形化 / 自动告警

我可以直接给你一套可落地的监控脚本或配置。

0 踩