Vous êtes : Accueil / Tutoriaux / Préparation et installation de MRTG

Préparation et installation de MRTG

Rédigé le 26/12/2005 par Fabrice

Introduction

Avant d'installer MRTG, plusieurs étapes sont nécessaires :

Installation de SNMP

Pour pouvoir utiliser MRTG, la première étape consiste à installer SNMP (Simple Network Management Protocol) non seulement sur la machine sur laquelle sera installée MRTG mais également sur les stations/serveurs que l’on souhaite superviser.
Pour cela, aller dans :

Panneau de configuration > Ajout/Suppression de programmes > Ajouter/Supprimer des composants Windows


 
Descendre sur Outils de gestion et d’analyse et cliquer sur Détails

L´image « http://www.touslesreseaux.com/images/dossier/mrtg/2.png » ne peut être affichée, car elle contient des erreurs.

Sélectionner SNMP et cliquer sur OK 2 fois.
L’installation de SNMP est achevée.


Installation d'ActivePERL

Afin d’utiliser MRTG pour superviser des stations/serveurs, il est nécessaire de vérifier au préalable si la dernière version de PERL est installée sur la machine.
Si PERL n’est pas installé sur la machine, il est possible de le télécharger (ActivePerl) sur le site http://www.activestate.com/

Sur le site, dans la section Downloads, cliquer sur «ActivePerl Download ».
Choisir ensuite le fichier appropié à télécharger.

L´image « http://www.touslesreseaux.com/images/dossier/mrtg/3.png » ne peut être affichée, car elle contient des erreurs.

La version AS Package est une version ne disposant pas de la fonctionnalité « Suppression de Programmes » dans le panneau de configuration. Cette version est recommandée uniquement si la version MSI ne peut être installée.

Une fois télécharger, lancer le fichier d installation :

- Cliquer sur Next

L´image « http://www.touslesreseaux.com/images/dossier/mrtg/4.png » ne peut être affichée, car elle contient des erreurs.


- Accepter les termes de la licence



- Choisir un répertoire. ex: C:/Perl



- selectionner les options suivantes



- Cliquer sur Install

 


- Ensuite cliquer sur Finish



- S’assurer que le path soit installé correctement



- Cliquer sur variables d’environnement





si C:/Perl/bin est absent dans la variable système path, cliquer sur Modifier et ajouter C:Perlin; en début de ligne de la manière représentée ci-dessous et ensuite cliquer OK deux fois de suite pour fermer la fenêtre des variables d’environnement.



Installation de SNMP4W2K

Il est nécessaire d installer les agents (des Mibs) qui permettront d’interroger des interfaces (ex: le processeur, le disque dur, la mémoire physique, etc.)
Pour un serveur Windows 2000, il faut installer le package SNMP4W2K qui contient un grand nombre d’agents.
SNMP4W2K est à télécharger sur http://www.wtcs.org/snmp4tpc/default.htm
Une fois installé, il n’est pas nécessaire de redémarrer le serveur.


Installation de GetIf

GetIf est un outil gratuit très utile dans le monitoring de serveurs distants. En effet, à l aide de GetIf, il est plus aisé de retrouver les OID des interfaces que l’on souhaite superviser.
Télécharger GetIf sur ftp://ftp.devparadise.com/getif.zip
Remarque : Il est important de supprimer le fichier .index situé dans le répertoire /GetIf/Mibs à chaque fois qu’on souhaite le lancer.





Il existe un bug sur Getif 2.2 : En effet, si on ne supprime pas le fichier .index avant de lancer l application, on constate que Getif ne reconnaît plus un grand nombre d’OID donc le monitoring est impossible. Voir l exemple ci-dessous:

- Getif : sans la suppression du .index



- Ouverture de Getif après la suppression du .index
(on constate que Getif peut effectuer des requêtes sur un plus grand nombre d’OID)



- exemple d’utilisation :

Nous souhaitons récupérer la mémoire physique (RAM) disponible sur un serveur.

1ère étape : après avoir lancé Getif, saisir l’IP du serveur à superviser puis cliquer sur Start



2ème étape : cliquer sur l’onglet Mbrowser et saisir l’OID correspondant (pour la valeur de la RAM disponible en Mo sur un serveur Windows 2000, il s’agit de l OID .1.3.6.1.4.1.311.1.1.3.1.1.1.30.0)



Pour plus d’information sur l’utilisation de Getif, se rendre sur le site :
http://www.wtcs.org/snmp4tpc/getif.htm


Installation et configuration de MRTG

