Monitor your Eicon Diva Server with Nagios
Monitor your Eicon Diva Server with Nagios for HylaFAX.If you have an advanced ISDN card like an Eicon Diva Server PRI card, you will probably be aware it has a web interface that can, amongst many other things, indicate the status of the card and the line. Here is a Nagios plugin script that will read this data and feed it back into Nagios. You will need wget installed.
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
REVISION=`echo '$Revision: 1.1 $' | sed -e 's/[^0-9.]//g'`
COOKIESFILE="/usr/lib/nagios/wgetcookies"
LINEMONFILE="/tmp/nagiosdivas.$$"
DIVAHOST="localhost"
DIVAPORT=10005
DIVAPASSWD="letmein"
. $PROGPATH/utils.sh
print_usage() {
echo "Usage: $PROGNAME"
}
print_help() {
print_revision $PROGNAME $REVISION
echo ""
print_usage
echo ""
echo "This plugin checks hardware status of an Eicon DIVAS PRI card."
echo ""
support
exit 0
}
case "$1" in
--help)
print_help
exit 0
;;
-h)
print_help
exit 0
;;
--version)
print_revision $PROGNAME $REVISION
exit 0
;;
-V)
print_revision $PROGNAME $REVISION
exit 0
;;
*)
cd /tmp
# Log in
wget -q --save-cookies $COOKIESFILE \
--timeout=7 \
--load-cookies $COOKIESFILE \
--cookies=on \
--delete-after \
http://$DIVAHOST:$DIVAPORT/login?data=$DIVAPASSWD
# Now grab the line monitor stuff
wget -q --save-cookies $COOKIESFILE \
--timeout=7 \
--load-cookies $COOKIESFILE \
--cookies=on \
-O $LINEMONFILE \
http://$DIVAHOST:$DIVAPORT/adapter_line_monitor1.cgi
WGETSTATUS=$?
# Figure out if we have any alarms
for I in red blue yellow ; do
export ALARMVAL=`cat $LINEMONFILE | grep "var $I" | awk '{ print $4 }' | sed -e
's/;//g'`
export ALARM$I=$ALARMVAL
export ALARMSTAT=`expr $ALARMSTAT + $ALARMVAL`
done
CARDNAME=`cat $LINEMONFILE | grep "var adapter_name" | sed -e 's/^.*=\"//g' -e 's/\";
//g'`
# No more data needed, remove our temporary file
rm $LINEMONFILE
if test "$1" = "-v" -o "$1" = "--verbose"; then
echo "YELLOW: ${ALARMyellow}"
echo "RED: ${ALARMred}"
echo "BLUE: ${ALARMblue}"
fi
if test ${WGETSTATUS} -eq 1; then
echo "Unable to get status from http://${DIVAHOST}:${DIVAPORT}/ - check
DIVAHOST,PORT and PASSWD settings in $0?"
exit -1
fi
if test ${ALARMSTAT} -eq 0; then
echo "DIVAS OK - $CARDNAME"
exit 0
else
echo "DIVAS CRITICAL - Alarm detected (RED: $ALARMred. BLUE: $ALARMblue. YELLOW:
$ALARMyellow)"
exit 2
fi
;;
esac