我正在寻找一种让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 operations@example.com with reminder 5
使用该配置,将重新启动apache,并且该过程将消失.而不是发生这种情况,我想留下来,直到有人可以手动干预.
对于那些对原因感到好奇的人:
我们的生产环境使用monit来控制应用程序.我们的非生产环境没有.这导致了一个问题,因为我们的开发人员更改了特定应用程序的start方法.它在生产之前就已经完成了我们的非生产环境,并且monit最终降低了应用程序,因为它没有在预生产中被捕获.
我想对非生产实施监控,因此我们可以捕获这样的故障,但由于它不是关键任务,我们不需要自动重启服务.
解决方法
模式被动:“在被动模式下,Monit将被动监控服务并发出警报,但不会尝试解决问题.”
http://mmonit.com/monit/documentation/monit.html#service_monitoring_mode