监控目标与总体架构
- 面向 Postfix/Sendmail 等邮件服务,建议从四个层面建立监控:
- 系统资源:CPU、内存、磁盘 I/O、网络 的利用率与饱和度。
- 邮件业务:队列长度、SMTP/POP3/IMAP 连通性与响应时延。
- 日志:集中采集 /var/log/maillog,做关键字与趋势分析。
- 告警:阈值/异常事件通过 邮件、企业微信、钉钉、Slack 等渠道推送,并保留历史与可视化。
快速上手 命令行与内置工具
- 资源与连接
- 实时资源:top/htop(CPU/内存)、vmstat 1(系统整体)、iostat -x 1(磁盘 I/O)、free -m(内存)、ss -s/ netstat -anpt | grep :25(连接与端口)。
- 邮件队列
- Postfix:mailq 或 postqueue -p 查看待投递队列;配合 postqueue -f 在可控场景下尝试刷新队列(注意可能放大外发压力)。
- 服务与连通性
- 服务状态:systemctl status postfix;必要时用 journalctl -u postfix -f 跟踪最新日志。
- 端口与链路:ss -lntp | grep :25 检查监听;telnet mx.example.com 25 或 openssl s_client -connect mx.example.com:25 测试 SMTP;外部连通可用 mtr/traceroute。
- 日志定位
- 重点文件:/var/log/maillog;检索关键字如 error、warning、fail、deferred、reject、timeout 等,用于发现投递延迟、认证失败、黑名单/灰名单等问题。
企业级监控方案 Prometheus Grafana Zabbix
- Prometheus + Grafana
- 采集:Node Exporter 暴露系统指标;Postfix 可通过 postfix_exporter 或解析 maillog 的 mtail/Loki 获取队列与业务指标。
- 可视化:Grafana 建立 队列长度、入/出队速率、SMTP 响应时延、CPU/内存/磁盘 等面板。
- 告警:Alertmanager 配置阈值与抑制规则,支持 邮件、Webhook 等通知。
- Zabbix/Nagios
- 开箱即用地监控 SMTP/POP3/IMAP 可用性与响应时间、端口存活、队列长度阈值、系统资源等;提供 Web 界面、告警路由、历史趋势。
- 可扩展插件/脚本实现自定义检查(如队列激增、延迟异常)。
告警与日志可视化
- 告警通道
- 轻量方式:使用 mailx/sendmail 发送告警邮件,需先在 /etc/mail.rc 配置发信账号与 SMTP/SSL 证书(如 QQ 邮箱需开启 SMTP 服务并生成授权码)。
- 生产建议:使用 Alertmanager、Zabbix 告警媒介 或企业消息网关,避免单点依赖本机 MTA。
- 日志集中与可视化
- ELK(Elasticsearch/Logstash/Kibana) 或 Graylog 收集与索引 maillog,构建仪表盘与告警规则,便于追踪 投递链路、退信原因、灰名单命中 等。
关键指标与阈值示例
| 指标 |
采集方式 |
建议阈值 |
处置要点 |
| 邮件队列长度(Postfix active/deferred) |
mailq/postqueue、postfix_exporter |
> 100(按业务调优) |
检查收件域 DNS/MX、目标服务器 4xx/5xx、黑名单/灰名单、带宽与磁盘 |
| SMTP 响应时延 |
Blackbox Exporter/telnet 脚本 |
> 2 s(内网)、> 5 s(公网) |
链路质量、MTA 并发/限速、TLS 握手开销 |
| CPU 使用率 |
Node Exporter |
> 80% 持续 5 分钟 |
定位高占用进程,优化投递并发/过滤规则 |
| 内存使用率 |
Node Exporter |
> 90% |
检查 deferred 队列膨胀、日志/队列落盘、缓存压力 |
| 磁盘使用率与 IOWAIT |
Node Exporter、iostat |
使用率 > 85% 或 %util > 80% |
清理日志/队列、扩容磁盘、优化 I/O 调度与挂载选项 |
| 连接数/端口可用性 |
ss/netstat、Zabbix/Nagios |
连接突增或端口 25/465/587 不可用 |
检查 DoS/暴力认证、并发限制、防火墙与云安全组策略 |
| 认证失败率 |
maillog/Loki |
短时间内激增 |
检查弱口令/暴力破解、SASL/TLS 配置、日志审计与封禁策略 |
| 以上阈值需结合业务规模与历史基线微调,避免误报/漏报。 |
|
|
|