Si vous suivez ce blog, vous devez sûrement connaitre Cacti, l'outil permettant de générer des graphes visualisation via une interface HTML/PHP. La solution, bien que simple à mettre en oeuvre nécessite quelques manipulations. Nous allons voir dans ce billet une autre solution beaucoup moins lourde et simple à mettre en oeuvre: MRTG. Nous nous limiterons à la génération de graphes représentant la bande passante des interfaces réseau mais l'on peut bien sûr "grapher" toutes les mesures récupérables via SNMP. La machine qui hébergera notre MRTG est sous Unbuntu 9.10 (mais la procédure est globalement la mêmes sur les autres distribution GNU/Linux).
Installation
sudo aptitude install mrtg
Création du répertoire Web
sudo mkdir /var/www/mrtg
Pour être propre, je vous conseille de créer un sous-répertoire par machine à superviser. Par exemple:
sudo mkdir /var/www/mrtg/A.B.C.D
Ajout d'une machine à superviser
Pour superviser le trafic de toutes les interfaces réseau de la machine d'adresse ip A.B.C.D (hébergeant un serveur SNMP configuré avec public comme utilisateur en lecture seule), il faut saisir la commande suivante:
cfgmaker --global 'WorkDir: /var/www/mrtg/A.B.C.D' \ --ifdesc=descr \ --global 'Language: french' \ --global 'Options[_]: bits,growright' \ [email protected] > /var/www/mrtg/A.B.C.D/A.B.C.D.cfg
Les options permettent:
- de nommer les interfaces réseaux par leur description: --ifdesc=descr
- de passer l'interface de MRTG en Francais: --global 'Language: french'
- de mettre les graphes en bits/sec et de les dessiner de la droite vers la gauche: --global 'Options[_]: bits,growright'
Il est bien sur possible d'éditer le fichier de configuration (/var/www/mrtg/A.B.C.D/A.B.C.D.cfg) à la main, pour changer la configuration de MRTG.
Gérérer automatiquement les graphes
Il faut pour cela lancer automatiquement le binaire /usr/bin/mrtg toutes les 5 minutes. Nous allons donc créer un script SHELL que nous lancerons en utilisant la crontab.
vi /usr/local/bin/mrtgcron.sh #!/bin/sh # /var/www/mrtg/A.B.C.D env LANG=C /usr/bin/mrtg /var/www/mrtg/A.B.C.D/A.B.C.D.cfg
Puis on lui donne les droits en exécution:
chmod a+x /usr/local/bin/mrtgcron.sh
Et enfin, on programme la crontab (crontab -l) en ajoutant la ligne suivante:
*/5 * * * * /usr/local/bin/mrtgcron.sh
Il ne reste plus que 5 minutes à attendre avant de consulter ses graphe à l'URL suivante:
http://adresse_ip_serveur_mrtg/mrtg/A.B.C.D/
Création d'un fichier d'index pour votre site Web
Quand vous accédez à votre page Web MRTG, vous avez une liste de fichiers peu lisible. Heureusement, MRTG est fourni avec un utilitaire nommée indemaker permettant de générer un fichier index.html beaucoup plus "user/chief friendly".
Pour générer cet index sur notre répertoire A.B.C.D, il faut saisir la commande suivante:
indexmaker --title='MRTG - A.B.C.D' --sort=descr \ --sidebyside /var/www/mrtg/A.B.C.D/A.B.C.D.cfg \ --output=/var/www/mrtg/A.B.C.D/index.html
Et voili, l'accès via l'URL http://adresse_ip_serveur_mrtg/mrtg/A.B.C.D est quand même plus sympathique...
Section spécial gros fainéants
Voici un petit script SHELL qui va vous simplifier la vie (enfin l'ajout de machine à superviser dans MRTG...):
#!/bin/sh # mrtgadd.sh # Ajout d'une machine a superviser # Nicolargo - GPL # # Syntaxe: mrtgadd.sh <nom_de_la_machine> <adresse_ip_de_la_machine> MRTGADD_DIR=/var/www/mrtg/$1 echo "Création du répertoire: $MRTGADD_DIR" sudo mkdir $MRTGADD_DIR MRTGADD_CFG=$MRTGADD_DIR/$1.cfg echo "Génération de la configuration MRTG: $MRTGADD_CFG ($2)" sudo cfgmaker --global "WorkDir: $MRTGADD_DIR" \ --ifdesc=descr \ --global 'Language: french' \ --global 'Options[_]: bits,growright' \ public@$2 > $MRTGADD_CFG MRTGADD_CRONSCRIPT=/usr/local/bin/mrtgcron.sh echo "Modification du script $MRTGADD_CRONSCRIPT" sudo cp $MRTGADD_CRONSCRIPT $MRTGADD_CRONSCRIPT.old sudo cat <<EOF >> $MRTGADD_CRONSCRIPT # $MRTGADD_DIR env LANG=C /usr/bin/mrtg $MRTGADD_CFG EOF echo "Generation du fichier Index" sudo indexmaker --title="MRTG - $1" \ --sort=descr \ --sidebyside $MRTGADD_CFG \ --output=$MRTGADD_DIR/index.html
Conclusion
MRTG est un bien bel outil dont pas mal de logiciel "webifier" se servent comme générateur de graphe. Il est simple et souple à installer et transparent à utiliser... Et vous êtes vous un fan de cet outil libre ?