Zum Inhalt springen

Nagios/Event Handler

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Version vom 13. Mai 2014, 13:16 Uhr von Rkr (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Beispiel eine Nagios Event Handlers zum Löschen von Dateien auf dem zu überwachenden Rechner. == Normale Konfiguration == Definition des Event Handlers in d…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Beispiel eine Nagios Event Handlers zum Löschen von Dateien auf dem zu überwachenden Rechner.

Normale Konfiguration

Definition des Event Handlers in der normalen Nagios Konfiguration:

Service Check (per NRPE):

define service{
	use				service-workhours			; Name of service template to use
	host_name			myhost1
	contact_groups			admins
	service_description		DISK_ROOT
	check_command			check_nrpe_ssl!check_disk1
	event_handler 			remote_delete_files
	normal_check_interval	15
	}

Event Handler Kommando:

define command{
	command_name	remote_delete_files
	command_line	/data/nagios/plugins/eventhandler/remote_delete_files $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$
	}

Konfiguration bei Check_MK

########################################
# Event handlers, similar to usage of flap_detection_enabled
# see http://www.monitoring-portal.org/wbb/index.php?page=Thread&threadID=23590,
#     http://www.mail-archive.com/checkmk-en@lists.mathias-kettner.de/msg06807.html
########################################
# enable event handler on all MyHosts for all fs_ service checks (also fs_/data etc.)
extra_service_conf["event_handler_enabled"] = [
  ( "1", ["MyHosts"], ALL_HOSTS, ["fs_"] ),
]
# set event handler for root filesystems on hosts
extra_service_conf["event_handler"] = [
  ( "remote_delete_files", ["MyHosts"], ALL_HOSTS, ["fs_/$"]),
]

Event Handler Scripte

Event Handler Script:

#!/bin/sh
#
case "$1" in
OK)
        # The service just came back up, so don't do anything...
        ;;
WARNING)
        # We want to delete logs and traces even it is only a WARNING
        # Is this a "soft" or a "hard" state?
        case "$2" in

        # We're in a "hard" state

        HARD)
                echo -n "Deleting logs and traces on remote machine (1st hard warning state)..."
                # Call the remote deletion script
                /data/nagios/plugins/remote_delete_logs_and_traces.sh "$4"
                ;;
        esac
        ;;
UNKNOWN)
        # We don't know what might be causing an unknown error, so don't do anything...
        ;;
CRITICAL)
        # Is this a "soft" or a "hard" state?
        case "$2" in

        # We're in a "hard" state

        HARD)
                echo -n "Deleting logs and traces on remote machine (1st hard critical state)..."
                # Call the remote deletion script
                /data/nagios/plugins/remote_delete_logs_and_traces.sh "$4"
                ;;
        esac
        ;;
esac
exit 0

Löschscript (läuft auf Nagios Server mit entsprechender SSH Public Key Authentifizierung zum Host):

#!/bin/sh
sshcmd=/usr/bin/ssh
sshuser=myuser1

remotecmdlogs="/usr/local/bin/delete_log.sh"

$sshcmd $sshuser@"${1}" nohup $remotecmdlogs > /dev/null&
if [ "$?" -ne "0" ]; then
   echo "Sorry, something went wrong while deleting logs!"
   exit 1
fi

exit 0