Exec, когда обслуживание в порядке с монитором

Exec, когда обслуживание в порядке с монитором

Мне нужно запустить скрипт оболочки, если со службой все в порядке с monit, чтобы подключиться к моей другой системе мониторинга (nagios).

По сути, мне нужно заставить monit отправлять оповещение при перезапуске службы и еще одно оповещение, когда служба работает нормально.

Я попробовал следующее, но безуспешно:

if 1 restarts within 1 cycles then exec "<send WARNING alert here>"
if 0 restarts within 5 cycles then exec "<send OK alert here>"

Вышеуказанная жалоба на «Ошибка: нулевые или отрицательные значения не допускаются в операторе скорости действия ''OK''»

if 1 restarts within 1 cycles then exec "<send WARNING alert here>"
else if succeeded for 5 cycles then exec "<send OK alert here>"

Вышеизложенное жалуется на «else»... Я считаю, что «If X Restarts» не поддерживает «else»

Есть ли какие-нибудь предложения по достижению этой цели?

решение1

Поскольку вы говорите, что monit подает данные в NAGIOS, почему бы не использовать NAGIOS для выполнения тяжелой работы (т. е. принятия решений об уведомлениях и их отправки)? Если monit отслеживает перезапуски, он может использовать его send_nscaдля уведомления NAGIOS о том, что перезапуск произошел.

NAGIOS, в свою очередь, может получить это в пассивную службу, которая разработана для уведомления об одном оповещении, но также определена с помощью теста на актуальность, так что если она ничего не слышит в течение определенного периода (в данном случае 60 минут), она вызывает скрипт, который возвращает «0 OK», и, таким образом, уведомит «OK» в течение этого количества времени после уведомления о перезапуске.

define service{
        use                     <standard template>
        host_name               foo
        service_description     bar        
        active_checks_enabled   0
        passive_checks_enabled  1
        check_command           no-restarts-ok
        check_freshness         1
        max_check_attempts      1
        normal_check_interval   60
        }

и

define command{
        command_name    no-restarts-ok
        command_line    $USER1$/check_dummy 0 OK
}

Связанный контент