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