我正在使用 monit 免费版来监控服务器状态,但警报仅在完成某些触发操作时才有效。但是,我想发送 monit 显示的服务器所有详细信息的每日警报。
答案1
你想干什么?想“举报”吗?
Monit
无法做到这一点。正如您所说,Monit
当触发服务检查时会发送警报。这是设计使然。
我建议设置一个每日 cron 作业来运行Bash
您自己的脚本。
您的脚本可以解析Monit
日志文件,检索给定日期的事件,组织信息以便于用户更方便地阅读并发送报告。
但是,如果你不想使用Cron
但仍使用Monit
,你可以使用服务轮询时间来自 的功能Monit
。
这里的想法是每天触发一次虚假的服务检查,它也会运行Bash
你自己的脚本,执行与上面 cron 作业描述的相同的操作。
伪造的服务定义可能如下所示:
check process fake with pidfile /var/run/fake.pid
start program = "/root/report.sh"
stop program = "/root/report.sh"
every "00 23 * * 0-6"
这将于每天晚上 11 点触发。
但在我看来,这个解决方案并不是最合适的,因为:
- 你的 Monit 日志文件中会出现“错误”警报
Monit
如果您设置的守护进程轮询间隔小于一分钟(例如 30 秒),则可能会触发多次。