SECTOR NORD AG Tipp des Monats


[SNAG-View] Eventhandler

von Andreas Gerliz

Eventhandler sind anders als Checkcommands, Scripte die ausgeführt werden wenn sich der Zustand eines Services/Host ändert. Damit lassen sich z.B. Probleme reparieren bevor Sie alarmiert werden.

 

Anwendungsfälle:

  • Aufräumen von Verzeichnissen
  • Neustarten von Diensten
  • Restart von Servern
  • Logging
  • ...

SNAG-View triggert Eventhandler in folgenden Status Änderungen:

  • Bei "Soft" States
  • Nur beim ersten "Hard" State
  • Bei den "Recovery" eines Services

 

Beispiel: Neustart eines Windows Services

 

Anlegen eines Eventhandlers in SNAG-View

Einen Eventhandler legen Sie unter "Objektadmin → Eventhandler" an.

Als Bezeichnung: restart-windows-service

Befehlszeile:

$USER1$/eventhandlers/restart-windows-Service $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$ $ARG1$

 


 

 

Auf den SNAG-View wird unter "/var/lib/nagios/libexec/eventhandlers/" das Script "restart-windows-Service" angelegt

restart-windows-Service
#!/bin/sh
 
case "$1" in
OK)
    ;;
WARNING)
    ;;
UNKNOWN)
    ;;
CRITICAL)
    case "$2" in
    SOFT)
        case "$3" in
        3)
            echo -n "Restarting service (3rd soft critical state)..."
            /var/lib/nagios/libexec/check_nrpe -H $4 -c restartWinService -a $5
            ;;
            esac
        ;;
    HARD)
        echo -n "Restarting service..."
        /var/lib/nagios/libexec/check_nrpe -H $4 -c restartWinService -a $5
        ;;
    esac
    ;;
esac
exit 0

 

Wir führen nur Aktionen aus, wenn wir im Soft 3 State oder im Hard State sind. Alle anderen Aktionen lassen wir leer.

 

Auf der Windows Server brauchen wir ein Script, dass die gewünschte Aktion ausführt.

 

Wir legen das script "restartWinService.bat" im NSClient Verzeichnis unter "scripts" ab.

restartWinService.bat
@echo off
rem Restart Service
net stop %1
net start %1

 

In der "nsclient.ini" wird unter "[/settings/external scripts/scripts]" folgender Eintrag angelegt

restartWinService=\scripts\restartWinService.bat $ARG1$

 

Danach wird ein Serviceinstance mit den Eventhandler konfiguriert.