Technologuepro.com Acceuil >> TP Informatique >> TP réseaux >> Configuration d'Agent SNMP >> Configuration d'agent SNMP Sous Linux

Configuration d'agent SNMP Sous Linux
blank Objectif :

Mettre en place un agent SNMP (Net-SNMP) sous LINUX, ainsi que l'utilisation des programmes issus du même package permettant de faire des requêtes SNMP.
Utiliser des outils de monitoring : SCLI, MRTG


1) Installation de Net-SNMP :

a - Suppression d'une version précédente :
Pour commencer nous allons installer la suite Net-SNMP, comprenant un agent (sous la forme d'un daemon), des outils pour réaliser des requêtes, un browser de MIB graphique : TkMIB et enfin les MIB nécessaires.

Pour commencer, il est recommandé de supprimer toutes version existante de Net-SNMP (ou UCD-SNMP). Les commandes suivantes devraient s'en charger, si Net-SNMP est déjà installé :

rpm -e ucd-snmp-devel
rpm -e ucd-snmp-utils
rpm -e ucd-snmp

Ces commandes donneront des erreurs si Net-SNMP n'était pas installé dans l'environnement.

b - Installation de Net-SNMP :
Distribution du logiciel, issu du site : http://net-snmp.sourceforge.net.

Une fois l'archive rapatriée, il faut la décompresser dans un répertoire temporaire (/tmp par exemple), puis voici les étapes d'installation classiques :
gtar xvzf ucd-snmp-4.2.3.tar.gz
cd ucd-snmp-4.2.3
./configure
make
make install

Attention, le script d'installation configure va poser quelques questions avant d'effectuer la compilation.
Le sysContact du système, tapez votre nom, éventuellement suivit d'une adresse e-mail, sous la forme : Mohammed Ali [email protected]

Le script vous demandera aussi la localisation du système (ces deux informations renseignerons les variables correspondantes de la MIB-II SNMP).
Dans les questions suivantes, les options utilisées par le script par défaut conviennent.
Par défaut, Net-SNMP s'installe dans l'arborescence /usr/local.


c - Installation des modules Perl SNMP :
La distribution de Net-SNMP (ou UCD-SNMP) contient la dernière version des modules Perl SNMP. Ceux-ci sont utiles si vous souhaitez développer des scripts Perl utilisant SNMP. Ici, les modules se trouvent dans les répertoires perl/SNMP de l'arborescence des sources de Net-SNMP. Ces modules se compilent en utilisant la recette standard pour compiler n'importe quel module Perl, correctement développé :

Les lignes commençant par // sont des commentaires.
// Génération du fichier Makefile
perl Makefile.PL
// Compilation du module (changements de localisation de référence et compilation des bouts de code C/C++).
make
// Tests des fonctions des modules
make test
// et si tout va bien, installation du module dans l'arborescence Perl du système.
make install
d - Installation des modules Perl/Tk :
Maintenant que toutes les installations sont faites, l'environnement de travail pour SNMP est complet :
  • Un agent, sous la forme d'un daemon UNIX,
  • Des programmes pour faire des requêtes,
  • Un browser de MIB graphique (X-Window).
a- La MIB-II et les MIB plus propriétaires :
Net-SNMP stocke les MIB dans le répertoire /usr/local/share/snmp/mib en standard. Ce répertoire contient toutes les MIBs livrées avec le package logiciel. C'est à cet endroit que vous devrez mettre les MIBs supplémentaires constructeurs (CISCO, Bay Networks, Alteon, NetApp. . .).

Le fichier SNMPv2-MIB.txt correspond à la MIB II. Il est important de regarder comment est définie la syntaxe de ces OID.

Le fichier UCD-SNMP-MIB.txt correspond à la MIB système propriétaire à Net-SNMP/UCD-SNMP. Elle est différente de la HOST-MIB défini par l'IETF.


b - Lancement du daemon : snmpd
Pour activer le daemon SNMP sur votre système, il faut être root pour pouvoir lancer ce daemon, car il écoute (bind) sur un port privilégié de la machine (<1024).
Tapez :
/usr/local/sbin/snmpd à l'invite du système.

Il n'est pas nécessaire de rajouter un "&", c'est un daemon.
La commande “ps -edf | grep snmpd ” vous permettra de vérifier que celui-ci est correctement lancé. Le daemon envoi les informations sur son lancement et les possibles erreurs dans le fichier /var/log/snmpd.log.

c - Quelques premières requêtes :
c.1 - Des requêtes locales :
Le package Net-SNMP possède tous les programmes nécessaires pour commencer à faire quelques requêtes. La commande snmpget permet d'interroger un agent SNMP sur une valeur de sa MIB. Voici quelques commandes à exécuter :
snmpget localhost public system.sysContact.0
snmpget localhost public system.sysLocation.0
snmpget -On localhost public system.sysContact.0
snmpget 127.0.0.1 public .1.3.6.1.2.1.1.6.0
snmpget 127.0.0.1 public 1.6.0
snmpget -Of 127.0.0.1 public system.sysLocation.0
snmpgetnext localhost public system.sysContact.0

Voici la syntaxe d'une commande SNMPGET à respecter:

snmpget [-Cf] [options...] <hostname> {<community>} [<objectID>

Par défaut, les commandes d'interrogation de Net-SNMP supposent que les requêtes ne commençant pas par un “.” sont relative à la position :

.iso.org.dod.internet.mgmt.mib-2.

Vous pouvez modifier ce comportement dans le fichier de configuration ou en utilisant la variable d'environnement : PREFIX.

Les commandes vues précédemment permettent de faire des requêtes simples à notre agent SNMP. Mais grâce à la commande getnext on a accès à la valeur de la MIB localisée juste après celle qui à été demandée, cela permet de parcourir l'arbre de la MIB à coup de getnext. Le script suivant permet de le montrer :
#!/bin/sh
debut=system.sysLocation.0
while ‘true‘; do
a=‘snmpgetnext localhost public ${debut}‘
echo $a
debut=‘echo ${a} | cut -f1 -d\ ‘
done

Net-SNMP offre une commande permettant de parcourir la MIB et donc voir toutes les valeurs que l'agent SNMP du système sait retourner :
snmpwalk localhost public | more

c.2 – TkMIB :
TkMIB est un browser (butineur) SNMP graphique. Il nécessite un environnement X-Window en état de marche, Perl, Perl/Tk et les modules SNMP Perl. Tout cela devrait être installé si les indications données dans la première partie ont été suivies.

Pour le lancer, il suffit de taper :
tkmib &

à l'invite du système (en étant dans l'environnement graphique X-Window).

TkMIB permet aussi très facilement d'accéder aux indexes, comme celui des interfaces réseaux de la machine.

3) Configurer snmpd :

