Nagios/Event Handler
< Nagios
Zur Navigation springen
Zur Suche springen
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