Назад | Перейти на главную страницу

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

Мне нужно запустить сценарий оболочки, если служба работает с 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"

Есть предложения по достижению этого?

Поскольку вы говорите, что monit используется в NAGIOS, почему бы не использовать NAGIOS для выполнения тяжелой работы (например, принятия решения и отправки уведомлений)? Если монитор отслеживает перезагрузки, он может использовать 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
}