Plugin munin pour monitoring de NeufBox V4: la bande passante

Plugin munin pour monitoring de NeufBox V4: la bande passante

Donc voila le premier script pour le monitoring de la NB4 de [search]sfr[/search] via [search]munin[/search]. J’ai remarqué qu’il était possible d’accéder à la [shal]neuf box[/shal] avec le programme fourni par neuf , et ceci sans aucun mots de passe, avec un petit espion sur le réseau m’aurrai permis de voir comment cela était possible, mais cela peut être relativement long et barbant… Heureusement j’ai trouvé un site ou cette étape a déjà été réalise: NeufboxOpenSource CommandesHttp. Cette documentation a été relativement dur à trouver, en effet on cherche plutôt un accès en telnet avec mots de passe qu’un simple accès via http…

Pour conclure cette partie beaucoup d’information se trouvent tous simplement sur la page http://192.168.1.1/stb/info de la neuf box.

Donc voici le premier plugin: celui-ci surveille la bande passante montante et descendante du modem. Après une semaine de test je me rend compte que ce plugin n’est pas très pertinent, en effet au contraire du modem télé2 la bande passant alloué est toujours constante! mais bon voici le code quand même:

 
#!/bin/sh
##############################################################################
##                     DESCRIPTION                                          ##
##############################################################################
#
#  Ce script recupère les donnée sur la page "détection 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 NeufBox
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"

#############################################################################
##                          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 "streamrate" "$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 Stream Rate'
     echo 'graph_args --base 1000 -l 0'
     echo 'graph_vlabel time'
     echo 'graph_category NEUFBOXV4'

     echo 'streamrate_down.label Down Stream Rate'
     echo 'streamrate_up.label Up Stream Rate'
     exit 0

fi

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

  ret=$(xmlstarlet sel -t -v  "/info/dsl/downstreamrate" $PAGE_FILE)
  echo "streamrate_down.value"  $ret

  ret=$(xmlstarlet sel -t -v  "/info/dsl/upstreamrate" $PAGE_FILE)
  echo "streamrate_up.value"  $ret

Vous le remarquerez le script utilise xmlstarlet pour parcer le fichier xml reçu. Pour installer ce programme sous linux ubuntu/debian il faut juste faire:

apt-get install xmlstarlet

Et voila le résultat en image: (deux jolies droites!)