Ausführen, wenn der Dienst mit Monitor in Ordnung ist

Ausführen, wenn der Dienst mit Monitor in Ordnung ist

Ich muss ein Shell-Skript ausführen, wenn ein Dienst mit Monit einverstanden ist, um eine Verbindung zu meinem anderen Überwachungssystem (Nagios) herzustellen.

Im Grunde genommen muss ich erreichen, dass Monit eine Warnung sendet, wenn ein Dienst neu gestartet wurde, und eine weitere Warnung, wenn der Dienst in Ordnung ist.

Ich habe Folgendes ohne Erfolg versucht:

if 1 restarts within 1 cycles then exec "<send WARNING alert here>"
if 0 restarts within 5 cycles then exec "<send OK alert here>"

Oben wird über „Fehler: Null- oder negative Werte sind in einer Aktionsratenanweisung ''OK'' nicht zulässig“ geklagt.

if 1 restarts within 1 cycles then exec "<send WARNING alert here>"
else if succeeded for 5 cycles then exec "<send OK alert here>"

Oben wird über das "else" gemeckert... Ich glaube, "If X Restarts" unterstützt kein "else"

Irgendwelche Vorschläge, um dies zu erreichen?

Antwort1

Da Sie sagen, dass Monit in NAGIOS einspeist, warum lässt man NAGIOS dann nicht die schwere Arbeit erledigen (also Entscheidungen treffen und Benachrichtigungen senden)? Wenn Monit die Neustarts überwacht, kann es send_nscaNAGIOS benachrichtigen, dass ein Neustart stattgefunden hat.

NAGIOS wiederum kann dies in einem passiven Dienst empfangen, der dafür ausgelegt ist, bei einem einzelnen Alarm eine Benachrichtigung auszulösen, der aber auch mit einem Aktualitätstest definiert ist, sodass es, wenn es für einen bestimmten Zeitraum (hier 60 Min.) nichts hört, ein Skript aufruft, das „0 OK“ zurückgibt, und so für die Dauer dieser Zeitspanne nach einer Neustartbenachrichtigung „OK“ meldet.

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
        }

Und

define command{
        command_name    no-restarts-ok
        command_line    $USER1$/check_dummy 0 OK
}

verwandte Informationen