Application professionnel

Transcription

Application professionnel
MALADJIAN Philippe - BAC PRO MRBT - Session 2002
I - Introduction et présentation des protocoles
I.1 - SNMP - Simple Network Management Protocol .................................................... 14
I.2 - MIB - Management Information Base .................................................................. 18
La multiplication des éléments actifs qui composent un réseau, le besoin de gérer les pannes, de
gérer les coûts, font qu’il est important d’avoir des outils permettant de superviser tous ces
éléments et d’intervenir le plus rapidement possible en cas de pannes ou simplement dans le cas
ou un élément serait devenu insuffisant pour pouvoir gérer une certaine charge.
Tout au long de ce dossier je présente le fonctionnement du protocole SNMP (Simple Network
Manager Protocol) ainsi que le logiciel MRTG (Multi Router Traffic Grapher). D’autres logiciels dit «
du monde libre » sont également utilisés :
- Getif 2.2
- Perf2Mib
- Perl 5.0
Pour la réalisation du dossier le système à partir duquel nous interrogeons (SYSOP) fonctionne
sous Windows XP Professionnel, les éléments surveillés sont :
- un routeur Netopia 9100 ADSL (NETOPIA_ADSL)
- une machine Windows XP Pro (SYSOP)
NETOPIA_ADSL a la charge de gérer la connexion Internet ADSL. SYSOP est la machine d’un
administrateur interrogeant les éléments mais qui est elle même surveillée.
Note technique concernant la typographie :
Afin de simplifier la lecture, plusieurs codes typographiques ont été utilisés.
- Titre de chapitre
- Titre de section
- Texte normal
- Code concernant SNMP, MRTG
- légende
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - I - Introduction - Page 14
I.1 - SNMP - Simple Network Management Protocol
Un administrateur système d’un réseau local d’une entreprise, d’un campus, d’une école, administre aussi son réseau. Il le fait sans trop de problèmes mais les difficultés s’amoncellent dès que la
taille du réseau devient importante. La solution est alors de rationaliser, de normaliser les choses.
L’ISO a proposé dans les années 80 la norme CMIS/CMIP (Common Management Information
Service ISO 9595, Common Management Information Protocol ISO 9596) comme protocole d’administration de réseau et définit un cadre général au niveau architecture (ISO 7498).
En parallèle, l’IAB (Internet Activities Board) approuve le protocole SNMP (Simple Network Management Protocol) comme solution à cours terme et CMOT (CMIP Over TCP) à plus long terme. Au
début des années 90, SNMP, plus simple, devient alors standard de fait et est adopté par de
nombreux constructeurs. C’est LE protocole d’administration de réseau IP mais aussi des réseaux
des opérateurs comme pour les réseaux ATM !
Sur chaque équipement administrable s’exécute un programme serveur : l’agent SNMP.
Cet agent gère les informations relatives à l’équipement et sont stockées dans une base de
données propre : la MIB (Management Information Base).
On retrouve : une station d’administration côté client qui interagit avec un ou plusieurs agents
SNMP : le manager SNMP. Le manager est généralement une application possédant une interface
graphique élaborée pour plus de convivialité. On peut citer comme exemple de manager le produit
commercial Openview de HP.
Une base de données (MIB) gérée par chaque agent SNMP et modifiable éventuellement par un
manager SNMP. Les RFC 1156 et 1213 définissent la MIB-I (version 1) puis la MIB-II qui remplace
la précédente, c’est-à-dire les objets que doit gérer tout agent SNMP.
Une structure commune et un système de représentation des objets de la MIB : le SMI (Structure
of Management Information, RFC 1155).
Un protocole d’échange entre manager et agent : le protocole SNMP (RFC 1157). Le protocole
SNMP a évolué pour intégrer les aspects de confidentialité et d’authentification. Seule, la version
1 de SNMP est décrite ici. C’est d’ailleurs la seule version adoptée et utilisé par tous.
Pour fonctionner SNMP ce base sur le protocol UDP qui a pour avantage d'être rapide (8 octets
d'en-tête contre 20 octets pour TCP) malheureusement, UDP fonctionne en mode non connecté
ce qui peut générer des pertes de paquets. SNMP utilise le port UDP 161 pour la commande "get"
et "set" et le port UDP 162 pour les traps.
IP
20o
UDP Version Communauté PDU ID Status
8o
erreur
Index
erreur
OID
Valeur
Schéma d’un paquet SNMPv1 dans le mode Interrogation / modification / réponse
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - I - Introduction - Page 15
Il existe cinq types de requêtes qui peuvent être faites par un gestionnaire :
- GetRequest
requête d'interrogation faite par un gestionnaire à un agent.
- GetNextRequest
requête d'interrogation faite par un gestionnaire à un agent pour obtenir la variable suivante.
- GetBulk
requête d'interrogation faite par un gestionnaire à un agent pour la rechercher d'un groupe
de variables.
- SetRequest
requête de modification faite par un gestionnaire à un agent.
- Trap
message d'erreur envoyé par l'agent, dans ce cas la paquet est structuré de facon differente
(shéma suivant).
Nom du champ
Version
Communauté
PDU
ID
Statut d’erreur
Index d’erreur
OID
Valeur
Description
donne la version du protocole ici 0 = v1
nom de la communauté auquel appartient l’agent
contient les requêtes faites à l’agent
0 = GetRequest : obtenir une variable
1 = GetNextRequest : obtenir la variable suivante
2 = SetRequest : modifier une variable
3 = GetReponse : réponse d'un agent à un gestionnaire
4 = Trap : erreur envoyée par l'agent (voir shéma suivant)
permet de faire la correspondance entre une requête et sa réponse
par défaut il est égal à 0, mais l’agent le modifie au besoin.
0 = NoError
1 = TooBig
2 = NoSurchValue
3 = BadValue
4 = ReadOnly
5 = GenErr
indique la variable en erreur dans le cas d’une erreur de type :
- NoSurchName
- BadValue
- ReadOnly
contient l’OID qui permet l’accès au valeur de l’agent
valeur renvoyée par l'agent
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - I - Introduction - Page 16
IP
UDP
Version
Communauté
20o
8o
Schéma d’un paquet SNMPv1 en mode TRAP
Nom du champ
Version
Communauté
PDU
Entreprise
Adresse agent
Type TRAP
Code spef.
Time Stamping
Variables
PDU Ent. Adresse Type
agent Trap
Code
Time Variables
Spef. Stamping
Description
donne la version du protocole ici 0 = v1
nom de la communauté auquel appartient l’agent
contient les requêtes faites à l’agent
0 = GetRequest
1 = GetNextRequest
2 = SetRequest
3 = GetReponse
4 = Trap
objet causant l’erreur
adresse IP de l’agent
message d’erreur défini par le protocole
0 = coldstart
1 = warmstart
2 = linkdown
3 = linkup
4 = authenticationFailure
5 = egpNeighborLoss
6 = enterpriseSpecific
message d’erreur définit par l’administrateur
indique le temps écoulé depuis l’initialisation de l’élément ou la
denière TRAP envoyée
valeur renvoyée par l’agent
Signification des erreurs TRAP
- coldstart
L’agent se réinitialise et les objets peuvent changer (changement de configuration)
- warmstart
L’agent se réinitialise mais les objets ne sont pas modifiés
(pas de changement de configuration)
- linkdown
Une des interfaces de l’agent n'est plus opréationnelle
- linkup
Une des interfaces de l’agent est à nouveau opérationnelle
- authenticationFailure
Un message SNMP a été reçu d’une entité SNMP et il y a eu un problème d’authentification
en fonction du nom de communauté et des droits d’accès qui lui sont accordés.
- egpNeighborLoss
Un EGP peer (EGP = Exterior Gateway Protocol) est tombé (la première variable dans la liste
variable-bindings contient l’adresse IP).
- enterpriseSpecific
certains événements dépendent de l’agent et ne sont donc pas standardisés, dans ce cas le
numéro du trap est donné dans le champ specific-trap.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - I - Introduction - Page 17
Capture d'une trame générer par MRTG en mode "GET"
Reponse de l'agent
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - I - Introduction - Page 18
I.2 - MIB - Management Information Base
C’est une base de données qui contient toutes les informations mises à disposition par l’agent. Elle
est structurée de façon hiérarchique.
Au moment de l’étude du projet du protocole SNMP il a fallu définir un système évolutif qui permet
à n’importe quelle personne de retrouver une valeur, de là sont nés les MIB. Il est possible pour un
constructeur de demander à l’IANA (Internet Assigned Numbers Authority) une branche ou un
sous arbre de façon à fournir des informations concernant son propre matériel, ce sont les Private
Entrerprise Extensions.
Pour définir le format d'une MIB le choix s'est porté sur le format SMI (Structure of Management
Information), ensuite les données utilisent le format ASN.1 (Abstract Syntax Notation.1)
Schéma de l’arbre principal
ROOT
CCITT
0
JOINT-ISO-CCITT
2
ISO
1
ORG
3
DOD
6
INTERNET
1
DIRECTORY
1
MGMT
2
MIB-2
1
EXPERIMENTAL
3
PRIVATE
4
SECURITY
5
SNMPV2
6
ENTERPRISES
1
Dans notre étude seuls les nœuds "mgmt", "private" nous intéressent. Le nœud "mgmt" comprend tout ce qui concerne la gestion standard des réseaux. Le nœud "private" permet aux constructeurs d’améliorer l’efficacité de SNMP. Dans sa partie du noeud, un constructeur utilise des
identifiants de produit et des définitions MIB nécessaires à son produit.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - I - Introduction - Page 19
Schéma de la branche MGMT
ISO.ORG.INTERNET.MGMT
1.3.6.1.2
MIB-2
1
SYSTEM
1
INTERFACES
2
AT
3
IP ICMP TCP UDP EGP TRANSMISSION SNMP
4
5
6
7
8
10
11
Composition d’un OBJECT ID (OID)
Les OID existent sous la forme textuelle :
- .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
ou alors sous forme de chiffres :
- .1.3.6.1.2.1.1.1.0
Cette OID nous permet de récupérer la description du système :
- Hardware: x86 Family 6 Model 8 Stepping 10 AT/AT COMPATIBLE - Software:
Windows 2000 Version 5.1 (Build 600 Uniprocessor Free)
En étudiant l’OID ci-dessus, la partie « .1.3.6.1.2.1.1.1 » nous donne le chemin d'accès à la
variable et le « .0 » nous donne la variable. Si, par exemple, nous possédions une machine qui
comporte plusieurs interfaces réseaux le dernier chiffre serait incrémenté de un à chaque interface.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - I - Introduction - Page 20
II – Installation du protocole SNMP
II.1 - Installation du protocole SNMP sur Windows Xp pro ........................................... 22
II.2 - Perf2Mib ......................................................................................................... 22
Sur les équipements réseau la gestion du protocole SNMP est intégrée au système d’exploitation
du matériel, en revanche sous Windows et Linux c’est un programme supplémentaire.
II.1 - Installation du protocole SNMP sur Windows Xp pro
Il faut aller dans :
-
« Ajout suppression de programmes »
« Ajouter ou supprimer des composants Windows »
« Outils de gestion et d’analyse »
Sélectionner « SNMP »
II.2 – Perf2Mib
La station SysOp possède Windows XP pro, en faisant une recherche avec comme critère « *.mib
» on trouve un fichier qui se nomme « Perfmon.mib », celui-ci est sensé être la MIB, elle va nous
permettre d’interroger SysOp. Malheureusement non, Microsoft toujours dans le but de tout gérer,
préfère obliger les administrateurs à utiliser le « Moniteur système ». C’est un outil pratique et
fiable mais il impose de s’assoir devant la machine et à se connecter, à moins d’utiliser des outils
de contrôle à distance mais cela devient vite complexe si nous travaillons dans un environnement
qui contient des machines Windows, Unix, Linux et des éléments actifs (routeur, switch). Donc
nous n’allons pas utiliser la MIB fournit par Microsoft, car celle-ci est incomplète, mais celle généré
par Perf2Mib. Après avoir téléchargé le programme à cette adresse : http://snmpboy.msft.net/
pub/perfmib/ il suffit de copier les fichiers "perfmib.ini" et "perfmib.dll" dans le répertoire
"c:\windows\system32\", puis ajouter deux clefs dans la base de registre :
A la clef : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents\
Ajouter une chaîne avec comme nom : PerfAgent
Et valeur : SOFTWARE\Microsoft\PerformanceAgent\CurrentVersion
A la clef : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PerformanceAgent\CurrentVersion\
Ajouter une chaîne avec comme nom : Pathname
Et valeur : %SystemRoot%\System32\perfmib.dll
Pour prendre en compte la nouvelle MIB il faut redémarrer le service SNMP.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - II -Installation du protocole SNMP - Page 23
III – Paramétrage des programmes
III.1
III.2
III.3
III.4
III.5
- Paramétrage du service SNMP sous Windows XP pro ......................................... 25
- Getif .............................................................................................................. 26
- Perl ............................................................................................................... 29
- MRTG - Multi Router Traffic Grapher ................................................................. 30
- IndexMaker .................................................................................................... 36
III.1 - Paramétrage du service SNMP sous Windows XP pro
Il faut aller dans le gestionnaire de service et sélectionner le « Service SNMP »
Dans cette onglet on choisit le mode de
fonctionnement du protocole. Pour des
raisons de sécurité il est conseillé de limiter l‘accès avec une communauté différente de « public » et autoriser seulement la lecture. On peut limiter aussi
en choisissant de quel hôte on autorise
l’interrogation.
Dans cette onglet on paramètre le nom
ou l’email du contact, son emplacement,
et les types de valeurs que l’on souhaite
récupérer.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 26
III.2 – Getif
Getif 2.2, développé par Philippe SIMONET, est un Mib-Browser, la dernière version date de 1998
et n’a malheureusement pas été mise à jour depuis, mais cette outil est pleinement fonctionnel et
disponible gratuitement. Le but d’un Mib-Browser est de permettre le parcours d’une MIB à la
façon de l’explorateur de Windows. Les données se présentent sous forme de répertoires (sections) et de fichiers (variables). Par défaut Getif gère les MIB définit dans les RFC. Nous allons en
rajouter deux, celle de Microsoft générée par Perf2Mib et celle de notre routeur Netopia. Pour cela
il suffit de copier les fichiers "*.mib" dans le répertoire « Mibs » de Getif et de supprimer le fichier
« .index ». Maintenant nous pouvons lancer le programme.
Dans le champ « Host name » (voir écran d'accueil ci-dessous) nous allons entrer l’adresse IP de
SYSOP et dans les champs « Read community » et « Write community » puis mettre le nom de
notre communauté défini dans les paramètres du service SNMP, ici ce sera « ap-bac », il nous
reste plus qu’à cliquer sur le bouton « Start » pour interroger SYSOP.
Le reste des champs a été rempli automatiquement par rapport aux valeurs inscrites dans chaque
variable de la branche « .iso.org.dod.internet.mgmt.mib-2.system ». Getif est surtout
un outil de recherche, on peut parfaitement l’utiliser pour surveiller un élément mais ce n’est pas
son point fort. Pour rechercher une variable il faut aller dans l’onglet « Mbroswer »
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 27
Nous retrouvons l’arborescence défini par le RFC, dans « mgmt » tout ce qui est récupérable sans
avoir besoin de la MIB du fabricant et dans « private » tout ce qui est fourni par le fabricant en plus
des variables de base. Dans le contenu de la branche « private » nous retrouvons nos deux MIB
installées plus haut. « Farallon » est le nom du fabricant Netopia, notre routeur ADSL, ainsi que
Microsoft qui n’est autre que SYSOP. Une fois cela fait, il n’y a qu’à partir à la recherche de notre
variable. Prenons pour exemple la valeur de la mémoire physique utilisée sur SYSOP. Pour voir le
contenu de la MIB il faut cliquer sur les petites croix devant les noms de sections jusqu’à arriver à
la variable : « memoryAvailableBytes ».
Dans la partie haute de cette écran nous avons l’OID textuel et l’OID numérique, celui-ci ne tient
pas compte de la variable, il faut ajouter « .0 » ou 0 est le numéro d’index de la variable. Pour
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 28
récupérer la valeur il faut cliquer sur « Walk » ce qui nous permet de connaître sa valeur, son type
(chaîne de caractère, numérique…). A partir de cette écran nous pouvons éventuellement modifier les valeurs d’une variable, à condition d'avoir l’autorisation.
Je ne détaille pas les autres fonctions de Getif car elle ne concerne pas ce dossier.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 29
III.3 – Perl
Perl est un langage de programmation très présent dans le monde Unix /
Linux et surtout il est intégré complètement dans ces systèmes, ce qui
n’est pas le cas de Windows. Pour combler cette lacune il faut télécharger
le programme ActivePerl édité par la société ActiveStat. L’installation ne
nécessite aucun paramètre particulier, il suffit juste d'être patient !
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 30
III.4 - MRTG - Multi Router Traffic Grapher
C’est un outil distribué gratuitement sur Internet, il existe pour les plateformes Unix / Linux mais
aussi pour Windows, la version actuelle est la 2.9.27. Il permet l’interrogation et la récupération
des variables contenues dans l’OID de l’élément afin de générer un graphique, par exemples :
l’utilisation CPU d’un serveur, l’utilisation d’une interface réseau sur un switch ou un routeur. Par
rapport à d’autres logiciels (Loriot) il ne permet pas l’écriture et la récupération de TRAP, son but
est de surveiller et non d’administrer. Il s’appuie sur le protocole SNMP pour interroger les éléments.
Pour les fichiers de configuration MRTG utilise un langage dit de script, ce qui veux dire que le
fichier est lu du début à la fin. Cela implique que plus le fichier est grand plus le traitement sera
long et consommateur de ressources système.
Ces scripts peuvent être créés à la main à l’aide d’un éditeur de texte (Bloc note ou Vi). On peut
également en générer un de base avec l’utilitaire fournit par MRTG, cfgmaker, qui se trouve dans
le répertoire « \bin ». Le lancement se fait à partir d’une fenêtre MSDOS :
- C:\mrtg\bin\perl cfgmaker [email protected] --output test.cfg
Détaillons la ligne que l’on vient de taper :
- C:\mrtg\bin : est le chemin d’accès au répertoire où est placé le programme cfgmaker.
- perl : nous permet de lancer l’interpréteur perl.
- cfgmaker : est le programme qui génère un fichier de configuration.
- ap-bac : est la communauté à laquelle appartient l’élément que l’on souhaite interroger.
- @ : est un séparateur
- 192.168.5.10 : est l’ip de l’élément que l’on interroge, ici NETOPIA ADSL
- --output test.cfg : est une option qui permet d’écrire dans un fichier le script.
Le fichier que nous avons généré permet de surveiller les interfaces réseaux actives sur notre
routeur. J’ai numéroté les lignes afin de faciliter les commentaires.
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
: # WorkDir: /home/http/mrtg
:### Interface 2 "Descr: ‘Eth1’ | Name: ‘’ | Ip: ‘’ | Eth: ’00-00-c5-82-66-06'"
:
: Target[192.168.5.10_2]: 2:[email protected]:
: SetEnv[192.168.5.10_2]: MRTG_INT_IP="MRTG_INT_DESCR="Eth1""
: MaxBytes[192.168.5.10_2]: 1250000
: Title[192.168.5.10_2]: Traffic Analysis for 2 - Netopia ADSL
: PageTop[192.168.5.10_2]: <H1>Traffic Analysis for 2 - Netopia ADSL</H1>
: <TABLE>
:
<TR><TD>System:</TD>
<TD>Netopia ADSL</TD></TR>
:
<TR><TD>Maintainer:</TD> <TD>[email protected]</TD></TR>
:
<TR><TD>Description:</TD><TD>Eth1 </TD></TR>
:
<TR><TD>ifType:</TD>
<TD>ethernetCsmacd (6)</TD></TR>
:
<TR><TD>ifName:</TD>
<TD></TD></TR>
:
<TR><TD>Max Speed:</TD> <TD>1250.0 kBytes/s</TD></TR>
: </TABLE>
017
018
019
020
021
022
023
024
025
026
027
:
:
:
:
:
:
:
:
:
:
:
### Interface 3 >> Descr: ‘lp1’ | Name: ‘’ | Ip: ‘127.0.0.1’ | Eth: ‘’ ###
### The following interface is commented out because:
### * it is a Software Loopback interface
### * has a speed of 0 which makes no sense
#
# Target[192.168.5.10_3]: 3:[email protected]:
# SetEnv[192.168.5.10_3]: MRTG_INT_IP=»127.0.0.1" MRTG_INT_DESCR=»lp1"
# MaxBytes[192.168.5.10_3]: 0
# Title[192.168.5.10_3]: Traffic Analysis for 3 - Netopia ADSL
# PageTop[192.168.5.10_3]: <H1>Traffic Analysis for 3 - Netopia ADSL</H1>
# <TABLE>
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 31
028
029
030
031
032
033
034
035
:
:
:
:
:
:
:
:
#
#
#
#
#
#
#
#
<TR><TD>System:</TD> <TD>Netopia ADSL in Hilaire</TD></TR>
<TR><TD>Maintainer:</TD> <TD>[email protected]</TD></TR>
<TR><TD>Description:</TD><TD>lp1 </TD></TR>
<TR><TD>ifType:</TD> <TD>softwareLoopback (24)</TD></TR>
<TR><TD>ifName:</TD> <TD></TD></TR>
<TR><TD>Max Speed:</TD> <TD>0.0 Bytes/s</TD></TR>
<TR><TD>Ip:</TD> <TD>127.0.0.1 (localhost)</TD></TR>
</TABLE>
est en commentaire, le caractère # permet de rajouter
des éléments qui ne seront pas pris en compte lors de l’exécution du fichier, mais attention à ne
pas trop en mettre cela ralentit l’exécution du fichier. La variable « WorkDir : /home/http/mrtg »
permet de définir le répertoire où vont être stockés les fichiers générés par MRTG (html, png, log).
Si cette variable n’est pas renseignée les fichiers vont se mettre dans le répertoire d’exécution de
MRTG (c:\mrtg\bin).
- 002 : C'est une ligne en commentaire, elle nous permet de connaître ce à quoi se rattache les
lignes qui suivent.
- 004 : Les variables sont composées de 3 parties
- 001 : # WorkDir: /home/http/mrtg :
- Target[192.168.5.10_2]: 2:[email protected]:
- Target : est nom de la variable, celle-ci permet d’identifier la cible.
- [192.168.5.10_2] : est nom des fichiers générés par MRTG.
- 2:[email protected]: : comprend
- 2 : correspond à l’OID
- ap-bac : la communauté
- 192.168.5.10 : l’adresse ip de la cible.
- 006 : MaxBytes[192.168.5.10_2]: nous donne la valeur maximale du résultat renvoyé par snmp
- 007 : Title[192.168.5.10_2] : Traffic Analysis for 2 - Netopia ADSL : est le titre de la
page html généré
- 008 : PageTop[192.168.5.10_2] : <H1>Traffic Analysis for 2 - Netopia ADSL</H1> : est
le
nom de l’entête de la page html. Les textes entre <> sont des balises HTML qui permettent la
mise en forme du document.
- 009 : est une balise HTML permettant la création d’un tableau.
- 010 : contient la localistation du système, cette information est récupérée dans la variable SNMP
«sysLocation»
- 011 : contient
un nom ou une adresse de la personne à contacter en cas de problème, cela
correspond à la variable SNMP «SysContact»
- 012 : contient la description de l’élément, contenue dans la variable SNMP «SysDescr»
- 013 : contient le type d’interface
- 014 : contient le nom de l’élément
- 015 : contient la valeur maximale renvoyé par SNMP.
- 016 : contient une balise HTML de fermeture d’un tableau.
La suite du fichier est entièrement en commentaire, MRTG a détecté que cette interface est le
"loopback". Donc il n’y a aucun besoin de surveillance. La seule différence avec la deuxième partie
est l’OID, il est devenue « 3 » au lieu de "2".
Nous venons de voir un script de base généré automatiquement à l’aide de "cfgmaker", cela suffit
dans le cas d’une simple surveillance d’un routeur où l’on souhaite connaître l’occupation de la
bande passante. Mais dans le cas d’un serveur, nous avons besoin de connaître le taux d’occupation du CPU, de la mémoire, et des disques durs. On peut se contenter de se connecter sur la
machine en question, de relever les valeurs à la main et les stocker dans un fichier Excel mais cela
s’avére long et engendre donc une perte de temps.
Nous allons maintenant étudier le fichier de configuration de SysOp qui permet la surveillance du
CPU, mémoires, disques durs, réseau. Nous souhaitons donc connaître l’occupation CPU, à partir
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 32
de Getif nous parcourons la MIB et nous allons à l’OID :
- .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48
ou
- .iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.
windowsNT.performance.cpuprocessorTable.cpuprocessorEntry.cpuPercentProcessorTime
Pour la mémoire nous utilisons l’OID :
- .1.3.6.1.4.1.311.1.1.3.1.1.1.30.0
ou
- .iso.org.dod.internet.private.enterprises.microsoft.software.systems.os
.windowsNT.performance.memory.memoryAvailableMBytes
Pour le pourcentage d’occupation du disque dur nous allons à l’OID :
- .1.3.6.1.4.1.311.1.1.3.1.1.5.1.3.2.67.58
ou
- .iso.org.dod.internet.private.enterprises.microsoft.software.systems.os.
windowsNT.performance.ldisklogicalDiskTable.ldisklogicalDiskEntry.ldiskPercentFreeSpace
Pour interroger l’interface réseau c'est plus complexe. Imaginons que notre serveur comporte
plusieurs interfaces réseaux et que chacune est active. SNMP utilise des numéros d’index «ifIndex»,
donc si l’on change l’IP du serveur, son numéro d’index va changer aussi, ce qui empêche le bon
fonctionnement du script. Pour être sûr de retrouver la bonne interface nous utilisons l’adresse
MAC de celle-ci.
Maintenant que nous possédons nos OID nous n’avons plus qu’à écrire le script.
------ [Global] -----------------------------------------------LoadMIBs: c:\www\mrtg\mib\perfmib.mib
Language: french
RunAsDaemon: Yes
SingleRequest: Yes
HtmlDir: c:\www\mrtg\html\sysop\
ImageDir: c:\www\mrtg\images\sysop\
LogDir: c:\www\mrtg\logs\sysop\
------ [Cible 1] -----------------------------------------------####################################################################################
########################### Disponibilité du processeur ############################
####################################################################################
Target[192.168.5.88_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:[email protected]:
SetEnv[192.168.5.88_cpu]: MRTG_INT_IP="192.168.5.88" MRTG_INT_DESCR="Disponibilité
du processeur"
MaxBytes[192.168.5.88_cpu]: 100
Options[192.168.5.88_cpu]: gauge,nobanner,nolegend,noinfo,NOO
Title[192.168.5.88_cpu]: Disponibilité du processeur
PageTop[192.168.5.88_cpu]: <H1>Disponibilité du processeur</H1>
AddHead[192.168.5.88_cpu]: <LINK HREF="../../style.css" REL="stylesheet" TYPE="text/
css">
#|----- HTML -----|#
<TABLE>
<TR>
<TD><B>Système :</B></TD>
<TD>SysOp</TD>
</TR>
<TR>
<TD><B>Administrateur Réseau :</B></TD>
<TD>[email protected]</TD>
</TR>
</TABLE>
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 33
#|----- Options -----|#
ShortLegend[192.168.5.88_cpu]: %
YLegend[192.168.5.88_cpu]: Utilsation en %
LegendI[192.168.5.88_cpu]: : CPU :
----- [Cible 2] -----------------------------------------------####################################################################################
############################### Mémoire disponible ################################
####################################################################################
Target[192.168.5.88_memoire]:
.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:[email protected]:
SetEnv[192.168.5.88_memoire]: MRTG_INT_IP="192.168.5.88" MRTG_INT_DESCR="Mémoire
disponible"
MaxBytes[192.168.5.88_memoire]: 252908
Options[192.168.5.88_memoire]: nopercent,nobanner,nolegend,noinfo,gauge,NOO
Title[192.168.5.88_memoire]: Quantité de mémoires disponible
PageTop[192.168.5.88_memoire]: <H1>Mémoires disponible</H1>
AddHead[192.168.5.88_cpu]: <LINK HREF="../../style.css" REL="stylesheet" TYPE="text/
css">
#|---- HTML -----|#
<TABLE>
<TR>
<TD><B>Système :</B></TD>
<TD>SysOp</TD>
</TR>
<TR>
<TD><B>Administrateur Réseau :</B></TD>
<TD>[email protected]</TD>
</TR>
</TABLE>
#|----- Options -----|#
ShortLegend[192.168.5.88_memoire]: Mbytes
YLegend[192.168.5.88_memoire]: dispo en Mbytes
LegendI[192.168.5.88_memoire]: : Mémoires :
----- [Cible 3] -----------------------------------------------####################################################################################
############################# % occupation du disque ###############################
####################################################################################
Target[192.168.5.88_disk]: 100 .1.3.6.1.4.1.311.1.1.3.1.1.5.1.3.2.67.58&.1.3.6.1.4.1.311.1.1.3.1.1.5.1.3.2.67.58:[email protected]:
SetEnv[192.168.5.88_disk]: MRTG_INT_IP="192.168.5.88" MRTG_INT_DESCR="Disponibilité
du processeur"
MaxBytes[192.168.5.88_disk]: 100
Options[192.168.5.88_disk]: gauge,nobanner,nolegend,noinfo,gauge,NOO
Title[192.168.5.88_disk]: % d’occupation du disque dur
PageTop[192.168.5.88_disk]: <H1>% d’occupation du disque dur</H1>
AddHead[192.168.5.88_cpu]: <LINK HREF="../../style.css" REL="stylesheet" TYPE="text/
css">
#|----- HTML -----|#
<TABLE>
<TR>
<TD><B>Système :</B></TD>
<TD>SysOp</TD>
</TR>
<TR>
<TD><B>Administrateur Réseau :</B></TD>
<TD>[email protected]</TD>
</TR>
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 34
</TABLE>
#|----- Options -----|#
ShortLegend[192.168.5.88_disk]: %
YLegend[192.168.5.88_disk]: % occupé
LegendI[192.168.5.88_disk]: : Occupé :
----- [Cible 4] -----------------------------------------------####################################################################################
################################ Interface Réseau #################################
####################################################################################
Target[192.168.5.88_reso]: !00-40-05-8E-EE-FC:[email protected]:
SetEnv[192.168.5.88_reso]: MRTG_INT_IP=»192.168.5.88" MRTG_INT_DESCR=»D-Link DFE680TX/TXD CardBus PC Card»
MaxBytes[192.168.5.88_reso]: 12500000
Options[192.168.5.88_reso]: nobanner,noinfo,nolegend,nopercent
Title[192.168.5.88_reso]: Traffic sur la carte réseau
PageTop[192.168.5.88_reso]: <H1>Traffic sur la carte réseau</H1>
AddHead[192.168.5.88_cpu]: <LINK HREF="../../style.css" REL="stylesheet" TYPE="text/
css">
#|----- HTML -----|#
<TABLE>
<TR>
<TD><B>Système :</B></TD>
<TD>SysOp</TD>
</TR>
<TR>
<TD><B>Administrateur Réseau :</B></TD>
<TD>[email protected]</TD>
</TR>
</TABLE>
#|----- Options -----|#
ShortLegend[192.168.5.88_reso]: Kbits/s
YLegend[192.168.5.88_reso]: Bande passante
LegendI[192.168.5.88_reso]: : Entrée :
LegendO[192.168.5.88_reso]: : Sortie :
----- Fin de fichier ------------------------------------------------
Description des variables
[Global]
- LoadMIBs: c:\www\mrtg\mib\perfmib.mib
Permet de charger la MIB et de faire des requêtes par rapport au nom des variables
(.iso.org.dod.internet.private.enterprises…) au lieu du numéro de séquences (.1.3.6.1.4.1), j'ai
choisi de ne pas l'utiliser car si le fichier *.mib est absent la requête ne fonctionne pas.
- Language: french
Permet de changer la langue par défaut des pages générées.
- RunAsDaemon: Yes
Pemet de faire tourner MRTG en arrière plan pour mettre à jour les graphiques toutes les cinq
minutes (valeur par défaut).
- SingleRequest: Yes
Oblige MRTG à faire une requête par variable.
- HtmlDir: c:\www\mrtg\html\sysop
- ImageDir: c:\www\mrtg\images\sysop
- LogDir: c:\www\mrtg\logs\sysop
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 35
Ces trois variables nous permettent de définir des répertoires différents pour les fichiers html,
png, log.
[Cible 1]
Le but de cette requête est de connaître le pourcentage d’utilisation du processeur. Le problème
de cette variable est que ce n’est pas une valeur moyenne, la mesure est prise au moment de la
requête ce qui peut fausser légèrement le résultat car le fait de faire une requête génère une
utilisation plus importante du CPU. Dans notre cas il faut compter 2 à 3 % supplémentaires.
- Target[192.168.5.88_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:[email protected]:
Ici on remarque que l’OID est répétée deux fois, MRTG permet sur un même graphique de
gérer deux variables. On pourrait imaginer visualiser sur un même graphique le pourcentage de
chaque processeur dans le cas d’une machine bi-processeurs, par exemple.
- SetEnv[192.168.5.88_cpu]: MRTG_INT_IP="192.168.5.88" MRTG_INT_DESCR="Disponibilité
du processeur"
Se sont des variables utilisées par MRTG.
- MaxBytes[192.168.5.88_cpu]: 100
Comme nous récupérons un pourcentage, la valeur maximum ne peut être que 100 %.
- Options[192.168.5.88_cpu]: gauge,nobanner,nolegend,noinfo,NOO
Cette variable permet de rajouter des contraintes pour le fonctionnement du script.
- gauge : Permet de récupérer une valeur mesurée, pour calculer ces valeurs MRTG fait la
différence entre la valeur récupérée et la valeur précédente et divise le tout par le temps
écoulé entre les deux valeurs.
- Nobanner : Enlève les entêtes de page que génère MRTG.
- Nolegend : Supprime la légende par défaut des couleurs
- Noinfo : Supprime l’affichage des informations de la cible
- NOO : Signifie « No Out », permet de supprimer du graphique la courbe des sorties
- Title[192.168.5.88_cpu]: Disponibilité du processeur
Titre de la page générée
- PageTop[192.168.5.88_cpu]: <H1>Disponibilité du processeur</H1>
Entête de page
- AddHead[192.168.5.88_cpu]: <LINK HREF="../../style.css" REL="stylesheet" TYPE="text/css">
Permet de rajouter une balise dans l’entête du fichier HTML, celle-ci correspond à l’utilisation
d’une feuille de style qui contient tous les paramètres de mise en page du fichier.
- ShortLegend[192.168.5.88_cpu]: %
Texte qui sera affiché dans le bas du graphique, peut être par exemple une unité
- YLegend[192.168.5.88_cpu]: Utilsation en %
Texte affiché sur le graphique
- LegendI[192.168.5.88_cpu]: : CPU :
Permet de personnaliser l’intitulé de la valeur retournée et affichée au bas du graphique
Pour le reste du script la seule différence est au niveau de la variable Option[_]. Dans le cas de
la mémoire, et de l’interface réseau j’ai rajouté « nopercent » pour indiqué à MRTG que ce n’est
pas un pourcentage.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 36
III.5 – IndexMaker
III.5.a - Introduction
Cette utilitaire est fourni avec MRTG, il permet la génération de page html, il regroupe sur une
même page les graphiques du jour (par défaut) et fait des liens vers le détail de ces pages.
III.5.b – Mise en place
On peut lui faire passer beaucoup de paramètres afin de gérer la mise en page de la page html,
voici ceux que j’utilise :
perl c:\mrtg\bin\indexmaker
c:\docume~1\pmalad~1\mesdoc~1\coursm~1\infos\tp\dossie~1\mrtg\config\sysop\totalsys.cfg
--output=c:\www\mrtg\indexmaker.html --prefix=mrtg/images/ --columns=1 -addhead="<LINK HREF=style.css REL=stylesheet TYPE=text/css>" --title="Suveillance du
réseau ap-bac" --nolegend --enumerate --clicktext --show day
Comme pour MRTG c’est un programme écrit en Perl.
- perl c:\mrtg\bin\indexmaker
c:\docume~1\pmalad~1\mesdoc~1\coursm~1\infos\tp\dossie~1\mrtg\config\sysop\totalsys.cfg
Donne le chemin d’accès du fichier MRTG utilisé pour générer le fichier html.
- --output=c:\www\mrtg\indexmaker.html
Cette option permet de définir le répertoire et le nom du fichier généré par IndexMaker
- --prefix=mrtg/images/
Sert à indiquer à IndexMaker où sont stockés les fichiers MRTG, il impose que les fichiers png, log,
html soient dans le même répertoire, ce qui complique la gestion des fichiers.
- --columns=1
Par défaut IndexMaker crée un tableau avec deux colonnes. Si on n’a pas défini une taille plus
petite pour les graphiques que celle par défaut dans MRTG, il vaut mieux mettre cette valeur à un,
ce qui correspond à une colonne.
- --addhead="<LINK HREF=style.css REL=stylesheet TYPE=text/css>"
On peut rajouter des informations dans l’entête du fichier html, ce qui permet dans notre cas
d’associer une feuille de style.
- --title="<H1>Suveillance du réseau ap-bac</H1>"
Texte affiché en haut de la page html.
- --nolegend
Enlève la légende des graphiques.
- --enumerate
Rajoute un numéro devant le nom du graphique.
- --clicktext
Rend le titre du graphique cliquable.
- show day
Par défaut IndexMaker affiche le graphique du jour, mais on peut utiliser d’autres valeurs.
-
show
show
show
show
week pour la semaine
month pour le mois
year pour l’année
none pour ne pas afficher de graphique (peut être utile pour la génération de frame html)
Dans ce dossier nous n’allons pas utiliser IndexMaker car dans notre fichier de configuration
MRTG nous avons défini des répertoires différents pour les fichiers png, log, html.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - III - Paramétrages des programmes - Page 37
IV – Mise en production
Nous avons vu la mise en place et le paramétrage des différents programmes utiles au fonctionnement de MRTG, maintenant comment cela se passe en production ?
Dans notre cas nous interrogeons le réseau à partir de SYSOP donc sous Windows. Nous avons le
choix :
de lancer la commande à la main :
- perl c:\mrtg\bin\mrtg
c:\docume~1\pmalad~1\mesdoc~1\coursm~1\infos\tp\dossie~1\mrtg\config\sysop\totalsys.cfg
Ou faire un fichier batch qui sera lancer au démarrage ou à la main. Je choisis de le lancer à la
main, puisque la ligne « RunAsDaemon: Yes » permet de faire tourner MRTG en arrière plan. Avant
d'exécuter le script je crée les répertoires qui vont être utiles, je crée aussi un alias dans Apache
(mrtg), mon serveur http, qui pointe vers le répertoire de stockage des fichiers. A l’intérieur de ce
répertoire (c:\www) je crée un sous-répertoire « mrtg ». Dans ce répertoire seront créés les
répertoires html, log, images, mib.
Pour permettre le lancement de MRTG, il faut créer un fichier batch qui contient le code suivant :
@echo off
cls
:MENU
echo ---------------------------------------------------------------------echo ************** Lancement de MRTG **************
echo ---------------------------------------------------------------------echo * Quel fichier voulez-vous lancer ?
*
echo ** Monitoring de SYSOP **************************
echo * - 1 - Lancer
*
echo *
*
echo ** Monitoring de NETOPIA ************************
echo * - 2 - Lancer
*
echo.*
*
echo *************************************************
echo * - 3 - Lancer IndexMaker
*
echo *
*
echo * - 4 - Quitter
*
echo ---------------------------------------------------------------------echo.
CHOICE /C:1234 "Choix
If ERRORLEVEL==4 goto
If ERRORLEVEL==3 goto
If ERRORLEVEL==2 goto
If ERRORLEVEL==1 goto
du fichier à lancer : "
FIN
INDEXMAKER
NETOPIA
TOTALSYS
:TOTALSYS
cls
echo ---------------------------------------------------------------------echo *************** Monitoring complèt **************
echo ---------------------------------------------------------------------echo Taper «Ctrl+c» pour arreter MRTG
perl c:\mrtg\bin\mrtg
c:\docume~1\pmalad~1\mesdoc~1\coursm~1\infos\tp\dossie~1\mrtg\config\sysop\totalsys.cfg
:NETOPIA
cls
echo ---------------------------------------------------------------------echo ************* Monitoring de Netopia **************
echo ---------------------------------------------------------------------echo Taper «Ctrl+c» pour arreter MRTG
perl c:\mrtg\bin\mrtg
c:\docume~1\pmalad~1\mesdoc~1\coursm~1\infos\tp\dossie~1\mrtg\config\netopia\netopia.cfg
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - IV - Mise en production - Page 40
:INDEXMAKER
cls
echo ---------------------------------------------------------------------echo ******** Génération du fichier en cours **********
echo ---------------------------------------------------------------------echo Taper «Ctrl+c» pour arreter MRTG
perl c:\mrtg\bin\indexmaker
c:\docume~1\pmalad~1\mesdoc~1\coursm~1\infos\tp\dossie~1\mrtg\config\sysop\totalsys.cfg
--output=c:\www\mrtg\indexmaker.html --prefix=mrtg/images/ --columns=1 -addhead="<LINK HREF=style.css REL=stylesheet TYPE=text/css>" -title="<H1>Suveillance du réseau ap-bac</H1>" --nolegend --enumerate --clicktext -show day
cls
goto MENU
:FIN
exit
Je ne détaille pas chaque ligne, car elles n’ont aucun rapport avec MRTG et le but de ce dossier. Il
faut juste savoir qu’un fichier batch contient des commandes MSDOS. Dans notre cas ce fichier
permet l’affichage à l’écran d’une fenêtre MSDOS avec un menu de choix, selon que l’on opte pour
1, 2 ou 3 l’action va être différente. A partir de ce menu nous pouvons lancer la surveillance de
SYSOP, NETOPIA_ADSL mais aussi générer le fichier IndexMaker. Nous allons choisir l’option « 1 »
de façon à lancer la surveillance sur SYSOP.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - IV - Mise en production - Page 41
Maintenant MRTG est lancé pour SYSOP. Toutes les cinq minutes les graphiques vont être mis à
jour. J’ai choisi de ne pas utiliser IndexMaker pour la génération du fichier html pour les raisons
vues dans la section III.5.b. J’ai développé une interface « maison » en html. Elle reprend comme
IndexMaker le fichier du jour et lorsque l’on clique sur une image une nouvelle fenêtre, contenant
le détail de l’OID interrogé, s'ouvre.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - IV - Mise en production - Page 42
V – Conclusion
MRTG est un outil de supervision pratique, simple à utiliser. Il utilise peu de ressources, léger et
compatible avec de nombreux systèmes d'exploitation. De surcroit il a l'avantage d'être gratuit.
L'apprentissage de ce logiciel est peu intuitif car il ne possède pas d'interface graphique qui
permettrait une prise en main plus aisée et peut donc en décourager certains, mais c'est un mal
nécessaire si l'on souhaite une portabilité étendue.
Je lui ai adjoint d'autres programmes :
GETIF pour simplifier le paramétrage,
ACTIVEPERL, PERF2MIB pour l'exécution sous Windows
Le seul reproche que je lui fais est qu’il ne gère pas les TRAP SNMP.
D'autres programmes existent dans la supervision d’un réseau, RRDTOOL sûrement le plus répandu. Loriot orienté administration, gère les Traps et la modification des valeurs de l'agent. Je ne
les ai pas retenu car ils sont trop complexes à mettre en place.
MALADJIAN Philippe - BAC PRO MRBT - Session 2002 - MRTG - V - Conclusion - Page 44