monit로 서비스가 정상일 때 실행

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''에 0 또는 음수 값이 허용되지 않습니다"에 대해 불평합니다.

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
}

관련 정보