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