Les petits outils permettant de surveiller un réseau

On ne peut pas réellement parler de supervision, mais quand même de surveillance en utilisant des petits outils simples qui, une fois combinés à l'aide de langages de scripts permettent de réaliser des choses très intéressantes. D'autres part, ces petits outils sont la base des plus grosses solutions de supervision, il semble donc intéressant d'appréhender leur fonctionnement.

Ping

Voilà un outil très simple, qui remplit une tâche très importante. C'est en effet ce programme qui va nous permettre, en utilisant le protocole ICMP , de savoir si une machine destination est accessible (dans le cas contraire, connaître approximativement la raison via le code d'erreur ICMP) et de mesurer la latence existante entre les deux extrémités.
L'implémentation est simple, Ping envoi une requête ICMP Echo et attend en retour une requête ICMP Echo Reply. Ping est par exemple souvent utilisé pour réaliser une alerte qui prévient l'administrateur d'une machine quand celle-ci n'est plus joignable.

Outils SNMP

Il existe bien évidemment des programmes simples destinés à utiliser le protocole SNMP. Leurs noms indiquent quelle requête ils peuvent envoyer, par exemple : snmpget, snmpgetnext, snmpinform, snmpset etc...
Chacune de ses commandes permet de réaliser la requête en utilisant une des trois versions du protocole SNMP. Elles sont énormément utilisées dans le cadre de scripts qui stockent les valeurs obtenues afin de réaliser des statistiques ou des alertes. (exemple d'utilisation fournis en Fig 1).

MRTG

MRTG est un outil réalisé en Perl et en C dans le but de surveiller la charge des liens réseaux. Il génère des pages html contenant des images au format PNG qui représentent graphiquement l'état en temps réel de la ressource surveillée. Le principe est simple : un script Perl recherche les données via le protocole SNMP et envoi celles-ci à un programme C qui va les stocker et générer les graphiques.
A la base l'auteur avait dans le but de surveiller le trafic passant par des routeurs, mais MRTG se basant sur SNMP, les possibilités se sont étendues à toute variable. Encore mieux, on peut aussi créer un script qui surveillera n'importe quelle type de donnée non disponible dans SNMP. On possède ainsi un système de surveillance déjà conséquent qui permet sur une même page de surveiller un réseau et de garder les traces des anciennes données.

Fig2 rrdtool

RRDTOOL

Du même auteur que MRTG, RRDTOOL est un peu considéré comme une évolution de ce dernier. La gestion de stockage des données a surtout été entièrement revue pour améliorer les performances, pour cela l'auteur a utilisé une technique nommée "Round Robin", d'où le nom "RRDTOOL" (Round Robin Database TOOL).
Les graphiques se sont également améliorés offrant plus de possibilités, et l'interfaçage entre la récupération de donnée et la génération des images est devenu plus modulaire permettant de réaliser des scripts dans beaucoup de langages différents. RRDTOOL est maintenant un outil incontournable pour générer des graphiques, il est donc utilisé dans quasiment tous les logiciels de supervision open-source.

Fig3 rrdtool

Autres outils

Il existe bien entendu des centaines d'autres programmes très utiles pour surveiller un parc informatique. On peut par exemple citer le très utile TcpDump permettant de capturer les paquets circulant sur le réseau qui pourra être utilisé pour détecter avec un peu de scripting des utilisations frauduleuses ou excessives du réseau.
Iperf en est un autre assez utilisé pour réaliser une sorte d'audit du réseau. Bien sur, les possibilités sont très vastes puisque on peut également réaliser nos propres outils en ayant quelques connaissances sur les protocoles réseau et l'ouverture de socket dans un langage quelconque.

L'ensemble des programmes présentés jusqu'ici représentent des briques de base que vont utiliser des logiciels de supervision plus complet dans le but de créer une console d'administration permettant de gérer l'ensemble des machines d'un réseau.
Les administrateurs ayant de plus en plus de machines à gérer, les applications de supervision doivent permettre le passage à l'échelle de manière aisée : Il doit être possible de passer d'une vue globale de centaines de machines pour savoir si il y a une erreur quelque part et pouvoir "zoomer" sur la machine en question et obtenir toutes les informations précises sur celle-ci afin de connaître l'origine du problème.