top
(实时查看CPU、内存占用,筛选邮件进程如postfix
、dovecot
)、htop
(增强版top
,支持颜色和快捷键)、vmstat
(查看虚拟内存、进程、CPU活动)、iostat
(监控磁盘I/O性能)、netstat
/ss
(查看网络连接、端口状态,如SMTP的25端口、IMAP的993端口)。mailq
(通用命令,显示所有待处理邮件)或postqueue -p
(Postfix专用,查看详细队列信息,包括邮件ID、发件人、收件人、状态)检查邮件积压情况,及时发现队列堵塞问题。编写Shell脚本定期检查关键指标(如CPU使用率、邮件队列长度),超过阈值时发送报警邮件。例如,检查CPU使用率的脚本:
#!/bin/bash THRESHOLD=80 EMAILS="admin@example.com" CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S') CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}') if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) )); then echo "$CURRENT_TIME - CPU使用率超过阈值($THRESHOLD%),当前使用率: $CPU_USAGE%" | mail -s "CPU使用率报警" $EMAILS fi
将脚本添加到cron
(如每5分钟运行一次):*/5 * * * * /path/to/script.sh
。
Ubuntu邮件服务器的主要日志文件为/var/log/mail.log
(Debian/Ubuntu默认使用rsyslog
记录邮件日志),部分旧版本或配置可能使用/var/log/maillog
。
tail -f /var/log/mail.log
(实时输出最新日志,便于监控实时事件)。grep 'error' /var/log/mail.log
(查找错误信息)、grep 'status=bounced' /var/log/mail.log
(查找邮件反弹记录)、grep '192.168.1.1' /var/log/mail.log
(查找特定IP的访问日志)。grep -c 'SMTP' /var/log/mail.log
(统计SMTP发送邮件数量)、grep -c 'IMAP' /var/log/mail.log
(统计IMAP登录次数)。grep 'Oct 1' /var/log/mail.log
(查找2025年10月1日的日志)、awk '/Oct 1/,/Oct 2/' /var/log/mail.log
(查找10月1日0点到2日0点的日志)。/etc/logrotate.d/mail
示例:/var/log/mail.log { daily missingok rotate 7 compress notifempty create 0640 root adm }
表示每天轮转日志,保留7天,压缩旧日志。logwatch --service mail
查看报告。mail.log
数据,Elasticsearch存储和索引,Kibana创建可视化 dashboard(如邮件发送趋势、错误分布)。