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