Catégorie : Administration système     Tags :      0 Commentaire

     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.

    /img-articles/lm/103/art-cc-weathermap/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.

    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

    Posté par (La rédaction) | Signature : Nicolas Szalay | Article paru dans Creative Commons License

    Laissez une réponse

    Vous devez avoir ouvert une session pour écrire un commentaire.