Article Figure 1 Figure 2 Listing 1 Listing 2
Listing 3 Listing 4 Listing 5 Listing 6 dec2005.tar

Listing 6 This script implements epager acknowledgments. With this in place, techs can reply to pages from Nagios to acknowledge service alerts.

#!/bin/sh

#a script to parse nagios acknowledgements from epagers. 

CMD='/var/nagios/rw/nagios.cmd'
TMP='/tmp'
TFILE=`/bin/tempfile -d ${TMP}`

while read i
do
    echo $i >> ${TFILE}
done

if egrep -i '^Return-Path: <>' ${TFILE} || egrep -i \
  'from:.*MAILER.*DAEMON' ${TFILE}
then
    echo "Is a bounce"
    exit 0
fi

MESSAGE=`egrep -i '^ack:' ${TFILE} | cut -d: -f2`
SERVICE=`egrep 'Service: ' ${TFILE} | cut -d: -f2| sed -e 's/^ //'`
HOST=`egrep 'Host: ' ${TFILE} | cut -d: -f2| sed -e 's/^ //'`
FROM=`egrep '^From: ' ${TFILE} | cut -d: -f2| sed -e 's/^ //'`
USER=`egrep 'User:' ${TFILE} | cut -d: -f2| sed -e 's/^ //'`
DATE=`date '+%s'`


if [ -z "$HOST" ]
then
    echo "does not appear to be an ack message"
    exit 0
fi

if [ -z "$MESSAGE" ]
then
    MESSAGE='Acknowledged via epager, no details given'
fi

#2;1;0-- 2= enable/disable sticky ack;  1= send notification ; \
  0=persistant comment
#[1089382177] ACKNOWLEDGE_SVC_PROBLEM;server1;SSH;2;1;0;Dave \
  Josephsen;heres my text

echo "[${DATE}] ACKNOWLEDGE_SVC_PROBLEM;${HOST};${SERVICE}; \
2;1;0;${USER};${MESSAGE}" >> $CMD echo "[${DATE}] ADD_SVC_COMMENT;${HOST};${SERVICE};1;${USER}; \ ACKNOWLEDGEMENT: ${MESSAGE}" >> $CMD rm ${TFILE}