Xymon Mailing List Archive search

OpenVPN Monitoring

list Oliver
Thu, 16 Aug 2012 14:14:38 +0200
Message-Id: <user-e5c2a657bcf2@xymon.invalid>

Dear All,

I have tried to find a way to Monitor my OpenVPN Servers. The hard thing was that OpenVPN is a service that is running via UDP by default. So here is the script I've come up with:

#!/bin/sh
BBHTAG=openvpn  # What we put in bb-hosts to trigger this test
COLUMN=$BBHTAG  # Name of the column, often same as tag in bb-hosts

OPENVPNPORT=1194

$BBHOME/bin/bbhostgrep $BBHTAG | while read L
do
    set $L       # To get one line of output from bbhostgrep

    HOSTIP="$1"
    MACHINEDOTS="$2"
    MACHINE=`echo $2 | $SED -e's/\./,/g'`

    COLOR=green
    MSG="$BBHTAG status for host $MACHINEDOTS"

    #... do the test, perhaps modify COLOR and MSG
    PROGCHECK=`which nc`
    if [ -z "$PROGCHECK" ]; then
         MSG="${MSG}

         `echo "Program \"nc\" not found."`
         "
    fi

    /bin/echo -ne "\x38\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00" | /bin/nc $MACHINEDOTS $OPENVPNPORT -u -w 1 | /usr/bin/hexdump -v -e '"\\""x" 1/1 "%02x" ""' | $GREP -q '\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x00\\x00\\x00\\x00'
    if [ "$?" != "0" ]; then
         COLOR=red
         MSG="${MSG}

         `echo "OpenVPN offline"`
         "
    else
         MSG="${MSG}

         `echo "OpenVPN online"`
         "
    fi

    $BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`

    ${MSG}
    "
done

exit 0

Could someone try this out whether it works?

Thanks in advance!