Plugins Munin pour monitoring de Neuf Box: Les status

Plugins Munin pour monitoring de Neuf Box: Les status

Voici le deuxième plugins pour le [search]monitoring de Neuf Box[/search]: celui-ci consulte les status des différents éléments de la neuf box: la ligne DSL, le PPP (« connexion avec internet »), et la VOIP (le téléphone), Ce plugin marche comme le précédent basé sur la page: http://192.168.1.1/stb/info.
Voici le code du plugin:
(sous license GNU-GPL)

#!/bin/sh
##############################################################################
##                     DESCRIPTION                                          ##
##############################################################################
#
#  Ce script reupère les donnée sur la page "detecttion des intrusions" et
#formate ces donnée pour munin
#utilise XMLStarlet
#apt-get install xmlstarlet
#
#le script comprent les commandes:
#  -> autoconf
#  -> config
#  -> <vide>

##############################################################################
##                     Variable de configuration                            ##
##############################################################################

#l'adresse ip du modem routeur TELE2
IP_NEUFBOX="192.168.1.1"

#############################################################################
##                CONSTANTE POUR FACILITE L'EVOLUTION DU SCRIPT            ##
#############################################################################
#
#ces constantes sont là pour s'adapter à d'eventuelles modifications
#du firmware du modem ou pour permetre au script d'évoluer
#

#page de l'interface WEB qui liste les info de la neuf
PAGE_INFO="/stb/info"

#fichier temporaire ou sera stocké cette page pour faire les traitements
PAGE_FILE="/tmp/temp.munin.neufboxV4.stb.info"

#services suportant le champ status
# la voip est traité part
SERVICES="dsl ppp voip"

#############################################################################
##                          SCRIPT                                         ##
#############################################################################

getfile()
{
  wget -q -O"$PAGE_FILE" "http://$IP_NEUFBOX$PAGE_INFO"
}

if [ "$1" = "autoconf" ]; then
    #on recupère la page
    getfile
    #on verifie que c'est la bonne page avec son titre
    ret=$(grep "status" "$PAGE_FILE" | wc -l)
       if [ "$ret" > "0" ] ; then
		echo yes
		exit 0
	else
		echo no
		exit 1
	fi
fi

if [ "$1" = "config" ]; then
     echo 'graph_title NeufBox Status'
     echo 'graph_args --base 1000 -l 0 -u 1'
     echo 'graph_vlabel Status 1:up 0:down'
     echo 'graph_category NEUFBOXV4'
     for s in $SERVICES
         do
             echo "$s"'_status.label '"$s"
             echo "$s"'_status.min 0'
             echo "$s"'_status.max 1'
         done
     exit 0
fi

if ! [ -f $PAGE_FILE ]; then
  getfile
elif [ $(expr `date '+%s'` -  `date -r $PAGE_FILE '+%s'`) -ge 250 ]; then
  getfile
fi

for s in $SERVICES
    do
        if [ "$s" = "voip" ]; then
            ret=$(xmlstarlet sel -t -v  "/info/voip/linestatus" $PAGE_FILE)
        else
            ret=$(xmlstarlet sel -t -v  "/info/$s/status" $PAGE_FILE)
        fi
        if [ "$ret" = "up" ]; then
            echo "$s"'_status.value 1'
        else
            echo "$s"'_status.value 0'
        fi
    done

Et pour télécharger le plugin c’est ici ou ici.

Et le resultat en image:

(rien de pertinent: y’a pas de problème donc tous les status restent à UP=1)

localhostlocaldomain-neufboxv4_status-day