Name : BETA-TESTERS
Project name : ZW3B-API-BETA-TESTERS
Authorized. - 200 - Client API Name and Origin Wildcard OK
MRTG est un programme qui permet de créer des graphiques de l'activité de votre ordinateur. Ces graphiques sont sauvegardés sous forme de fichiers HTML.
Le but est bien entendu de rendre accessible ces graphiques depuis l'extérieur en utilisant un serveur web, comme Apache, ce qui permet de surveiller l'activité de l'ordinateur à distance, depuis un simple navigateur web.
Il faut dans un premier temps installer SNMP (Simple Network Management Protocol). Il s'agit d'un outil qui permet aux administrateurs réseau de gérer les équipements réseau et de diagnostiquer les problèmes de réseau, en local ou à distance.
Puis nous installerons MRTG (Multi Routeur Traffic Graph) pour lire et générer les graphs.
Script avec 2 lignes
001aptitude update 002aptitude install snmp
/etc/snmp/snmpd.conf
Script avec 1 ligne
001vi /etc/snmp/snmpd.conf
Script avec 2 lignes
001#com2sec paranoid default public 002com2sec readonly default public
puis redémarer le service
Script avec 1 ligne
001/etc/init.d/snmpd restart
Script avec 1 ligne
001aptitude install mrtg
Script avec 1 ligne
001cfgmaker public@127.0.0.1 --global 'Language: French' > /etc/mrtg.cfg
/etc/mrtg.conf
(je vous ai mis quelques options avec commentaire)Script avec 1 ligne
001cat /etc/mrtg.conf
Script avec 61 lignes
001####################### 002# Global Settings 003RunAsDaemon: yes 004 005# Répertoire de destination des graphes, des fichiers de données (log,old), des pages html. 006WorkDir:/var/www/mrtg/ 007 008# On peut choisir le chemin où doit se trouver les fichiers html, png, log. 009Htmldir: /var/www/mrtg/ 010Imagedir: /var/www/mrtg/images 011Logdir: /var/www/mrtg/logs 012 013# Options générales 014# growright, noinfo, transparent, unknaszero, bits, nopercent, growright, gauge 015# défilement de droite à gauche, fond des graphes transparent, en cas de problème de poling le graphe tombe à zéro sinon MRTG prend la dernière valeur connnue et trace une ligne continue tant que MRTG n'arrive plus interroger l�€�équipement. 016Options[_]:growright,transparent,unknaszero 017 018# Cela permet de supprimer les graphes voulus (y=yearly m=monthly w=weekly d=daily). 019Suppress[_]: y 020 021####################### 022# Cible : interface:communauté@IP 023# Target correspond à ce que nous voulons interroger. 024Target[string]: 1:Public@127.0.0.1 025 026# Options correspond aux options spécifiques du graphe et annule la ou les options générales spécifiées lors de la création du fichier de configuration. 027Options[string]: growleft, nobanner, noinfo 028 029# Title correspond au titre de la page html générée. 030Title[string]: Titre du graph 031 032# Normalement MRTG ajuste automatiquement la valeur maximale du graphe pour avoir la meilleure échelle possible. 033# Cette option permet en fait d'annuler cet automatisme et d'avoir un graphe fixe. 034Unscaled[string]: dwym 035 036# Fixe la valeur maximale des graphes, cette valeur est en octets. 037MaxBytes[string]: 1250000 038 039AbsMax[string]: 1250000 040 041# Si vous voulez monter plus de 4 lignes par graphique. 042Ytics[string]: 6 043 044# Cela permet d'ajuster les graphes, c'est à dire cela consiste à multiplier le graphe par une valeur. 045YScale[string]: 1.25 046XScale[string]: 1.5 047 048# Permet de mettre une légende explicite à l'axe des y. 049YLegend[string]: Packets /s 050 051# Cela consiste à définir la taille du graphe en pixel de 20 à 600 par axe. 052YSize[string]: 150 053XSize[string]: 600 054 055Legend1[string]: IN Packets /s 056Legend2[string]: OUT Packets /s 057LegendI[string]: IN P/s: 058LegendO[string]: OUT P/s: 059 060# Légende des valeurs des graphes. 061ShortLegend[string]: P/s
Script avec 1 ligne
001indexmaker --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Script avec 1 ligne
001crontab -e
Script avec 1 ligne
0010,5,10,15,20,25,30,35,40,45,50,55 * * * * indexmaker --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend 2>/dev/null 2>&1
Créer le fichier de conf qui va bien /etc/mrtg/packets-in-out.cfg
Script avec 1 ligne
001vi /etc/mrtg/packets-in-out.cfg
Script avec 16 lignes
001#----------------eth0--------------- 002WorkDir: /var/www/mrtg 003Target[eth0]: `perl -e '@a=split(/[:s]+/,qx(grep eth0 /proc/net/dev));printf "%.0fn%.0fn1neth0 trafficn",$a[2],$a[10];'`; 004Options[eth0]: dorelpercent, growright, nobanner, noinfo, transparent 005MaxBytes[eth0]: 2000000 006AbsMax[eth0]: 10000000 007kilo[eth0]: 1024 008YLegend[eth0]: Bytes per second 009ShortLegend[eth0]: B/s 010Legend1[eth0]: Incoming Traffic in Bytes per second 011Legend2[eth0]: Outgoing Traffic in Bytes per second 012LegendI[eth0]: In: 013LegendO[eth0]: Out: 014Title[eth0]: Traffic Analysis for : eth0 015PageTop[eth0]: <h1>Traffic Analysis for : eth0</h1> 016#----------------end eth0---------------
Il faut dans un premier temps faire un p'tit script /etc/mrtg/pinghost.sh
Script avec 1 ligne
001vi /etc/mrtg/pinghost.sh
Script avec 6 lignes
001#!/bin/sh 002P=`ping -c3 -q $1|grep avg|cut -d" " -f4` 003MIN=`echo $P|cut -d"/" -f1` 004MAX=`echo $P|cut -d"/" -f2` 005echo $MAX 006echo $MIN
On passe au fichier les droits d'execution pour l'utilisateur
Script avec 1 ligne
001chmod u+x /etc/mrtg/pinghost.sh
On peut maintenant y faire appel depuis MRTG
Créer le fichier de conf qui va bien /etc/mrtg/pinghost.cfg
Script avec 1 ligne
001vi /etc/mrtg/pinghost.cfg
Script avec 18 lignes
001#---------Ping HOSTEUR-------------------- 002WorkDir: /var/www/mrtg 003Target[ping_zw3b]: `/etc/mrtg/pinghost.sh 217.16.4.49` 004Options[ping_zw3b]: nopercent,growright,gauge,noinfo, nobanner 005MaxBytes[ping_zw3b]: 10000 006AbsMax[ping_zw3b]: 10000 007YLegend[ping_zw3b]: Latence 008ShortLegend[ping_zw3b]: ms 009Legend1[ping_zw3b]: Latence max en ms 010Legend2[ping_zw3b]: Latence min en ms 011LegendI[ping_zw3b]: Latence Max: 012LegendO[ping_zw3b]: Latence Min: 013Title[ping_zw3b]: Ping sur www.zw3b.fr 014PageTop[ping_zw3b]: <h1>Latence www.zw3b.fr</h1> 015WithPeak[ping_zw3b]:wmy 016Legend4[ping_zw3b]: Max de la latence min 017Legend3[ping_zw3b]: Max de la latence max 018#--------end ping-----------------------------
Créer le fichier de conf qui va bien /etc/mrtg/cpu.cfg
Script avec 1 ligne
001vi /etc/mrtg/cpu.cfg
Script avec 18 lignes
001WorkDir: /var/www/mrtg 002LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt 003Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ 004ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1 005RouterUptime[localhost.cpu]: public@127.0.0.1 006MaxBytes[localhost.cpu]: 100 007Title[localhost.cpu]: CPU Load 008PageTop[localhost.cpu]: Active CPU Load % 009Unscaled[localhost.cpu]: ymwd 010ShortLegend[localhost.cpu]: % 011YLegend[localhost.cpu]: CPU Utilization 012Legend1[localhost.cpu]: Active CPU in % (Load) 013Legend2[localhost.cpu]: 014Legend3[localhost.cpu]: 015Legend4[localhost.cpu]: 016LegendI[localhost.cpu]: Active 017LegendO[localhost.cpu]: 018Options[localhost.cpu]: growright,nopercent
Créer le fichier de conf qui va bien /etc/mrtg/mem.cfg
Script avec 1 ligne
001vi /etc/mrtg/mem.cfg
Script avec 13 lignes
001LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt 002Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost 003PageTop[localhost.mem]:Free Memory 004WorkDir: /var/www/mrtg 005Options[localhost.mem]: nopercent,growright,gauge,noinfo 006Title[localhost.mem]: Free Memory 007MaxBytes[localhost.mem]: 1000000 008kMG[localhost.mem]: k,M,G,T,P,X 009YLegend[localhost.mem]: bytes 010ShortLegend[localhost.mem]: bytes 011LegendI[localhost.mem]: Free Memory: 012LegendO[localhost.mem]: 013Legend1[localhost.mem]: Free memory, not including swap, in bytes
Créer le fichier de conf qui va bien /etc/mrtg/memfree.cfg
Script avec 1 ligne
001vi /etc/mrtg/memfree.cfg
Script avec 13 lignes
001LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt 002Target[server.memory]: memAvailReal.0&memTotalReal.0:public@localhost 003Title[server.memory]: Free Memory 004PageTop[server.memory]: < H1 >Free Memory< /H1 > 005MaxBytes[server.memory]: 100000000000 006ShortLegend[server.memory]: B 007YLegend[server.memory]: Bytes 008LegendI[server.memory]: Free 009LegendO[server.memory]: Total 010Legend1[server.memory]: Free memory, not including swap, in bytes 011Legend2[server.memory]: Total memory 012Options[server.memory]: gauge,growright,nopercent 013kMG[server.memory]: k,M,G,T,P,X
Créer le fichier de conf qui va bien /etc/mrtg/mempercent.cfg
Script avec 1 ligne
001vi /etc/mrtg/mempercent.cfg
Script avec 13 lignes
001LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt 002Title[server.mempercent]: Percentage Free Memory 003PageTop[server.mempercent]: < H1 >Percentage Free Memory< /H1 > 004Target[server.mempercent]: ( memAvailReal.0&memAvailReal.0:publicy@localhost ) * 100 / ( memTotalReal.0&memTotalReal.0:public@localhost ) 005options[server.mempercent]: growright,gauge,transparent,nopercent 006Unscaled[server.mempercent]: ymwd 007MaxBytes[server.mempercent]: 100 008YLegend[server.mempercent]: Memory % 009ShortLegend[server.mempercent]: Percent 010LegendI[server.mempercent]: Free 011LegendO[server.mempercent]: Free 012Legend1[server.mempercent]: Percentage Free Memory 013Legend2[server.mempercent]: Percentage Free Memory
Créer le fichier de conf qui va bien /etc/mrtg/disk.cfg
Script avec 1 ligne
001vi /etc/mrtg/disk.cfg
Script avec 11 lignes
001LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt 002Target[server.disk]: dskPercent.1&dskPercent.2:public@localhost 003Title[server.disk]: Disk Partition Usage 004PageTop[server.disk]: < H1 >Disk Partition Usage /home and /var< /H1 > 005MaxBytes[server.disk]: 100 006ShortLegend[server.disk]: % 007YLegend[server.disk]: Utilization 008LegendI[server.disk]: /home 009LegendO[server.disk]: /var 010Options[server.disk]: gauge,growright,nopercent 011Unscaled[server.disk]: ymwd
Script avec 7 lignes
001echo $'#!/bin/shn/usr/bin/mrtg /etc/mrtg/packets-in-out.cfg' > /etc/cron.mrtg/packets-in-out 002echo $'#!/bin/shn/usr/bin/mrtg /etc/mrtg/pinghost.cfg' > /etc/cron.mrtg/pinghost 003echo $'#!/bin/shn/usr/bin/mrtg /etc/mrtg/cpu.cfg' > /etc/cron.mrtg/cpu 004echo $'#!/bin/shn/usr/bin/mrtg /etc/mrtg/mem.cfg' > /etc/cron.mrtg/mem 005echo $'#!/bin/shn/usr/bin/mrtg /etc/mrtg/memfree.cfg' > /etc/cron.mrtg/memfree 006echo $'#!/bin/shn/usr/bin/mrtg /etc/mrtg/mempercent.cfg' > /etc/cron.mrtg/mempercent 007echo $'#!/bin/shn/usr/bin/mrtg /etc/mrtg/disk.cfg' > /etc/cron.mrtg/disk
Script avec 11 lignes
001#/usr/bin/indexmaker --output=/var/www/mrtg/cpu-mem/index.html 002--title="Memory and CPU Usage" 003--sort=name 004--enumerate 005/etc/cron.mrtg/cpu 006/etc/cron.mrtg/mem 007/etc/cron.mrtg/memfree 008/etc/cron.mrtg/mempercent 009/etc/cron.mrtg/disk 010--columns=2 011--nolegend
Script avec 8 lignes
001#/usr/bin/indexmaker --output=/var/www/mrtg/networks/index.html 002--title="Networks Traffic" 003--sort=name 004--enumerate 005/etc/cron.mrtg//packets-in-out 006/etc/cron.mrtg/pinghost 007--columns=2 008--nolegend
L'option --columns=2 indique qu'on affiche 2 graphiques par ligne
L'option --nolegend indique qu'on affiche pas le bas de page publicitaire de MRTG
mrtg.cfg
Script avec 4 lignes
001#cfgmaker "global "WorkDir: /var/www/mrtg/" 002--global "Options[_]: growright,bits" 003--ifref=ip 004public@localhost > /etc/mrtg.conf
Script avec 2 lignes
001cat >> /var/spool/cron/crontabs/root 002*/5 * * * * /bin/run-parts /etc/cron.mrtg 1> /dev/null
MRTG nous permet de diagnostiquer des équipements réseau afin d'assurer la pérennité d'un réseau, tels que :
Il permet de faire de la surveillance sur un réseau afin de créer des statistiques. Un de ses avantages, c'est qu'il est gratuit. Cependant MRTG présente certains inconvénients :
Il existe un autre outil de monitoring réseau appelé RRDTOOL , toujours développé par Tobias Oetiker lancé en 1997. Il présente quelques améliorations par rapport à MRTG :
Néanmoins comme avec MRTG, les pages HTML ne sont pas intégrées au logiciel.