Nagios Plugin für myUTN Control Center

Ein ziemlich nützliches Gerät ist das myUTN-80, welches USB Geräte im Netzwerk zur Verfügung stellt. Wir nutzen mehrere dieser Geräte um USB-Lizenzdongles auf unseren virtuellen Maschinen zur Verfügung zu stellen.

Leider passiert es immer wieder, das in unregelmäßigen Abständen die Dongles nicht mehr erreichbar sind. Die Folge: Die Software lässt sich nicht mehr starten oder läuft nicht richtig.

Damit wir frühzeitig gewarnt sind, habe ich ein kleines Skript für Nagios geschrieben, welchen den Status ausliest und uns somit rechtzeitig warnt.

#!/bin/bash
###################### Created and written by Dennis Zyska ####################
#
#    copyright (c) 2015 Dennis Zyska
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation;
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
###############################################################################
#Version 1.00

PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
REVISION="1.0"
UTNPORT=$2
HOST=$1
STATE=$3
DESTIP=$4

print_usage() {
        echo "Usage: $PROGNAME   "
        echo ""
        echo "States available: "
        echo "0 - Available"
        echo "1 - Occupied | destIp Format: 000:000:000:000"
}

print_help() {
        print_usage
        echo ""
        echo "This plugin checks the UTN Status"
        exit 0
}

case "$1" in
        --help|-h)
                print_help
                exit 0
                ;;
        *)
                content=$(curl -s http://$HOST/index_en.html 2>&1)
                UTN=$(echo $content | sed ':a;N;$!ba;s/\n//g' | grep -oP "(?<=id=\"sub$UTNPORT\").*?(?=<\/tr>)" | grep -oP "(?<=).*?(?=<\/span>)" | sed 's/^ *//;s/ *$//')
                UTNstate=$(echo $UTN | awk '{print $1}')

                if [ "$STATE" == "0" ]; then
                        if [ "$UTNstate"  == "Available" ]; then
                                echo "OK: $UTN"
                                exit 0
                        else
                                echo "WARNING: $UTN"
                                exit 1
                        fi
                else
                        if [ "$UTNstate" == "Occupied" ]; then
                                if [ ! "$DESTIP" == "" ]; then
                                        IP=$(echo $UTN | awk '{print $3}')
                                        if [ "$DESTIP" == "$IP" ]; then
                                                echo "OK: $UTN"
                                                exit 0
                                        else
                                                echo "WARNING: $UTN"
                                                exit 1
                                        fi
                                else
                                        echo "OK: $UTN"
                                        exit 0
                                fi
                        else
                                echo "CRITICAL: $UTN"
                                exit 2
                        fi
                fi

                ;;
esac

Dennis

Hallo zusammen, mein Name ist Dennis. Ich bin Geschäftsführer eines IT-Dienstleistungsunternehmen für den Mittelstand. In meiner Freizeit treibe ich gerne Sport und beschäftige mich mit allerlei Technik. Bei Fragen jeglicher Art könnt ihr einfach auf mich zukommen :)

2 Gedanken zu „Nagios Plugin für myUTN Control Center

  1. sorry dennis, but this script is junk and does not work, you should not post something like this, it will NOT help you get nice jobs 🙂

    all the best

    Tom

    1. Oh sorry Tom,

      Unfortunately, i have to disappoint you, the script is working.
      But you are right, SEH has updated the software and now you need to change the content line:

      content=$(curl -d „action=set&name=anonymous&pwd=“ -c /tmp/myUTN.cookie -b /tmp/myUTN.cookie -L -g -J -k https://$HOST/index_en.html 2>&1)

      Then it’s working again 😉

      Dennis

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.