Ubuntu Spool监控与报警实现指南
Spool目录(通常为/var/spool)用于存储打印队列、邮件临时文件等服务数据,监控其变化可及时发现异常。以下是常用监控手段:
inotifywait是Linux内核inotify接口的命令行工具,可实时监控文件系统事件(如创建、删除、修改)。
sudo apt-get update && sudo apt-get install inotify-toolsinotifywait -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目录的大小或文件数量,超过阈值时触发告警(如短信、电话通知)。