ZW3B :-: API Client * Contents * Docs by LAB3W.ORJ

Translate this page

Name : BETA-TESTERS

Project name : ZW3B-API-BETA-TESTERS

Authorized. - 200 - Client API Name and Origin Wildcard OK

¿Comment? 'Ou' ¿Que faire?, OS GNU/Linux, Réseaux, MRTG : supervision réseau via le protocole SNMP

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.

Author : O.Romain.Jaillet-ramey

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.

SNMP : Simple Network Management Protocol

Installer SNMP

Script avec 2 lignes

001aptitude update
002aptitude install snmp
Retirer les numéros de lignes

Editer le fichier /etc/snmp/snmpd.conf

Script avec 1 ligne

001vi /etc/snmp/snmpd.conf
Retirer les numéros de lignes

Script avec 2 lignes

001#com2sec paranoid  default         public
002com2sec readonly  default         public
Retirer les numéros de lignes

puis redémarer le service

Script avec 1 ligne

001/etc/init.d/snmpd restart
Retirer les numéros de lignes

MRTG : Multi Routeur Traffic Graph

Installer MRTG

Script avec 1 ligne

001aptitude install mrtg
Retirer les numéros de lignes
Créer le fichier de configuration par défaut de MRTG

Script avec 1 ligne

001cfgmaker public@127.0.0.1 --global 'Language: French'  > /etc/mrtg.cfg
Retirer les numéros de lignes
Parcourir le fichier /etc/mrtg.conf (je vous ai mis quelques options avec commentaire)

Script avec 1 ligne

001cat /etc/mrtg.conf
Retirer les numéros de lignes

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
Retirer les numéros de lignes
Tester la génération des graphs

Script avec 1 ligne

001indexmaker --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Retirer les numéros de lignes
Ajouter à la crontab

Script avec 1 ligne

001crontab -e
Retirer les numéros de lignes

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
Retirer les numéros de lignes

Graphique sur les paquets reçus et envoyés

Créer le fichier de conf qui va bien /etc/mrtg/packets-in-out.cfg

MTRG ZW3B Traffic Analytics YEAR

Script avec 1 ligne

001vi /etc/mrtg/packets-in-out.cfg
Retirer les numéros de lignes

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---------------
Retirer les numéros de lignes

Temps de latence

Il faut dans un premier temps faire un p'tit script /etc/mrtg/pinghost.sh

Script avec 1 ligne

001vi /etc/mrtg/pinghost.sh
Retirer les numéros de lignes

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
Retirer les numéros de lignes

On passe au fichier les droits d'execution pour l'utilisateur

Script avec 1 ligne

001chmod u+x /etc/mrtg/pinghost.sh
Retirer les numéros de lignes

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
Retirer les numéros de lignes

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-----------------------------
Retirer les numéros de lignes

CPU

Créer le fichier de conf qui va bien /etc/mrtg/cpu.cfg

MTRG ZW3B CPU YEAR

Script avec 1 ligne

001vi /etc/mrtg/cpu.cfg
Retirer les numéros de lignes

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
Retirer les numéros de lignes

Memory Usage

Créer le fichier de conf qui va bien /etc/mrtg/mem.cfg

Script avec 1 ligne

001vi /etc/mrtg/mem.cfg
Retirer les numéros de lignes

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
Retirer les numéros de lignes

Memory Monitoring (Total Versus Available Memory)

Créer le fichier de conf qui va bien /etc/mrtg/memfree.cfg

Script avec 1 ligne

001vi /etc/mrtg/memfree.cfg
Retirer les numéros de lignes

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
Retirer les numéros de lignes

Memory Monitoring (Percentage usage)

Créer le fichier de conf qui va bien /etc/mrtg/mempercent.cfg

Script avec 1 ligne

001vi /etc/mrtg/mempercent.cfg
Retirer les numéros de lignes

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
Retirer les numéros de lignes

Disk Usage

MTRG ZW3B Disk Month

Créer le fichier de conf qui va bien /etc/mrtg/disk.cfg

Script avec 1 ligne

001vi /etc/mrtg/disk.cfg
Retirer les numéros de lignes

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
Retirer les numéros de lignes

Création des tâches à planifiées

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
Retirer les numéros de lignes

Générer les fichiers Index

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
Retirer les numéros de lignes

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
Retirer les numéros de lignes

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

Générer le fichier 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
Retirer les numéros de lignes

Ajout de la tache planifiée toutes les 5mn

Script avec 2 lignes

001cat >> /var/spool/cron/crontabs/root
002*/5 * * * * /bin/run-parts /etc/cron.mrtg 1> /dev/null
Retirer les numéros de lignes

En bref :

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.