Des cartes réseaux comme chez Free

Publié le 26 mars 2008 par Nicolargo

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 round

NODE PointB
POSITION 550 75
LABELTYPE round

LINK 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).