- Télécharger la dernière version de MRTG (ex: 2.9.29) sur le site : http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/
- Installer MRTG sur C: en décompressant le fichier téléchargé.
- Renommer le répertoire mrtg-2.9.29 en mrtg
- Créer d’un répertoire mrtg_html sur C:
Ce répertoire contiendra toutes les pages HTML générées par les fichiers de configuration.
- pour superviser les interfaces réseaux des serveurs distants :
en ligne de commande, aller dans le répertoire C:mrtgin> et taper :

perl cfgmaker public@10.x.x.x --global “WorkDir: C:mrtg_html” –output nom_serveur.cfg

A ce stade, le fichier nom_serveur.cfg a été créé et on le retrouve dans le répertoire C:/mrtg/bin (ce répertoire doit contenir tous les fichiers de configuration) :

### Interface 16777219 >> Descr: 'Network-Teaming-Intermediate-Driver-(NTID)' | Name: '' | Ip: '10.x.x.x' | Eth: '00-08-02-f1-48-cd' ###

Target[10.x.x.x_16777219]: 16777219:public@10.x.x.x:
SetEnv[10.x.x.x_16777219]:MRTG_INT_IP="10.x.x.x" MRTG_INT_DESCR="Network-Teaming-Intermediate-Driver-(NTID)"
MaxBytes[10.x.x.x_16777219]: 100000000
Title[10.x.x.x_16777219]: Traffic Analysis for 16777219 -- nom_serveur
PageTop[10.x.x.x_16777219]: <H1>Traffic Analysis for 16777219 -- nom_serveur</H1>
  <TABLE>
    <TR><TD>System:</TD> <TD>APRT5A in </TD></TR>
    <TR><TD>Maintainer:</TD> <TD></TD></TR>
    <TR><TD>Description:</TD><TD>Network-Teaming-Intermediate-Driver-(NTID)     </TD></TR>
    <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
    <TR><TD>ifName:</TD> <TD></TD></TR>
    <TR><TD>Max Speed:</TD> <TD>100 MBytes/s</TD></TR>
    <TR><TD>Ip:</TD> <TD>10.x.x.x (nomserveur.domain)</TD></TR>
  </TABLE>

WorkDir: c:mrtg_html


