Des cartes réseaux comme chez Free
Date: 26/03/2008 | Catégories: Open-source,Reseau | Tags: bande-passante,cacti,graphique,weathermap,weathermap4rrd
Vous êtes admiratifs des cartes réseaux proposées sur le site de l'opérateur pour afficher en temps (presque) réel l'état de leurs liaisons ? Vous voulez faire la même chose chez vous ? Alors ce tutorial est fait pour vous...
Nous allons pour cela utiliser le logiciel open-source WeatherMap4RRD. Ce dernier peut produire des cartes de ce type:
Vous avez besoin de quoi:
- d'un logiciel permettant de produire des fichiers RRD (par exemple MRTG ou CACTI). Ces fichiers servirons de sources pour la production de la carte.
- d'une carte de votre infrastructure (par exemple une carte de France ou de votre bâtiment) au format PNG mais n'est pas obligatoire...
- d'un système d'exploitation de type Linux ou Windows avec un Apache/PHP correctement configuré.
- de ce tutorial...
Installation de WeatherMap4RRD
La dernière version (1.2) date de décembre 2005 et elle est téléchargeable à cette adresse. Il existe deux versions: une version Perl (à lancer automatiquement par crontab et qui génère la carte sous la forme d'un fichier) et une version PHP qui génère directement une page HTML avec la carte. J'ai choisi pour ce tutorial d'installer cette deuxième version (le Linux magazine de mars 2008 parle de la version Perl).
# wget http://weathermap4rrd.tropicalex.net/get_file.php?id=19&path=/code&filename=weathermap4rrd-php-1.2final.tgz
# tar zxvf weathermap4rrd-php-1.2final.tgz
# cp -R weathermap4rrd-php-1.2final /var/www/html/weathermap4rrd
(remplacer /var/www/html/ par la racine de votre serveur Web)
En pointant un navigateur Web vers l'adresse de votre serveur vous devriez voir une carte par défaut.
http://localhost/weathermap4rrd
Si vous rencontrez l'erreur suivant:
WeatherMap4RRD 1.2 : An error occured : file /weathermap.conf not found. You should check that /weathermap.conf file exists.
Il est fort possible que cela vienne du fait que le script PHP n'arrive pas à trouver le fichier weathermap.conf dans votre arborescence de fichier. Le plus simple est alors de le passer un paramètre au script PHP:
http://localhost/weathermap4rrd/index.php?config=/var/www/html/weathermap4rrd/weathermap.conf
Configuration de WeatherMap4RRD
Il faut éditer le fichier weathermap.conf avec votre éditeur de texte favori.
La première chose à faire est de déclarer le nom de l'image de fond (si vous n'en avez pas, commentez la ligne avec un #). Il faut préciser au script la taille de l'image (comme si il ne pouvait pas le faire tout seul...)
BACKGROUND macarte.png
HEIGHT 800
WIDTH 421
On continue en fixant la taille de la fonte (valeur de 1 à 5), personnellement, je trouve que 1 est une bonne valeur pour la lisibilité.
FONT 1
Ensuite on fixe la position et les caractéristiques de la légende.
LEGENDPOS 500 380
LEGENDSTYLE line
Ensuite on fixe la position et les caractéristiques du titre de la cartee
TITLE "Ma carte à moi"
TITLEPOS 0 1
TITLEBACKGROUND 255 255 255
TITLEFOREGROUND 0 0 0
On doit ensuite configurer l'emplacement des fichiers HTML et PNG générés par le script (attention, le répertoire doit être en lecture/écriture pour l'utilisateur apache):
OUTPUTFILE /var/www/html/weathermap4rrd/weathermap.png
HTMLFILE /var/www/html/weathermap4rrd/weathermap.html
On entre enfin dans le vif du sujet en définissant les noeuds de notre réseau et les liaisons entre ces noeuds.
NODE PointA
POSITION 300 300
LABELTYPE roundNODE PointB
POSITION 550 75
LABELTYPE roundLINK A-B
NODES PointA - PointB
TARGET /usr/share/cacti/rra/firewall_traffic_in_130.rrd
INPOS 2
OUTPOS 1
UNIT bytes
BANDWIDTH 2000 4000
DISPLAYVALUE 1
La principale difficulté est de trouver l'emplacement du fichier RRD correspondant à cette liaison. Sous Cacti, le plus simple est d'aller dans le menu "Data sources" de la console d'administration, d'aller dans les détails de la liaison et de regarder le nom du fichier RRD.
Une fois le fichier de configuration sauvegardé, votre nouvelle carte devrait s'afficher sans aucun problème !
Si vous avez besoin d'aller plus loin dans la configuration, je vous conseille cette lecture sur le site officiel (en Anglais).