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