2015-08-19 2 views
0

Я контролирую процесс java-демона с помощью PID. Ниже приведен код.Monit false alerts

check process SemanticReplication with pidfile "/ngs/app/edwt/opsmonit /monit/scripts/process.pid" 
    start = "/ngs/app/edwt/scripts/javadaemon/start_daemon.ksh" 
    stop = "/ngs/app/edwt/scripts/javadaemon/stop_daemon.ksh" 

Много раз, несмотря на то, что процесс java daemon запущен и работает, я получаю ложное предупреждение, поскольку процесс не работает. В следующем контрольном цикле (через минуту) другой предупреждающий сигнал активируется, когда процесс запущен и работает.

Может кто-нибудь помочь, как нам избежать этих ложных предупреждений?

+0

Правильно ли путь pidfile? Его довольно странно с этими пустыми местами. Это весь код, который вы используете для мониторинга этого сервиса? –

ответ

0

Ваш контрольный оператор должен иметь monit check для существования файла pid (который выглядит странно с пробелами, кстати). Если его нет, он по умолчанию отправит предупреждение, а затем запустит директиву start.

я обойти это, имея check process ... matching заявление вроде так:

check process app-pass matching 'Passenger RubyApp: \/home\/app\/app-name\/public'

По существу, «соответствие» делает эквивалент ps aux | grep ..., который делает работу лучше, когда я не могу полагаться на файл Pid существующих, как с дочерним процессом.