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