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 '$nbclientEt pour télécharger le plugin c’est ici ou ici.
Le résultat en image:
Laisser un commentaire