Weathermap4RRD : faire des cartes de monitoring

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

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??

2 Installation

ien de plus simple sur une Debian (ou sur une distribution apt-enabled)?:

Command apt-get
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.

3 Configuration

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.

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 :

Configuration File /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?:

Command weathermap4rrd
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.

Fig-1.jpg

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.

3.1 Publier les graphiques

On aura vite fait de définir un virtualhost pour notre indien?:

Configuration File
<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?:

Configuration File /opt/scripts/weathermap.sh
#!/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?:

Command crontab -e
*/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.

4 Ressources

http://www.unixgarden.com/index.php/administration-systeme/1086