Ubuntu Spool監控與報警實現指南
Spool目錄(通常為/var/spool
)用于存儲打印隊列、郵件臨時文件等服務數據,監控其變化可及時發現異常。以下是常用監控手段:
inotifywait
是Linux內核inotify接口的命令行工具,可實時監控文件系統事件(如創建、刪除、修改)。
sudo apt-get update && sudo apt-get install inotify-tools
inotifywait -m -r -e create,delete,modify /var/spool
-m
:持續監控(不退出);-r
:遞歸監控子目錄;-e
:指定監控事件類型(可擴展為create,delete,modify,move
等)。/var/spool/cups
目錄有新文件創建時,會顯示/var/spool/cups CREATE newfile.txt
。auditd
是Linux系統審計工具,可記錄詳細的文件訪問日志(包括用戶、進程、操作時間),適合安全審計場景。
sudo apt-get install auditd audispd-plugins
;/etc/audit/rules.d/audit.rules
,添加-w /var/spool -p wa -k spool_monitor
(-w
指定監控路徑,-p wa
監控寫入和屬性變更,-k
設置規則鍵名);sudo systemctl restart auditd
。ausearch -k spool_monitor
命令過濾出spool_monitor
相關的審計日志,包含事件詳情(如type=SYSCALL msg=audit(1719012345.123:456): arch=x86_64 syscall=openat success=yes exit=3 a0=7ffd12345678 a1=O_WRONLY|O_CREAT|O_TRUNC a2=0644 a3=0x0 a4=0x7ffd12345678 filename="/var/spool/cups/newfile.txt"
)。通過cron定時任務定期執行ls
或du
命令,將結果記錄到日志文件,適合長期歸檔監控。
crontab -e
;/var/spool
目錄列表):*/5 * * * * ls -l /var/spool >> /var/log/spool_monitor.log 2>&1
。du -sh /var/spool
監控目錄大小,或find /var/spool -type f -mtime +7
查找7天未修改的文件。sudo apt-get install glances
;sudo glances
,在“Files”模塊中查看/var/spool
目錄的大小、文件數量變化,可設置告警閾值(如目錄大小超過1GB時觸發告警)。node_exporter
采集文件系統指標(如df_inodes_free
、node_filesystem_avail_bytes
),在Grafana中配置儀表盤和告警規則(如df_inodes_free < 10%
時發送通知)。報警需結合監控工具,將異常事件轉化為通知(郵件、Slack、PagerDuty等)。以下是常見報警方式:
通過mailutils
或ssmtp
發送郵件,適用于簡單場景。
sudo apt-get install mailutils
;/etc/rsyslog.conf
,添加mail.spool.* /var/spool/mail/your_username
(將spool相關日志發送到用戶郵箱);auditd
記錄到spool_monitor
事件的嚴重級別為alert
時,使用logger
命令發送郵件:logger -p mail.alert "Spool directory /var/spool modified by user $(whoami)"
。auditd
可通過audispd
插件將告警發送到syslog或外部工具。
/etc/audit/rules.d/audit.rules
,添加-a always,exit -F arch=b64 -S openat -F path=/var/spool -F perm=wa -F success=1 -k spool_write_alert
(僅監控成功的寫入操作);ausearch -k spool_write_alert | aureport -f -i
,可提取事件詳情并轉發到郵件或監控系統。node_exporter
的filesystem
指標,設置告警規則(如node_filesystem_avail_bytes{mountpoint="/var/spool"} < 1073741824
,即可用空間小于1GB),通過Alertmanager發送郵件、Slack通知。check_disk
)監控/var/spool
目錄的大小或文件數量,超過閾值時觸發告警(如短信、電話通知)。