[BACK]Return to alert CVS log [TXT][DIR] Up to [local] / nagios / alert

File: [local] / nagios / alert / alert (download)

Revision 1.1, Tue Feb 16 16:48:01 2010 UTC (14 years, 3 months ago) by andrew
Branch: MAIN

initial import of alert

#!/bin/sh
# $AFresh1: alert,v 1.1 2010/02/16 16:48:01 andrew Exp $
local _type=$1
local _method=$2
local _contact=$3

if [ X"" == X"$_type" -o $"" == X"$_method" -o X"" == X"$_contact" ]; then
	echo "Usage: $0: <type> <method> <contact>"
	echo "       type    is HOST or SERVICE"
	echo "       method  is mail, qpage or jabber"
	echo "       contact is the identifier to send to"
	exit 2
fi



### HOST Descriptions ###

local _short_host="$NAGIOS_HOSTSTATE: $NAGIOS_HOSTNAME"
local _long_host="Date/Time: $NAGIOS_LONGDATETIME
Notification Type: $NAGIOS_NOTIFICATIONTYPE

Host: $NAGIOS_HOSTALIAS ($NAGIOS_HOSTADDRESS)
State: $NAGIOS_HOSTSTATE (for $NAGIOS_HOSTDURATION)

https://stats.redrivernet.com/CGi-bin/nagios/extinfo.cgi?type=1&host=$NAGIOS_HOSTNAME
"

### SERVICE Descriptions ###

local _short_svc="$NAGIOS_SERVICESTATE: $NAGIOS_HOSTNAME $NAGIOS_SERVICEDESC ($NAGIOS_SERVICEOUTPUT)"
local _long_svc="Date/Time: $NAGIOS_LONGDATETIME
Notification Type: $NAGIOS_NOTIFICATIONTYPE

Service: $NAGIOS_SERVICEDESC
Host: $NAGIOS_HOSTALIAS ($NAGIOS_HOSTADDRESS)
State: $NAGIOS_SERVICESTATE (for $NAGIOS_SERVICEDURATION)

https://stats.redrivernet.com/cgi-bin/nagios/extinfo.cgi?type=2&host=$NAGIOS_HOSTNAME&service=`echo $NAGIOS_SERVICEDESC | sed -e 's/ /+/g'`
"

### Actions ###

local _additional_vars=NOTIFICATIONCOMMENT
local _short
local _long
case $_type in
	HOST)
		_short=$_short_host
		_long=$_long_host
		_additional_vars="$_additional_vars HOSTOUTPUT HOSTACKCOMMENT"
		;;
	SERVICE)
		_short=$_short_svc
		_long=$_long_svc
		_additional_vars="$_additional_vars SERVICEOUTPUT SERVICEACKCOMMENT"
		;;
	*)
		echo "Unknown type $_type"
		exit 3
		;;
esac

local _add
local _a
for _a in $_additional_vars; do
    local _val
	eval _val=\${NAGIOS_${_a}}
	if [ X"" != X"$_val" ]; then
		_add="$_add\n$_val"
	fi
done

if [ X"" != X"$_add" ]; then
	_long="$_long\nAdditional Info: $_add"
fi


case $_method in
	mail)
		echo "$_long" | /usr/bin/mail -s "$_short" $_contact
		;;
	qpage)
		echo "$_short" | /usr/local/bin/page_somehow $_contact
		;;
	jabber)
		echo "$_long" | /usr/local/libexec/nagios/eventhandlers/alert_jabber $_contact
		;;
	*)
		echo "Unknown method $_method"
		exit 3
		;;
esac