MRTG & RRD Tool Multi Router Traffic Grapher
Plan Principe Historique Principes Généraux Utilisation Installation et configuration Installation Configuration Architecture RRD Tool Étude de cas
Historique de MRTG MRTG-1 : Créé pendant l été 1994 dans l Université De Monfort (UK) Codé uniquement en Perl But : Gestion des accès à Internet MRTG-2 : Janvier 1997 Remplacement par du code en C ANSI pour la génération des graphes Utilisation d un outil cfgmaker Permet de lister les interfaces sur un routeur et de générer automatiquement un squelette du fichier de configuration via SNMP.
Historique de MRTG MRTG-3 : Novembre 1997 Codage des parties critiques en C ANSI Amélioration des temps de calcul Ajout de modules sans recompiler le logiciel But : la flexibilité et la vitesse
Principes Généraux Qu est ce que MRTG? Qu est-ce que RRD Tool? Autres Solutions Outils Propriétaires Comparaison des logiciels (MRTG & RRD Tool) Utilisation
Qu est ce que MRTG? Logiciel Open source sous licence GPL Créé et maintenu par Tobias Oetiker et Dave Rand Un outil multi-fonctions : Collecte périodiquement des données de type SNMP et autres Produit du code HTML contenant les courbes des données recueillies Archive automatiquement les données dans des fichiers de log de taille constante (quotidien, hebdomadaire, mensuel et annuel). Permet à l utilisateur de définir des programmes en entrée
Exemples de graphe
Qu est-ce que RRD Tool? Round Robin Database Tool. Créé en 1997 et maintenu par Tobias Oetiker Basé sur MRTG-3 avec une implémentation différente pour le stockage des données. Plus efficace dans la gestion des archives. Utilisation des nombres flottants pour les calculs. Graphiques provenant de sources multiples. Gestion des données non fournies (Unknown)
Exemples de graphes
Autres solutions Autres produits libres sous Linux Sysmon : Fournit des informations sur le rendement des logiciels Surveillance précise du réseau Supportent les protocoles comme SMTP, IMAP, HTTP, Visualisation : Ligne de commande Gkrellm : Surveillance Machine Interface graphique
Autres solutions Produits libres sous Windows Dumeter & Netmedic Interface graphique Limitation : uniquement le transfert sur le réseau Dashboard Logiciel d'entreprise fourni par l'éditeur BMC Effectue des graphiques via des requêtes SNMP Défaut majeur : non paramétrable (pas de choix sur les variables que l'on veut interroger et afficher sous forme de graphiques)
Outils propriétaires Voici une liste non exhaustive : OpenView (HP) TeMIP (Compaq) Tivoli NetView (IBM) Dashboard (SyBase Communication)
Comparaison des logiciels (1/2) RRDTool et MRTG sont du même auteur: Tobias Oetiker. MRTG MRTG permet de faire des graphes mais est très limité : N est pas capable d'afficher des valeurs négatives. Dans la personnalisation des graphes : taille du graphique, couleur de fond, échelle Obligation d utiliser l interface Web fournie par MRTG MRTG est programmé en PERL et utilise la librairie GD pour faire les graphiques MRTG garde un historique de TOUS les enregistrement effectués
Comparaison des logiciels (2/2) RRDTool RRDTool permet de faire des graphes : Capable d'afficher des valeurs négatives. Capable de faire tout ce qu on peut imaginer en manipulation graphique. Intégration de RRDTool dans n importe quelle page Web RRDTool est programmé en C et est nettement plus rapide. RRDTool n enregistre que les données consolidées selon les «RRA» définies
Utilisation Pourquoi utiliser MRTG ou RRDTool? Avoir des graphes représentatifs du trafic réseau Fournir sous forme synthétiques et aisément exploitables des informations sur l utilisation du matériel informatique Quoi surveiller? Données SNMP : Trafic entrant et sortant sur une interface Erreurs à l entrée et à la sortie d une interface Température de l air dans un environnement Nombre de messages entrants et sortants d un serveur de mail Taux de charge d un serveur Taux d utilisation d un routeur, des disques durs,.
Installation et configuration MRTG Installation Windows Linux Configuration RRD Tool Installation Configuration
Installation MRTG Multi plateformes Windows UNIX Linux Plateformes où un interpréteur PERL est disponible Description procédures sous Windows NT Linux
Installation MRTG - WinNT Pré requis Installation du service SNMP Installation de l interpréteur PERL v5.005+ (www.activestate.com) Logiciel de supervision de la base SNMP (ex. SNMP4NT) Browser de MIB (Getif ) Procédure d installation Deux méthodes : Version pré compilée Compilation du code source Génération du fichier de configuration Modification du fichier de configuration Configuration du planificateur de tâche
Installation MRTG - Linux Pré requis Installation net-snmp Installation interpréteur PERL Librairies nécessaires (gd, libpng, zlib ) Browser de MIB (gtkmib, mbrowse ) Procédure d installation Deux méthodes : Compilation du code source (./configure -> make-> make install) Système de packages (apt-get install, rpm -i) Génération du fichier de configuration Modification du fichier de configuration Automatisation (cron, deamon)
Configuration MRTG Procédures id. sous Windows et Linux Répertoires d installation Windows : C:\MRTG\ Linux : /usr/bin/ (en général ) Génération du fichier de configuration Lancer la commande suivante : cfgmaker --global 'WorkDir: /usr/local/apache/htdocs/mrtg' \ --global 'Language: french' \ --global 'Option[_]: bits, growright' \ --output /home/mrtg/cfg/mrtg.cfg \ public@localhost...
Configuration MRTG Dernière étape : modifier le fichier de configuration Cas étudié Tracé du trafic de la carte réseau Monitoring de la charge CPU Le fichier de configuration En-tête : EnableIPv6: no Language: french WorkDir: /usr/local/apache/htdocs/mrtg Options[_]: bits,growright
Configuration MRTG Le fichier de configuration Partie monitoring du trafic de la carte réseau : Target[ADSL]: 2:public@localhost: SetEnv[ADSL]: MRTG_INT_IP="192.168.0.10" MRTG_INT_DESCR="eth0" MaxBytes[ADSL]: 12500000 Title[ADSL]: Analyse du traffic de la carte réseau PageTop[ADSL]: <H1>Traffic Analysis for 2 -- Chewbacca</H1> <TABLE> <TR><TD>Système:</TD> <TD>Machine de SAM</TD></TR> <TR><TD>Administrateur:</TD> <TD>admin@chezmoi.com</TD></TR> <TR><TD>Description:</TD><TD>Carte eth0 </TD></TR> <TR><TD>Type de l'interface:</td> <TD>Ethernet</TD></TR> <TR><TD>Vitesse maximum:</td> <TD>100.0 Mbits/s</TD></TR> <TR><TD>@Ip:</TD> <TD>192.168.0.10 (Chewbacca)</TD></TR> </TABLE>
Configuration MRTG Le fichier de configuration Partie monitoring de la charge CPU d une machine : LoadMIBs: /usr/local/share/snmp/mibs/ucd-snmp-mib.txt Target[CPU]: sscpurawuser.0&sscpurawuser.0:public@localhost + sscpurawsystem.0&sscpurawsystem.0:public@localhost + sscpurawnice.0&sscpurawnice.0:public@localhost RouterUptime[CPU]: public@localhost MaxBytes[CPU]: 100 Title[CPU]: CHARGE CPU PageTop[CPU]: <H1>Charge Active CPU %</H1> Unscaled[CPU]: ymwd ShortLegend[CPU]: % YLegend[CPU]: Utilisation CPU Legend1[CPU]: CPU Actif en % (Charge) Legend2[CPU]: Legend3[CPU]: Legend4[CPU]: LegendI[CPU]: Actif LegendO[CPU]: Options[CPU]: growright,nopercent
Configuration MRTG Exécution de MRTG Création ou mise à jour des graphiques mrtg $cfg_dir\mrtg.cfg Création possible d un index HTML pour les graphes indexmaker [options]
Installation RRDTool Multi plateformes Windows Mac OS Linux Solaris Description procédures sous Linux uniquement
Installation RRDTool Pré requis Installation net-snmp Browser de MIB (gtkmib, mbrowse ) Procédure d installation Deux méthodes : Compilation du code source (./configure -> make-> make install) Système de package (apt-get install, rpm -i) Création d une base de données Création scripts de mise à jour de la base de données Génération des graphes Automatisation du process
Configuration RRDTool Cas étudié Monitoring du nombre de paquets sur une interface réseau 1 e étape : Création d une base de données DS:'name':'type':'sec_maj':'min':'max DS Data Source rrdtool create myrouter.rrd \ DS:input:COUNTER:600:U:U \ DS:output:COUNTER:600:U:U \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:6:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797 \ RRA:MAX:0.5:1:600 \ RRA:MAX:0.5:6:700 \ RRA:MAX:0.5:24:775 \ RRA:MAX:0.5:288:797 sec_maj min max RRA:'math':'xff':'steps':'rows' d 1 valeur RRA math xffs Nb de sec. avant 1 maj. Seuil min. autorisé Seuil max. autorisé Round Robin Archive Fonction mathématique Seuil d erreur autorisé pour prise en compte steps rows Nb de points primaires utilisés pour une valeur Nb de points dans la RRA
Configuration RRDTool 2 e étape : Mise à jour de la base de donnée (scripting) Commande rrdtool update #!/bin/bash while [ 1 ] do in=`snmpwalk -v2c -c public localhost ifinoctets.1 cut -d' ' -f4` out=`snmpwalk -v2c -c public localhost ifoutoctets.1 cut -d' ' -f4` rrdtool update myrouter.rrd N:$in:$out echo "Update done." sleep 60 done N -> Valeur actuelle du temps (peut être redéfinie)
Configuration RRDTool 3 e étape : Génération des graphes Commande rrdtool graph rrdtool graph myrouter-day.gif --start -86400 \ DEF:inoctets=myrouter.rrd:input:AVERAGE \ DEF:outoctets=myrouter.rrd:output:AVERAGE \ AREA:inoctets#00FF00:"In traffic" \ LINE1:outoctets#0000FF:"Out traffic" --start -86400 Graphe sur une journée (60*60*24 = 86400) DEF:'variable':'base':'Data_Source':'fct_math Création d une source de données virtuelle AREA:inoctets#00FF00:"In traffic" Création d un graphe de type AREA à partir de la source virtuelle inoctets
Configuration RRDTool 4 e étape : Affichage de l image dans un fichier HTML <html> <title>nombre de paquets reçus par la carte réseau</title> <body> <table> <tr><td> <p><b>nb de paquets reçus par la carte réseau</b></p> </td></tr> <tr><td> <img src="myrouter-day.gif" border="0"> </tr></td> </table> </body> </html>
Configuration RRDTool Autres commandes rrdtool dump -> Exporter la base de données au format XML rrdtool info -> Donne des informations sur une base de données rrdtool restore -> Restaure le contenu d'un fichier XML dans une bdd rrdtool fetch -> Afficher certaines valeurs de la base de données rrdtool resize -> Redimensionner les colonne d'une RRA rrdtool tune -> Modifier certains paramètres d'une bdd rrdtool last -> Renvoie la dernière valeur enregistrée dans la bdd rrdtool xport -> Exporte la bdd au format XML (plus d'options que dump)
Architecture Structure des fichiers RRD Création d un fichier Mise à jour d un fichier
Généralités Fichiers de données : type binaire Utilisables uniquement avec les commandes RRDTool
Structure des bases RRD Entête statique Définition des sources primaires Définition des Round Robin Archives Entête dynamique : dernière modification Points primaires Points consolidés Pointeur RRA Zone de stockage des données consolidées
Entête statique Cookie du format «RRD» Version «0001» Cookie nombre flottant Nombre de sources contenu dans le fichier Nombre d archives circulaires Écart temporel entre deux points de données primaires
Définition des sources Nom de la source 20 caractères dont le caractère de fin de chaîne Type de données sources COMPTEUR VALEUR ABSOLUE GAUGE DERIVE Débit des données Valeurs autorisées Minimal Maximal
Définition des archives Nom des fonctions de consolidation Nombre d entrées à stocker Nombre de points primaires pour calculer un point consolidé Facteur des données Fonctions disponibles : Moyenne Minimum Maximum Dernier
Points primaires Dernier point sous forme ASCII de 30 caractères Nombre de secondes de données inconnues Données primaires Autant de fois qu il y a de sources
Points consolidés Valeur consolidée Nombre de points inconnus dans la source Autant de fois qu il y a d archives et pour chaque source
Pointeur de RRA Ligne courante dans la base RRA Autant de fois qu il y a de base RRA
Stockage des données Autant de fois qu il y a de bases RRA pour chaque ligne (notion temporelle) et pour chaque source
Création d un fichier Nombre de sources (pris en argument) Nombre de RRA (pris en argument) Intervalle de 5 minutes par défaut entre deux mises à jour de données primaires Date de début : -10 secondes par défaut Valeurs par défaut DNAN : Define Not A Number «UNKN» : Unknow
Mise à jour d un fichier Calcul en fonction du type de source Contrôle de validité Valeur : DNAN? Mise à jour des compteurs Ligne courante dans la base RRA Nombre de valeurs inconnues
Étude de cas Surveiller le trafic réseau d un routeur Activité sur interface LAN Activité sur l interface WAN Afficher les graphiques sur un serveur WEB Statistiques pour : Une heure Une journée