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(如郵件發送趨勢、錯誤分布)。