Plugin munin pour monitoring de NeufBox V4: le nombre d’utilisateur

Plugin munin pour monitoring de NeufBox V4: le nombre d’utilisateur

Voila un nouveau script pour le [search]monitoring de Neuf Box[/search] avec munin: J’ai mis quelques temps avant de le diffuser. En effet il y’ avait un problème de détection de client non connecté qui se remarque par le nombre de client total qui ne vaut pas la somme des clients sur les différents réseau lan2 lan3 lan4 et Wifi (wlan0). Mais depuis quelques temps plus aucun bug… A vérifier….

Voila le plus important le code du script:

#!/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"

# PORTS diponible sur la neufbox
PORTS="lan2 lan3 lan4 wlan0"

#############################################################################
##                          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 "<lan>" "$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 Clients Counts'
     echo 'graph_args --base 1000 -l 0 -u 1'
     echo 'graph_vlabel Clients Count'
     echo 'graph_category NEUFBOXV4'
     for s in $PORTS
         do
             echo "$s"'.label '"$s"
             if [ "$s" = "lan2" ]; then
                echo "$s"'.draw AREA'
             else
                echo "$s"'.draw STACK'
             fi
         done
     echo 'total.label total'
     echo 'total.draw LINE1'
     exit 0
fi

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

#repartition des ports
port_used=$(xmlstarlet sel  -T -t -m /info/lan/client -v "port" -n $PAGE_FILE)

#echo $port_used

for s in $PORTS
    do
        ret=$(echo $port_used | grep -o $s | wc -l)
        echo "$s"'.value '$ret
    done

#nombre de clients total
nbclient=$(xmlstarlet sel  -t -v "count(//info/lan/client)" $PAGE_FILE)

echo 'total.value '$nbclient

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

Le résultat en image: