Analyse de trafic réseau via l'outil MRTG

Objectif :

Analyser le traffic via l'outil MRTG

1)Introduction :

MRTG est un logiciel dédié à la supervision réseau. Il permet d'obtenir toute une série de statistiques (visualisation de charge sur un réseau, utilisation de bande passante...) concernant un appareil informatique (tels que routeurs, serveurs, ou PC) sous forme de représentations graphiques. Il va pour cela chercher des informations directement sur les interfaces des machines du réseau via le protocole SNMP (Simple Network Management Protocol, protocole facilitant l'administration de systèmes à distance).
Outil connu des grandes entreprises, entièrement configurable et gratuit, MRTG (Multi Router Traffic Grapher) est un Freeware constitué de scripts en langage Perl, distribué librement sur le Web (http://www.mrtg.org). Il présente les résultats de ses recherches sur des pages Web classiques, ce qui facilite nettement l'accès à un utilisateur quelconque, quelle que soit la machine utilisée.
Cependant, pour que cet outil soit réellement exploitable et pour en tirer un maximum de possibilités, il est conseillé de le configurer en fonction de l'utilisation que l'on désire en faire. Son avantage est en effet sa polyvalence et son évolutivité: il s'agit d'un logiciel dont les sources sont libres, vous pouvez donc le modifier selon vos besoins et disposer ainsi d'une interprétation de résultats plus personnalisée.

2) Présentation de MRTG :

1. Résultats graphiques :

analyse-de-trafic-reseau-via-outil-MRTG: Résultats graphiques

Cette copie d'écran illustre un graphique représentant le niveau de bande passante sur un port de routeur/switch en fonction du temps. La courbe bleue représente le trafic sortant de l'interface, la verte le trafic entrant.

Température d'une machine, charge processeur, tous les paramètres SNMP que peut fournir une machine sont mesurables et interprétables graphiquement.

Urls délivrées par seconde

analyse-de-trafic-reseau-via-outil-MRTG: Urls délivrées par seconde

Temps de réponse du cache

analyse-de-trafic-reseau-via-outil-MRTG: Temps de réponse du cache

Trafic de/vers les clients

analyse-de-trafic-reseau-via-outil-MRTG: Trafic de/vers les clients

Trafic de/vers les serveurs

analyse-de-trafic-reseau-via-outil-MRTG: Trafic de/vers les serveurs

Connexions tcp

analyse-de-trafic-reseau-via-outil-MRTG: Connexions tcp

Différentiel de trafic entrant/sortant

analyse-de-trafic-reseau-via-outil-MRTG: Différentiel de trafic entrant/sortant

Temps moyen d'obtention d'une url des serveurs

analyse-de-trafic-reseau-via-outil-MRTG: Temps moyen d'obtention d'une url des serveurs

Des exemples de statistiques et de graphes

2. Concrètement, qu'est ce que MRTG ?

Le principe de fonctionnement est relativement simple: une machine d'administration exécute plusieurs processus MRTG (un par appareil à analyser). Celle-ci envoie, à des périodes régulières, des requêtes SNMP sur des interfaces prédéfinies de machines du réseau à analyser (routeurs, commutateurs, serveurs). Après que la machine concernée ait répondu à la requête en donnant ses statistiques d'utilisation, MRTG peut mettre à jour ces graphes en fonction des informations reçues.
Par défaut, une mesure est effectuée toutes les 5 minutes (paramétrable) pour mettre le graphique à jour. Pour chaque appareil, MRTG fournit une représentation par jour, par semaine et même par année. L'outil peut donc générer des moyennes, ce qui constitue un avantage supplémentaire en facilitant la création de statistiques. Les mesures pourront être effectuées sur tous types de machines supportant le protocole SNMP.
Les résultats graphiques sont représentés sur des pages Web, ce qui les rend accessibles depuis n'importe quel navigateur Internet. Il n'y a de ce fait aucun logiciel supplémentaire à installer sur les machines clientes.
Recherches automatiques des informations sur les différentes machines du réseau, appropriation automatiques des nouvelles informations de façon régulière, parmi tous les avantages offerts par MRTG, on peut également évoquer sa facilité d'évolution. Il est entièrement adaptable en fonction des besoins de son utilisateur et facilite nettement les tâches d'administration courantes...

3) Installer MRTG sous Unix/Linux :

Dans un premier temps, il vous sera nécessaire de télécharger les librairies liées à l'application.

MRTG génère des graphiques au format PNG, il nécessite pour cela plusieurs librairies graphiques. Il y a de grandes chances que ces librairies soient déjà fournies avec votre distribution xBSD ou Linux. Vérifiez donc que vous ne possédez pas déjà les librairies en question avant d'en installer une copie. Si les premiers essais du logiciel ne fonctionnent pas, procurez-vous des versions plus récentes des librairies ci-dessous.

analyse-de-trafic-reseau-via-outil-MRTG: Installer MRTG sous Unix/Linux
Une fois cette première étape achevée, nous allons pouvoir passer à la compilation des librairies.

2. Compilation des librairies :
Pour une installation de MRTG sur une distribution de type RedHat ou Mandrake sous forme de package RPM, il vous sera plus simple de vous référer à un article plus spécifique disponible ici. Dans ce cas, vous êtes exempt de la compilation manuelle des fichiers. Vous pouvez poursuivre votre lecture à partir de la configuration de MRTG.

Nous allons maintenant compiler les différentes librairies utilisées par MRTG. Dans le cas où les librairies seraient déjà présentes sur votre système, vous pouvez rejoindre directement le sous titre 3.3 . Le programme "wget" mentionné dans les lignes de commandes ci-dessous est un navigateur Internet. Vous pouvez très bien le remplacer par un "netscape" ou un "mozilla" quelconque.

Créer dans un premier temps un répertoire qui contiendra les fichiers de compilations:

La librairie "zlib" est utilisée par libpng pour compresser les fichiers images qu'il génère. Si zlib n'était pas déjà installé, tapez:

La librairie "libpng" permet à votre système Unix/Linux de concevoir des fichiers images du type "PNG", MRTG l'utilise pour générer les graphiques de statistiques. Si libpng n'était pas déjà installée, tapez:

Vous pouvez à présent compiler "gd", cette librairie génère les graphiques.

3. Compilation de MRTG :
Comme vous pourrez le constater, la version Unix de MRTG est fournie sous forme de codes source, cela implique que vous devrez compiler un certain nombre de fichiers avant de pouvoir l'utiliser sur une machine UNIX ou Linux.

Pour compiler et utiliser MRTG, vous aurez besoin d'un compilateur de langage C ainsi qu'un compilateur Perl. Ces compilateurs sont souvent installés de base suivant les distributions utilisées. Dans le cas contraire, vous les trouverez via les liens suivants:

Nous pouvons à présent nous occuper de la compilation du programme principal. Considérons le sous répertoire /usr/local/mrtg-2 comme répertoire de base pour l'installation de MRTG, de ses utilitaires et librairies associées.

Si toutes les librairies étaient déjà pré-installées sur votre système, vous pouvez configurer MRTG en tapant simplement:

Autrement, vous allez devoir préciser les chemins d'accès aux différentes librairies requises pour compiler MRTG:

Si vous rencontrez des problèmes lors de la compilation, l'origine de l'erreur ainsi que son type vous seront indiqués afin que vous puissiez y remédier. A la suite d'une compilation réussie, vous devez obtenir un fichier Makefile adapté à votre système. Pour cela, tapez:

Cela va construire les fichiers exécutables nécessaires à l'installation. Vous pouvez alors installer MRTG en tapant:

Pour vérifier l'installation du module MRTG, allez dans le répertoire d'installation (ici /usr/local/mrtg-2) et tapez:

S'il n'y a pas d'erreur le module est correctement installé.


4. Configuration de MRTG :
Veillez, avant d'aller plus loin, à activer le protocole ou service SNMP sur tout appareil sur lequel vous souhaitez effectuer des mesures. Il faudra simplement faire attention à ne pas laisser l'accès à n'importe qui sur n'importe quoi.

Aussi, la machine sur laquelle est installé MRTG se doit a fortiori de disposer d'un serveur Web HTTP, afin de présenter les pages après leur construction.

L'ultime étape avant l'utilisation consiste à configurer MRTG pour superviser un appareil réseau (prenons par exemple un routeur). Il faut pour cela créer un fichier mrtg.cfg dans lequel on va définir ce que vous souhaitez voir analyser. Pas d'inquiétude, bien évidemment, vous n'aurez pas à rédiger ce fichier seul(e). Un utilitaire vous est fourni avec MRTG, il s'agit de cfgmaker. Ce n'est en fait rien d'autre qu'un script que vous exécuterez en spécifiant en paramètre l'adresse du routeur dans votre réseau. Il créera alors un fichier de configuration MRTG automatiquement. Vous trouverez ce script dans le sous répertoire bin.

Le script Perl "cfgmaker" crée des fichiers de configuration sur un système en particulier. Ce fichier servira à MRTG pour sélectionner le type de mesure à effectuer sur une machine donnée. MRTG pourra ainsi récupérer les valeurs correspondantes sur la machine via le protocole de communication "SNMP". Voici la syntaxe des commandes à utiliser pour créer un fichier de configuration sur une machine:

L'exemple ci-dessus créera un fichier de configuration dans /home/mrtg/cfg en supposant que ce répertoire est visible sur votre serveur Web (c'est dans l'arborescence de ce répertoire que le navigateur Web devra "browser" afin de visualiser les graphiques de résultats).

Si, après vous être familiarisé avec l'environnement MRTG, vous souhaitez créer vos propres fichiers de configuration, prenez soin de vous informer auparavant sur la page de référence MRTG pour connaître toutes les options de configuration possibles.

Vous pouvez obtenir des exemples de fichiers de configuration sur:

http://www.somix.com/software/mrtg/ (classement par marques)

http://www.wtcs.org/snmp4tpc/mrtg.htm

L'étape de configuration effectuée, pour rendre l'affichage des résultats graphiques plus convivial, il vous faut créer la page HTML d'accueil pour la machine analysée. Pour cela, tapez:

Title -> correspond au titre que portera votre page HTML.
Prefix -> désigne le Dossier où seront stockées les données d'analyses.
Output-> indique le chemin et titre du fichier HTML à créer.
/usr/mrtg/cfg/.../fichier.cfg-> chemin du fichier de configuration.


5. Utilisation de MRTG :
Une fois le fichier de configuration créé, tapez:


Cela va interroger directement votre routeur pour créer vos premières pages Web incorporant des graphiques de trafic. Lors des premières utilisations du programme MRTG, certaines alertes du type: "Rateup WARNING : /usr/local/mrtg-2/rateup Can't rename localhost_2.log to localhost_2.old updating log file"

apparaissent. N'ayez pas d'inquiétude, cela est normal car le programme tente d'écraser des fichiers de log qui n'ont pas encore été créés. En revanche, si le problème persiste après plusieurs utilisations.

Démarrer le processus MRTG manuellement n'est pas la meilleure des solutions à long terme, surtout si on est amené à démarrer plusieurs processus simultanément. C'est pourquoi, il vous est conseillé, à partir du moment ou vous êtes satisfait des résultats obtenus:

  • de lancer MRTG en tant que "daemon" en ajoutant la ligne suivante dans le fichier de configuration: RunAsDaemon: Yes (par défaut, MRTG effectue les mesures toutes les 5 minutes).
  • d'automatiser le démarrage de plusieurs processus simultanément et à intervalles réguliers via un seul fichier de (Bash Shell par exemple) contenant toutes les lignes de commande à lancer pour chacun des processus.
Vous pouvez aussi automatiser le démarrage de tous les processus MRTG en créant un script qu'il faudra placer dans la séquence de démarrage de votre système. Malheureusement, la méthode d'ajout dans la séquence de démarrage diffère nettement selon les différents systèmes Unix/Linux. Les derniers possèdent généralement un répertoire nommé /etc/init.d ou /etc/rc.d/init.d dans lequel vous pouvez insérer des scripts (ou des liens symboliques vers ceux-ci) qui s'exécuteront au démarrage de la machine. En cas de doute, consulter la documentation propre à votre distribution.

3. Installer MRTG sous Windows :

Ce chapitre définit le processus d'installation de MRTG sur les machines de type Windows (NTx). Installer MRTG sur Windows ne se fait pas simplement par l'intermédiaire d'un assistant. Néanmoins, en suivant les différentes étapes de ce chapitre, l'installation ne devrait pas vous poser de problèmes particuliers.

1. Pré-requis :
Procurez-vous tout d'abord les utilitaires suivants:
  • Une version de Perl correspondant à votre version de Windows http://www.ActiveState.com (version 5.6 minimum).
  • La dernière version de MRTG (mrtg-2.10.13.zip ou supérieure). L'archive que vous téléchargerez comportera également une copie du programme "rateup.exe" qui vous servira par la suite.
2. Installation de MRTG :
Il est vivement conseillé d'effectuer l'installation de MRTG et du serveur Web affichant les pages de résultats sur la même machine. Les exemples proposés dans la suite de l'article sont créés dans cette configuration.

Dézippez tout d'abord le package MRTG dans C:\mrtg-x.y.z. Puis installez Perl, tout en vous assurant de la présence du chemin du répertoire d'installation des fichiers binaires Perl dans la variable d'environnement PATH:

Vérifier l'installation en ouvrant une fenêtre de commande DOS et tapez:

Vous devriez obtenir un petit message d'erreur vous signalant l'absence d'un fichier de configuration. Cela signifie que MRTG et Perl ont bien été installés.


3. Configuration de MRTG :
Il est maintenant possible de créer un fichier de configuration pour MRTG. Il convient avant tout de collecter un certain nombre d'informations:
  • L'adresse IP ou le nom de la machine ainsi que le numéro de port SNMP de la machine que vous souhaitez analyser.
  • Si l'analyse doit être effectuée sur autre chose que des mesures de bande passante (entrantes et sortantes), vous devez connaître le SNMP OID (numérotation du paramètre dans la MIB) de ce que vous souhaitez analyser.
  • Enfin, il est nécessaire de connaître le nom de la communauté SNMP associée à votre appareil (même si elle est en lecture seule). Si vous ne la connaissez pas, essayez avec "public", qui est la valeur par défaut.
Nous utiliserons dans nos exemples un catalyst Cisco 5000 situé en 10.10.10.1 et dont la communauté d'appartenance est "public". Nous nous intéresserons à la mesure du trafic réseau ainsi qu'à la charge CPU.

configuration MRTG par défaut. Ouvrez pour cela une fenêtre de commande DOS dans laquelle vous vous placerez dans le répertoire suivant: c:\mrtg-x.y.z\bin. Tapez alors:

Cela va créer un premier fichier de configuration automatiquement. Dans ce fichier, chacune des interfaces du routeur seront identifiées par un numéro. Si vous obtenez un message d'erreur tel que: "no such name" ou "no response", le nom de la communauté que vous avez indiqué est probablement erroné.

Vous pouvez obtenir des exemples de fichiers de configuration sur:
http://www.somix.com/software/mrtg/ (classement par marques)
http://www.wtcs.org/snmp4tpc/mrtg.htm

Regardons à présent à quoi ressemble un fichier de configuration mrtg.cfg. Vous remarquerez qu'en Perl, une ligne précédée de "#" désigne un commentaire.


Ajoutez cette ligne au début du fichier "mrtg.cfg": WorkDir: C:\www\mrtg\ en indiquant le chemin d'accès où les pages Web sont créées.

Tentons de démarrer une analyse MRTG avec ce fichier de configuration (tout ce qu'il y a de plus basique). Lancez le processus en tapant la ligne suivante à partir du répertoire c:\mrtg-2.10.13\bin:




Il est normal d'obtenir des erreurs signalant des fichiers de log inexistants lors des 2 premières utilisations de cette commande.

Bien évidemment aucun graphe n'est visible avant un certain nombre de mesures. Tentez de relancer le programme après quelques minutes pour effectuer une nouvelle mesure. Vous verrez alors les premières lignes de votre graphe.

MRTG serait très limité si nous devions effectuer ce processus manuellement toutes les périodes de temps déterminées. Il existe donc une option permettant de faire tourner le processus en tant que service et qui permet d'automatiser les mesures selon une période de temps paramétrable (5 min par défaut).

4. MRTG en tant que service :
Comme nous venons de le préciser, il existe une option spécifique à utiliser lorsque l'on souhaite automatiser les processus MRTG. Ce paramètre se situe dans le fichier de configuration MRTG. Le processus ainsi démarré restera dans la mémoire et s'exécutera en tant que service pour effectuer une nouvelle requête toutes les x périodes de temps. Pour cela ajoutez la ligne suivante dans votre fichier de configuration:

et lancez le processus par:

Si vous utilisez wperl au lieu perl, la console DOS ne sera pas visible et le processus MRTG sera lancé en tache de fond. Vous pouvez le stopper à partir du "gestionnaire des taches" en terminant le processus nommé wperl.exe. Les erreurs éventuelles sont, dans ce cas, consignées dans le journal des événements "application" de Windows.

5. Pages d'index HTML :
Pour rendre l'affichage des résultats graphiques plus convivial, vous pouvez utiliser un petit utilitaire fourni dans le package MRTG, il s'agit de "indexmaker". Son rôle est de créer automatiquement la page d'accueil HTML pour la machine analysée. Pour cela, tapez:

Title -> correspond au titre que portera votre page HTML.
Prefix -> désigne le Dossier où seront stockées les données d'analyses.
Output-> indique le chemin et titre du fichier HTML à créer.
c:\www\mrtg\cfg\...\fichier.cfg-> chemin du fichier de configuration.

5) Exemple :

L'exemple de fichier de configuration proposé ici analyse différentes valeurs sur un Cisco Catalyst 5000 (mesure de bande passante sur les ports 3, 5, 10, et 24, puis mesure de charge CPU).
WorkDir: C:\www\mrtg\ ##################################################################
# Description: LCP SUWG
# Contact: Administrateur
# System Name: LC-Switch
# Location: Bureau-3
#..................................................................
Target[10.10.10.1.1]: 3:[email protected]
MaxBytes[10.10.10.1.1]: 1250000
Title[10.10.10.1.1]: LC-Switch (sample-device): ether0
PageTop[10.10.10.1.1]: <H1>Traffic Analysis for ether0</H1>
<TABLE>
<TR><TD>System:</TD><TD>LC-Switch inAndover</TD></TR>
<TR><TD>Maintainer:</TD><TD>Administrateur</TD></TR>
<TR><TD>Interface:</TD><TD>ether0(3)</TD></TR>
<TR><TD>IP:</TD><TD>sample-device(10.10.10.1)</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
#---------------------------------------------------------------
Target[10.10.10.1.2]: 5:[email protected]
MaxBytes[10.10.10.1.2]: 1250000
Title[10.10.10.1.2]: LC-Switch (): ulink0
PageTop[10.10.10.1.2]: <H1>Traffic Analysis for ulink0</H1>
<TABLE>
<TR><TD>System:</TD><TD>LC- Switch inAndover</TD></TR>
<TR><TD>Maintainer:</TD><TD>Administrateur</TD></TR>
<TR><TD>Interface:</TD><TD>ulink0(5)</TD></TR>
<TR><TD>IP:</TD><TD>()</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
#---------------------------------------------------------------
Target[10.10.10.1.1]: 10:[email protected]
MaxBytes[10.10.10.1.1]: 1250000
Title[10.10.10.1.1]: LC-Switch (sample-device): ether0
PageTop[10.10.10.1.1]: <H1>Traffic Analysis for ether0</H1>
<TABLE>
<TR><TD>System:</TD><TD>LC- Switch inAndover</TD></TR>
<TR><TD>Maintainer:</TD><TD>Administrateur</TD></TR>
<TR><TD>Interface:</TD><TD>ether0(10)</TD></TR>
<TR><TD>IP:</TD><TD>sample-device(10.10.10.1)</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
#---------------------------------------------------------------
Target[10.10.10.1.2]: 24:[email protected]
MaxBytes[10.10.10.1.2]: 1250000
Title[10.10.10.1.2]: LC-Switch (): ulink0
PageTop[10.10.10.1.2]: <H1>Traffic Analysis for ulink0</H1>
<TABLE>
<TR><TD>System:</TD><TD>LC- Switch inAndover</TD></TR>
<TR><TD>Maintainer:</TD><TD>Administrateur</TD></TR>
<TR><TD>Interface:</TD><TD>ulink0(24)</TD></TR>
<TR><TD>IP:</TD><TD>()</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
#---------------------------------------------------------------
# Router CPU load %
Target[cpu.1]:1.3.6.1.4.1.9.58.0&1.3.6.1.4.1.9.58.0:[email protected]
RouterUptime[cpu.1]: [email protected]
MaxBytes[cpu.1]: 100
Title[cpu.1]: CPU LOAD
PageTop[cpu.1]: <H1>CPU Load %</H1>
Unscaled[cpu.1]: ymwd
ShortLegend[cpu.1]: %
XSize[cpu.1]: 380
YSize[cpu.1]: 100
YLegend[cpu.1]: CPU Utilization
Legend1[cpu.1]: CPU (Load)
Legend2[cpu.1]: CPU Utilization Utilization in % in % (Load)
Legend3[cpu.1]:
Legend4[cpu.1]:
LegendI[cpu.1]:
LegendO[cpu.1]:  Usage
Options[cpu.1]: gauge

Cet exemple montre comment afficher les statistiques d'un appareil quelconque selon les informations SNMP qu'il renvoie. Il suffit de connaître l'OID que vous souhaitez analyser.
Conclusion :
Cet article avait pour objectif de vous présenter l'outil MRTG, ses spécificités ainsi que son fonctionnement, mais ne prétend en aucun cas être exhaustif quant à son utilisation. Ce logiciel représente un outil très utile dans le cadre d'une entreprise constituée d'un important réseau, il pourra alors faire partie d'un "tableau de bord" permettant de connaître en temps réel les flux d'informations circulant dans un réseau.
Le rôle de MRTG, à court terme, est d'informer un administrateur sur l'état des lignes de son réseau afin d'être averti en cas de surcharge ou de coupure sur un segment. Dans ce dernier cas, MRTG indiquerait l'endroit exact de la coupure en précisant la machine affectée. A long terme, MRTG pourrait anticiper les excès de bande passante sur le réseau, pour ainsi prévoir la mise en place éventuelle de nouvelles liaisons ou infrastructures sur un réseau.

cours Réseaux application programme algorithme exercice analyse protocoles capture trames Ethernet

Révisé le :01-12-2017 www.technologuepro.com Facebook Twitter RSS