Jusqu'à présent, le daemon snmpd a été utilisé avec les paramètres de lancement par défaut. Il serait donc bon de créer le fichier de configuration suivant : snmpd.conf dans le répertoire : /usr/local/share/snmp.
syslocation bureau
syscontact [email protected]
rwcommunity priv 127.0.0.1
rocommunity pub
trapcommunity mestraps
trapsink localhost
load 1 1 1
disk /

Ce fichier donné en exemple modifie les noms des communautés SNMP ainsi que quelques autres paramètres. De plus, il indique à quelle machine doivent être envoyés les trap SNMP. Dans un réseau normal, cette machine serait votre NMS (Network Management Station). Dans ce cas nous nous les enverrons à nous même. Le programme snmpconf nouvellement arrivé dans la distribution de Net-SNMP permet de générer les différents fichiers de configuration plus facilement, sans devoir fouiller dans les fichiers d'exemples.

a - Trap SNMP :
Les programmes snmptrapd et snmptrap permettent respectivement de recevoir/traiter et d'envoyer des traps SNMP. Avant de redémarrer le daemon SNMP, pour qu'il prenne en compte la nouvelle configuration, il est nécessaire d'ouvrir une nouvelle fenêtre (xterm) et lancer la commande :
/usr/local/sbin/snmptrapd –feP

