我正在寻找一种方法,让 monit 仅在特定进程发生故障时发出警报。例如:
check process apache
with pidfile /var/run/httpd.pid
group www
start program = "/usr/sbin/apachectl start"
stop program = "/usr/sbin/apachectl stop"
alert [email protected] with reminder 5
有了该配置,apache 将重新启动,进程将消失。我不想发生这种情况,而是希望保持关闭状态,直到有人可以手动干预。
对于那些好奇为什么的人来说:
我们的生产环境使用 monit 来控制应用程序。我们的非生产环境则不使用。这导致了一个问题,因为我们的开发人员更改了某个特定应用程序的启动方法。它在进入生产环境之前一直通过我们的非生产环境,而 monit 最终关闭了该应用程序,因为它在预生产中没有被捕获。
我希望在非生产环境中安装 monit,这样我们就可以捕获此类故障,但由于它不是关键任务,因此我们不需要自动重启服务。
答案1
mode passive
:“在被动模式下,Monit 将被动监控服务并发出警报,但不会尝试解决问题。”
http://mmonit.com/monit/documentation/monit.html#service_monitoring_mode