Remarque: Ceci est un extrait du fichier nom_serveur.cfg qui contient un grand nombre de commentaires (toutes les lignes de commande précédées d’un #)

- une fois les fichiers de configuration créés, pour générer des graphes à l aide de MRTG, taper :

c:mrtgin>perl mrtg nomserveur.cfg


Un fichier .html contenant des graphes générés par MRTG est alors créé dans le répertoire C:mrtg_html
Taper toutes les 5 minutes (intervalle de temps par défaut) cette même commande PERL pour observer l évolution du graphe.
Pour ne pas avoir à lancer le script PERL manuellement toutes les 5 minutes, il est possible de lancer ce script en Daemon en ajoutant au début de chaque fichier de configuration les 2 lignes suivantes :

RunAsDaemon: Yes
Interval: 5



Analyse d’un fichier de configuration

Pour interroger une interface à l’aide de MRTG (carte Ethernet, CPU, processeur, etc.), nous devons créer un fichier de configuration (extension : .cfg) dans le répertoire c:/mrtg/bin à l’aide d’un éditeur de texte tel que Notepad (Bloc-notes)
Voici le fichier de configuration créé précédemment :

Exemple 1 – fichier de configuration pour interroger une carte Ethernet:

### Interface 16777219 >> Descr: 'Intel-8255x-based-Integrated-Fast-Ethernet'
| Name: '' | Ip: '10.x.x.x' | Eth: '00-08-02-4e-84-ac' ###

Target[serveur_16777219]: 16777219:public@serveur:
SetEnv[serveur_16777219]:MRTG_INT_IP="10.x.x.x" MRTG_INT_DESCR="Intel-8255x-based-Integrated-Fast-Ethernet"
MaxBytes[serveur_16777219]: 12500000
Title[serveur_16777219]: Traffic Analysis
PageTop[serveur_16777219]: <H1>serveur - Analyse du trafic</H1>
  <TABLE>
    <TR><TD>System:</TD> <TD>serveur in </TD></TR>
    <TR><TD>Maintainer:</TD> <TD>Administrateur</TD></TR>
    <TR><TD>Description:</TD><TD>Intel-8255x-based-Integrated-Fast-Ethernet     </TD></TR>
    <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
    <TR><TD>Max Speed:</TD> <TD>12.5 MBytes/s</TD></TR>
    <TR><TD>Ip:</TD> <TD>10.x.x.x (serveur.domain)</TD></TR>
  </TABLE>

WorkDir: C:mrtg_html


Attention bien respecter l'espace juste avant chaque balise, dans le cas contraire, le fichier .cfg renverra une erreur tel le fichier suivant ou les espaces ne sont pas respectés:

Target[serveur_16777219]: 16777219:public@serveur:
SetEnv[serveur_16777219]:MRTG_INT_IP="10.x.x.x" MRTG_INT_DESCR="Intel-8255x-based-Integrated-Fast-Ethernet"
MaxBytes[serveur_16777219]: 12500000
Title[serveur_16777219]: Traffic Analysis
PageTop[serveur_16777219]: <H1>serveur - Analyse du trafic</H1>
<TABLE>
<TR><TD>System:</TD> <TD>serveur in </TD></TR>
<TR><TD>Maintainer:</TD> <TD>Administrateur</TD></TR>
<TR><TD>Description:</TD><TD>Intel-8255x-based-Integrated-Fast-Ethernet </TD></TR>
<TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
<TR><TD>Max Speed:</TD> <TD>12.5 MBytes/s</TD></TR>
<TR><TD>Ip:</TD> <TD>10.x.x.x (serveur.domain)</TD></TR>
</TABLE>


Exemple 2 – fichier de configuration pour interroger un Processeur:

WorkDir: C:mrtg_html

### CPU Utilization

Target[serveur_cpu]:.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48&
.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48:public@serveur
AbsMax[serveur_cpu]: 100
MaxBytes[serveur_cpu]: 100
Title[serveur_cpu]: CPU Utilization (average)
PageTop[serveur_cpu]: <H1>serveur - Utilisation CPU </H1>
  <TABLE>
    <TR><TD>System:</TD> <TD>serveur </TD></TR>
    <TR><TD>Maintainer:</TD> <TD>Administrateur     </TD></TR>
    <TR><TD>Max Value:</TD> <TD>100 %</TD></TR>
    <TR><TD>Ip:</TD> <TD>10.x.x.x (serveur.domain)</TD></TR>
  </TABLE>
Options[serveur_cpu]: gauge,nopercent, noo,
YLegend[serveur_cpu]: Utilisation CPU (%)
ShortLegend[serveur_cpu]: %
LegendI[serveur_cpu]:&nbsp;CPU Utilization (percentage)&nbsp


Commentaires:

### Interface 16777219 >> Descr: 'Intel-8255x-based-Integrated-Fast-Ethernet' | Name: ''
Toutes les lignes commençant par # sont des lignes de commentaires
Les lignes suivantes commencent toutes ainsi :
Commande_MRTG(Target,SetEnv,MaxBytes,Title,etc.) et entre crochets, un nom qui permettra de nommer les fichiers générés par MRTG

- Target : indique la cible (l interface) à superviser
Sur cette ligne de commande, on doit saisir l’OID de la cible de part et d autre du &.
La raison pour laquelle on doit indiquer deux OID de part et d’autre du & vient du fait que MRTG trace par défaut 2 courbes sur le même graphe.
S’il l on interroge qu’une interface, l OID doit être le même de part et d’autre du &
Il est possible d avoir deux OID différents : par exemple, sur un bi-processeur, chaque CPU a son OID propre :
Target[serveur_cpu]:.1.3.6.1.2.1.25.3.3.1.2.1&.1.3.6.1.2.1.25.3.3.1.2.2:public@serveur

- MaxBytes : indique la borne maximum qui pourra etre atteinte par le graphique

- Title : indique le titre à donner à la page HTML générée par MRTG.

- PageTop : Le code HTML qui se trouve en dessous de cette commande sera insérée en haut de page


Intervalle de temps

Par défaut, MRTG effectue des requetes toutes les 5 minutes mais il est possible de modifier cette valeur. Pour cela, ouvrir le fichier : C:mrtglinmrtg2MRTG_lib.pm

Repérer et modifier cette partie de code :

# default interval is 5 minutes
$$cfg{interval} = 5 unless defined $$cfg{interval};
unless ($$cfg{logformat} eq 'rrdtool') {
# interval has to be 5 minutes at least without userrdtool
if ($$cfg{interval} < 5) {
die "ERROR: CFG Error in "Interval": should be at least 5 Minutes (unless you use rrdtool)";
}
}



Pour obtenir une interrogation de MRTG toutes les minutes, modifier le fichier ainsi:

# default interval is 5 minutes
$$cfg{interval} = 5 unless defined $$cfg{interval};
unless ($$cfg{logformat} eq 'rrdtool') {
# interval has to be 5 minutes at least without userrdtool
if ($$cfg{interval} < 1) {
die "ERROR: CFG Error in "Interval": should be at least 5 Minutes (unless you use rrdtool)";
}
}



Modifier les dimensions des graphes

Dans le fichier C:mrtglinmrtg2MRTG_lib.pm, repérer et modifier cette partie du code :

set default size
if (! defined $$rcfg{"xsize"}{$rou}) {
$$rcfg{"xsize"}{$rou}=400;
}
if (! defined $$rcfg{"ysize"}{$rou}) {
$$rcfg{"ysize"}{$rou}=100;
}
if (! defined $$rcfg{"ytics"}{$rou}) {
$$rcfg{"ytics"}{$rou}=4;
}
if (! defined $$rcfg{"yticsfactor"}{$rou}) {
$$rcfg{"yticsfactor"}{$rou}=1;
}
if (! defined $$rcfg{"factor"}{$rou}) {
$$rcfg{"factor"}{$rou}=1;
}



modifications:

set default size
if (! defined $$rcfg{"xsize"}{$rou}) {
$$rcfg{"xsize"}{$rou}=500;
}
if (! defined $$rcfg{"ysize"}{$rou}) {
$$rcfg{"ysize"}{$rou}=125;
}
if (! defined $$rcfg{"ytics"}{$rou}) {
$$rcfg{"ytics"}{$rou}=4;
}
if (! defined $$rcfg{"yticsfactor"}{$rou}) {
$$rcfg{"yticsfactor"}{$rou}=1;
}
if (! defined $$rcfg{"factor"}{$rou}) {
$$rcfg{"factor"}{$rou}=1;
}




Analyse d’un CPU

L’OID du CPU d’une machine sous Windows 2000 est : .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48
Le fichier de configuration pour superviser un CPU d’un serveur distant doit être de la forme :

htmldir: c:mrtg_html
imagedir: c:mrtg_htmlimages
logdir: c:mrtg_htmllog
Language: french
#RunAsDaemon: Yes
#Interval: 1

### CPU Utilisation

Target[APRT5A_cpu1]:.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48&
.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48:public@APRT5A
MaxBytes[APRT5A_cpu1]: 100
Title[APRT5A_cpu1]: CPU Utilization (average)
PageTop[APRT5A_cpu1]: <H1>APRT5A - Utilisation CPU (%)</H1>
<TABLE>
<TR><TD>System:</TD> <TD>APRT5A </TD></TR>
<TR><TD>Maintainer:</TD> <TD>Administrateur </TD></TR>
<TR><TD>Max Value:</TD> <TD>100 %</TD></TR>
<TR><TD>Ip:</TD> <TD>10.x.x.x (APRT5A.domain)</TD></TR>
</TABLE>
Options[APRT5A_cpu1]: gauge,nopercent, noo,
YLegend[APRT5A_cpu1]: Utilisation CPU (%)
ShortLegend[APRT5A_cpu1]: %
Colours[APRT5A_cpu1]: GREEN#00eb0c,BLUE#1000ff,BLUE#1000ff,VIOLET#ff00ff
Legend1[APRT5A_cpu1]:&nbsp;CPU Utilisation
LegendI[APRT5A_cpu1]:&nbsp;CPU Utilisation (percentage)&nbsp


La valeur renvoyée par une requête SNMP sur cet OID est un pourcentage. Il s’agit de la charge CPU.

Remarque : Perl prend en compte des espaces entre les balises HTML. En effet, pour ne pas avoir de message d erreur lorsque l on lance le script, il faut qu il y ait impérativement un espace entre le bord de la fenêtre du fichier de configuration, et les balises HTML :

Exemple :
Reprenons le même fichier de configuration que celui décrit précédemment mais supprimons l espace entre les balises <TABLE> et </TABLE>

htmldir: c:mrtg_html
imagedir: c:mrtg_htmlimages
logdir: c:mrtg_htmllog
Language: french
#RunAsDaemon: Yes
#Interval: 1

### CPU Utilisation

Target[APRT5A_cpu1]:.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48&
.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48:public@APRT5A
MaxBytes[APRT5A_cpu1]: 100
Title[APRT5A_cpu1]: CPU Utilization (average)
PageTop[APRT5A_cpu1]: <H1>APRT5A - Utilisation CPU (%)</H1>
<TABLE>
<TR><TD>System:</TD> <TD>APRT5A </TD></TR>
<TR><TD>Maintainer:</TD> <TD>Administrateur </TD></TR>
<TR><TD>Max Value:</TD> <TD>100 %</TD></TR>
<TR><TD>Ip:</TD> <TD>10.x.x.x (APRT5A.domain)</TD></TR>
</TABLE>
Options[APRT5A_cpu1]: gauge,nopercent, noo,
YLegend[APRT5A_cpu1]: Utilisation CPU (%)
ShortLegend[APRT5A_cpu1]: %
Colours[APRT5A_cpu1]: GREEN#00eb0c,BLUE#1000ff,BLUE#1000ff,VIOLET#ff00ff
Legend1[APRT5A_cpu1]:&nbsp;CPU Utilisation
LegendI[APRT5A_cpu1]:&nbsp;CPU Utilisation (percentage)&nbsp



Si on lance le script à l aide de la commande PERL :

C:mrtgin> perl mrtg nomserveur.cfg



pour éviter ce message d’erreur, faire attention à ce que le fichier de configuration soit de la forme :

Target[APRT5A_cpu1]:.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48&
.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48:public@APRT5A
MaxBytes[APRT5A_cpu1]: 100
Title[APRT5A_cpu1]: CPU Utilization (average)
PageTop[APRT5A_cpu1]: <H1>APRT5A - Utilisation CPU (%)</H1>
    <TABLE>
      <TR><TD>System:</TD> <TD>APRT5A </TD></TR>
      <TR><TD>Maintainer:</TD> <TD>Administrateur </TD></TR>
      <TR><TD>Max Value:</TD> <TD>100 %</TD></TR>
      <TR><TD>Ip:</TD> <TD>10.x.x.x (APRT5A.domain)</TD></TR>
    </TABLE>
Options[APRT5A_cpu1]: gauge,nopercent, noo,
YLegend[APRT5A_cpu1]: Utilisation CPU (%)
ShortLegend[APRT5A_cpu1]: %
Colours[APRT5A_cpu1]: GREEN#00eb0c,BLUE#1000ff,BLUE#1000ff,VIOLET#ff00ff
Legend1[APRT5A_cpu1]:&nbsp;CPU Utilisation
LegendI[APRT5A_cpu1]:&nbsp;CPU Utilisation (percentage)&nbsp



Analyse de la RAM

Pour analyser la mémoire physique d’un serveur Windows 2000, utiliser l OID .1.3.6.1.4.1.311.1.1.3.1.1.1.30.0 (cet OID renvoie la valeur de la mémoire physique disponible en Mo)

Exemple de fichier de configuration pour superviser la RAM :

htmldir: c:mrtg_html
imagedir: c:mrtg_htmlimages
logdir: c:mrtg_htmllog
Language: french
RunAsDaemon: Yes
Interval: 1

### Quantité de RAM disponible

Target[serveur_RAM]:.1.3.6.1.4.1.311.1.1.3.1.1.1.30.0&.1.3.6.1.4.1.311.1.1.3.1.1.1.30.0:public@serveur
MaxBytes[serveur_RAM]: 2048
YLegend[serveur_RAM]: mémoire disponible (Mo)
ShortLegend[serveur_RAM]: Mo
Colours[serveur_RAM]: GREEN#00eb0c,BLUE#1000ff,BLUE#1000ff,VIOLET#ff00ff
Legend1[serveur_RAM]: Free Memory
Legend2[serveur_RAM]:
Legend3[serveur_RAM]:
Legend4[serveur_RAM]:
LegendI[serveur_RAM]: Free Mem:
LegendO[serveur_RAM]:
Title[serveur_RAM]: mémoire physique
PageTop[serveur_RAM]: <H1>serveur - Mémoire physique disponible</H1>
<TABLE>
<TR><TD>System:</TD> <TD>serveur </TD></TR>
<TR><TD>Maintainer:</TD> <TD>Administrateur </TD></TR>
<TR><TD>Memory size:</TD> <TD>2048 Mo</TD></TR>
<TR><TD>Ip:</TD> <TD>10.x.x.x (serveur.domain)</TD></TR>
</TABLE>
Options[serveur_RAM]: gauge, unknaszero



Remarque : Dans le fichier de configuration, la valeur maximum de la mémoire physique disponible (ici 2048) doit être en Mo si l OID renvoie une valeur en Mo (en ko si l OID renvoie une valeur en ko, etc…)

.1.3.6.1.4.1.311.1.1.3.1.1.1.2.0 renvoie la quantité de RAM disponible en octet
.1.3.6.1.4.1.311.1.1.3.1.1.1.29.0 renvoie la quantité de RAM disponible en ko
.1.3.6.1.4.1.311.1.1.3.1.1.1.30.0 renvoie la quantité de RAM disponible en Mo.