Я ищу способ, чтобы 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 для управления приложениями. В нашей непроизводственной среде этого не происходит. Это привело к проблеме, потому что наши разработчики изменили метод запуска для конкретного приложения. Он прошел через все наши непроизводственные среды, прежде чем он попал в производство, и мониторинг закончился тем, что остановил приложение, потому что оно не было поймано на этапе подготовки к производству.
Я хочу, чтобы в непроизводственной среде был установлен мониторинг, чтобы мы могли выявлять подобные сбои, но, поскольку это не критично, нам не нужно автоматически перезапускать службы.
mode passive
: «В пассивном режиме Monit будет пассивно отслеживать службу и вызывать предупреждения, но не будет пытаться решить проблему».
http://mmonit.com/monit/documentation/monit.html#service_monitoring_mode