#!/bin/sh
#
-# Event handler script for restarting a service on the local machine
+# Event handler script for restarting a service via NRPE
#
# Note: This script will only restart the service if the service is
# retried 3 times (in a "soft" state) or if the service somehow
# $1 $SERVICESTATE$
# $2 $SERVICESTATETYPE$
# $3 $SERVICEATTEMPT$
-# $4 init script name
+# $4 $HOSTADDRESS$
+# $5 state to match against ("WARNING" or "CRITICAL")
+# $6 NRPE service name to use
state="$1"
type="$2"
attempt="$3"
-service="$4"
+host="$4"
+starton="$5"
+service="$6"
# What state is the service in?
case "${state}" in
- OK)
- # The service just came back up, so don't do anything...
- ;;
- WARNING)
- # We don't really care about warning states, since the service is probably still running...
- ;;
- UNKNOWN)
- # We don't know what might be causing an unknown error, so don't do anything...
- ;;
- CRITICAL)
+ "${starton}")
# Aha! The service appears to have a problem - perhaps we should restart it
# Is this a "soft" or a "hard" state?
case "${type}" in
# result in a "soft" recovery. If that happens no one gets notified because we
# fixed the problem!
3)
- # Call the init script to restart the HTTPD server
- sudo /etc/init.d/${service} restart
+ # Call the service restart script via NRPE
+ /usr/lib/nagios/plugins/check_nrpe -n -H "${host}" -c "${service}"
;;
esac
;;
# The service somehow managed to turn into a hard error without getting fixed.
# It should have been restarted by the code above, but for some reason it didn't.
- # Let's give it one last try, shall we?
+ # Let's give it one last try, shall we?
# Note: Contacts have already been notified of a problem with the service at this
# point (unless you disabled notifications for this service)
HARD)
- sudo /etc/init.d/${service} restart
+ /usr/lib/nagios/plugins/check_nrpe -n -H "${host}" -c "${service}"
;;
esac
;;