Retrouvez cet article dans : Linux Magazine 103
Vous aimez bien regarder les cartes sur le site de Free ou d’OVH ? Vous aimeriez avoir les mêmes pour votre réseau ? C’est ce que nous allons faire dans cet article, qui s’adresse principalement aux administrateurs réseau.
Pour cet article, nous allons nous baser sur Cacti et sur une variation du Weathermap original : Weathermap4RRD. Ce fork ne se base pas sur MRTG comme le Weathermap original et nous allons utiliser cette différence.
Fait établi : les admins sont des loutres. Donc, nous détestons faire 2 fois la même tâche lassante : les machines sont là pour le faire pour nous.
Ici, je considère que notre Cacti est en état de marche, qu’il mesure différents liens sur différents sites. Il produit donc des fichiers RRA (Round Robin Archive, c’est dans ces fichiers que Cacti stocke ses mesures) avec lesquels il génère ses graphes que nos décideurs pressés aiment contempler. Ce sont ces fichiers que nous allons utiliser : ils contiennent tous les données dont va se servir Weathermap4RRD. Une seule mesure et (au moins) deux sorties graphiques, génial non ?
Installer Weathermap4RRD
Rien de plus simple sur une Debian (ou sur une distribution apt-enabled) :
root@supervision# apt-get install weathermap4rrd
Oui, c’est tout : nous verrons la configuration de Weathermap et des graphiques une fois que nous aurons bien en vue notre plan d’attaque.
Prendre ses marques
Je vais ici réutiliser des données réelles, seuls les noms ont été changés. La topologie du réseau est la suivante : un datacenter à Paris, un site distant à Lyon et un autre site distant à Bordeaux. La liaison entre Paris et Lyon a un débit de 10 Mb et celle entre Paris et Bordeaux a un débit de 2 Mb. On aura donc 3 lieux à placer et 2 lignes à tracer sur le graphique : Paris/Lyon et Paris/Bordeaux.
Au travail !
Partie nécessaire et fastidieuse, il faut repérer dans Cacti les noms des RRA qui correspondent aux mesures effectuées pour chacun des sites.
Pour cela, nous allons utiliser l’interface web de Cacti. Dans la console, section " Data Sources ", sélectionnez (en utilisant au besoin la recherche) la source de données correspondant au débit réseau de chacun des sites. L’info qui nous intéresse est le " Data Source Path ", par exemple <path_rra>/routeur_lyon_254_traffic_in_334.rrd.
Sur une Debian, le <path_rra> par défaut est /var/lib/cacti/rra/.
Cette opération est à effectuer pour chacun des lieux à représenter et pour chacune des interfaces qui est le départ d’une ligne. C’est long, mais ce n’est à faire qu’une seule fois. Nous avons toutes les infos nécessaires pour commencer.
Chaque graphique a son fichier de configuration, nous utiliserons /etc/weathermap4rrd/weathermap4rrd.sites.conf dans notre cas.
Pour le graphe, on va choisir un fond de carte (Google images nous aidera grandement à le trouver) pour que notre graphique soit plus parlant et plus agréable à regarder.
Le fichier de conf /etc/weathermap4rrd/weathermap4rrd.sites.conf.
# le fond de carte
BACKGROUND /var/www/weathermap/france.png
# Ses dimensions
HEIGHT 1140
WIDTH 1120
# La taille de la police (de 1 Ã 5)
FONT 3
# Positionnement de la légende d’utilisation des liens
KEYPOS 10 10
# Le titre du graphique
TITLE "Utilisation des liens Paris/Province"
# Sa position
TITLEPOS 130 12
# Sa couleur (noire)
TITLEFOREGROUND 0 0 0
# Le fichier à générer
OUTPUTFILE /var/www/weathermap/weathermap_sites.png
# Ici on définit les couleurs de la légende
# low high red green blue
SCALE 1 10 140 0 255
SCALE 10 25 32 32 255
SCALE 25 40 0 192 255
SCALE 40 55 0 240 0
SCALE 55 70 240 240 0
SCALE 70 85 255 192 0
SCALE 85 100 255 0 0
# Definition des sites à représenter
NODE paris
POSITION 610 300
LABEL paris
NODE bordeaux
POSITION 380 800
LABEL bordeaux
NODE lyon
POSITION 840 694
LABEL lyon
# Définition des liens à représenter
LINK paris-bordeaux
NODES bordeaux paris
TARGET /var/lib/cacti/rra/routeur_bordeaux_254_traffic_in_318.rrd
INPOS 1
OUTPOS 2
UNIT bytes
# 2Mb
BANDWIDTH 2048
DISPLAYVALUE 1
ARROW normal
GROUP sites
INTERNODEDISPLAY 50
# On réutilise les "nodes" définis juste avant
LINK paris-lyon
NODES lyon paris
TARGET /var/lib/cacti/rra/routeur_lyon_254_traffic_in_334.rrd
INPOS 1
OUTPOS 2
UNIT bytes
# 10Mb
BANDWIDTH 10240
DISPLAYVALUE 1
ARROW normal
GROUP sites
INTERNODEDISPLAY 50
Petit test pour vérifier que tout se passe bien :
weathermap4rrd -c /etc/weathermap4rrd/weathermap4rrd.sites.conf
Et notre résultat se trouve alors dans /var/www/weathermap/weathermap_sites.png. Nous pouvons procéder à quelques ajustements de positions ou autres vérifications cosmétiques.

PAMARCH ? Pas de panique, utilisons le switch –debug sur la ligne de commande pour avoir plus d’infos sur ce qui se passe.
Le plus dur est fait, mais il faut maintenant actualiser ces données automatiquement et les présenter au monde.
Publier ses graphiques
On aura vite fait de définir un virtualhost pour notre indien :
<VirtualHost *>
ServerAdmin nico@rottenbytes.info
ServerName weathermap.rottenbytes.info
DocumentRoot /var/www/weathermap
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/weathermap>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature Off
</VirtualHost>
Il nous faut aussi un petit script pour regénérer tout ça :
#!/bin/sh weathermap4rrd -c /etc/weathermap4rrd/weathermap.sites.conf convert /var/www/weathermap/weathermap_sites.png -resize 25% /var/www/weathermap/weathermap_sites_t.png
On créera l’entrée suivante dans la crontab :
*/2 * * * * /opt/scripts/weathermap.sh
Pour recréer les graphes toutes les 2 minutes, même si Cacti polle par défaut toutes les 5 minutes, on aura des données tout de même plus " à jour " de cette façon.
Comble du charme, ce script crée une miniature avec convert (du package ImageMagick) à 25% de la taille de l’original, qui ira parfaitement compléter la page (très basique) à utiliser en index de notre vhost :
<html> <head><title>Utilisation du reseau</title></head> <body> <center><h1>Utilisation du réseau</h1> <em>(données actualisées toutes les 5 minutes)</em> </center> <p>France/data<br><a href="weathermap_sites.png"> <img src="weathermap_sites_t.png" border="0"></a></p> </body> </html>
Voilà  ! C’est fini pour cet article qui vous aura, je l’espère, donné envie de faire la même chose chez vous.
PS : Pinpin vous aime.
Liens
- http://www.cacti.net
- http://netmon.grnet.gr/weathermap
- http://weathermap4rrd.tropicalex.net
 Retrouvez cet article dans : Linux Magazine 103


