Monitoring
當服務正常時執行 monit
如果服務可以通過 monit 執行,我需要執行 shell 腳本,以連結到我的其他監控系統 (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 來完成繁重的工作(即決定並發送通知)?如果 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 }