Toute en conservant cette fenêtre ouverte, il faut tuer et redémarrer snmpd dans la fenêtre principale (grâce à la commande killall snmpd), à ce moment la il faut observer la fenêtre recevant les traps.

b - MIB privé : UCD
Dans le fichier de configuration donné au (3. configurer snmpd), les deux dernières lignes correspondent à des mesures pouvant spécifiquement être réalisées avec Net-SNMP.

Load spécifie de regarder le Load Average (qui correspond au nombre de processus dans le run-queue) de la machine. Les trois valeurs données à la suite sont des maxima. Si les LA(Load Average), respectivement sur 1, 5 et 15 minutes dépassent les valeurs données, le daemon déclenche une alerte, sous la forme d'un trap SNMP. La primitive disk indique à l'agent SNMP d'observer l'utilisation de la partition système racine (ou root). Comme précédemment, il est aussi possible d'indiquer des seuils d'alerte. En exécutant la requête SNMP suivante, il est possible d'observer ces valeurs et quelques autres :
snmpwalk localhost pub .iso.org.dod.internet.private | less

Il est bon de remarquer que le nom de communauté read-only a changé mais aussi que nous ne nous trouvons plus dans la MIB-II, mais dans une MIB privée.

4 - Interrogation SNMP avancée :

a – Scli :
À l'endroit où a été rapatriés les archives, une version pré-compilé statiquement du logiciel OpenSource Scli doit être présente. Scli signifie “SNMP Command Line Interface”, c'est une interface de commande à SNMP bien pratique. C'est un programme exécutable Linux/x86, il faut vous donner les droits d'exécution dessus à l'aide de la commande : chmod 755 scli.
Vous pouvez maintenant démarrer le programme comme ceci :

./scli localhost pub

Il sera nécessaire de replacer pub par le nom qui aura été donné à la communauté read-only.

Voici quelques exemples de commandes utilisables sous le Shell de scli. Ce Shell fonctionne un peu comme IOS de Cisco : la touche de tabulation permet d'avoir une liste des commandes et sous-options possibles.

show system info
show snmp engine
show interface stats
show interface details
show ip forwarding
monitor interface stats

b - MRTG
Pour pouvoir installer MRTG, il est nécessaire d'avoir la présence d'un serveur WEB comme Apache et de modules Perl supplémentaires à ceux qui sont déjà présent. Dans ce paragraphe, seul le fonctionnement de MRTG sera expliqué :

MRTG peut être découpé en deux modules :

Le Collecteur :
Il va régulièrement aller chercher les valeurs à mesurer sur les systèmes distants, via SNMP. Par exemple, une des fonctions de bases de ce logiciel est de représenter graphiquement le trafic réseau.

Pour cela il va récupérer les valeurs des OID : ifInOctets, ifOutOctets pour chaque interface. Puis le collecteur stock ces variables dans des fichiers textes ou des bases de donnés (comme RRD Tool par exemple).


Le Grapheur :
C'est l'autre partie du logiciel, il va utiliser les informations trouvées précédemment pour générer des courbes de trafic. Selon le système utilisé, il pourra même générer ces graphiques à la demande (avec les RRD tools par exemple).

MRTG permettent de collecter et de dessiner des graphiques tout et n'importe quoi, à partir du moment où c'est interrogeable par SNMP (ou via un script) : la température d'un routeur, le nombre de requêtes HTTP, etc.

blank

Chapitre précedentIndex des CoursChapitre suivant

Tags: SNMP, Agent, configuration, switch, Linux, Simple Network, Management Protocol, cours informatique, réseaux

Révisé le :24-09-2010| © www.technologuepro.com