Vous êtes ici:

Menu


Stacks Image 9724
Cette série d’articles rassemble tous les sujets autour du SNMP et Centreon. Au cours des années, Centreon a sans cesse évolué, pour vous proposer une gestion du SNMP la plus robuste qui soit. Bien-sûr, j'ai du adapter mes articles en fonction de ces évolutions. Je vous propose la lecture suivantes de mes articles :
   - Ci-dessous, un résumé sur la configuration SNMP sur Debian en SNMP V2 et V3 ainsi que les premiers paramétrages de centreon
   - Les traps SNMP, leurs configurations pour Debian et une explication du fonctionnement des traps SNMP avec SNMPTT et Centreon postérieur à 2.5x
   - Traps avec Centreon 2.4, configuration des traps avec la version Centreon 2.4x
   - Traps avec Centreon 2.5, configuration des traps avec la version Centreon 2.5x
   - Les traps avec CES et Centreon 2.5, configuration d'une architecture distribuée avec CES 3.x
Cet article va vous permettre d'appréhender les méandres de la configuration SNMP sur un serveur Debian. Nous verrons aussi les subtilités des traps SNMP avec la configuration de Centreon sur cette page. Je ne prétends être un Gourou du SNMP par contre vous aurez les bases pour allez plus loin dans vos configurations. Tout d'abord, il faudra bien paramétrer votre serveur de supervision autant pour les requêtes SNMP (polling) que les alertes SNMP (trap).

1 Configuration du SNMP V 2c sur un serveur Debian

Le protocole SNMP va nous permettre de superviser nos serveurs en étant le moins intrusif possible. Nous éviterons tout de même de mettre l'autorisation en modification, la lecture seule suffira. Si vous voulez une sécurité maximale, privilégiez la version 3 du snmp mais plus complexe à mettre en oeuvre. Nous utiliserons la version 2c dans un premier temps.
Si le SNMP n'est pas installé, saisissez la commande suivante :
apt-get install snmp snmpd libnet-snmp-perl libsnmp-perl
Les librairies snmp pour Perl sont nécessaires si vous utilisez les plugins snmp de Nagios et Centreon.
apt-get install libnet-snmp-perl libsnmp-perl
Pour le fonctionnement du SNMP, modifiez le fichier /etc/snmp/snmpd.conf pour avoir :
Pour éviter d’avoir un deamon snmpd trop bavard, (réduction des logs), modifier le fichier /etc/default/snmpd
l'option -LS4d règle le niveau d'information dans le fichier /var/log/syslog. 7 est le niveau d'information complet, mais dans la pratique on privilégie le niveau 4. Celui-ci ne remontant que les erreurs. On peut ajouter des informations administratives comme ci-dessous
syscontact admin@domaine.com
syslocation Local Server
relancer snmpd
Vérification du bon fonctionnement, saisir la ligne suivante
snmpwalk -c public -v 2c 172.16.209.141
ou localhost comme indiqué précédemment
snmpwalk -c public -v 2c localhost
SI vous avez saisi l'adresse IP, saisir cette ligne.
snmpwalk -c public -v 2c 172.16.209.141
Vous devez obtenir une très longue liste d'OID SNMP.
 

2 Configuration du SNMP V 3 sur un serveur Debian

Le gros défaut du SNMP V2c est le manque de cryptage et l'absence d'authentification par mot de passe. Je vous propose une initiation au SNMP V3 avec une Debian. Tout d'abord, ajoutez le pré requis comme ceci :
apt-get install libcrypt-des-ede3-perl libcrypt-rijndael-perl libsnmp-dev
Le paquet libcrypt-des-ede3-perl sera nécessaire pour l’algorithme de cryptage MD5/DES. Le paquet libcrypt-rijndael-perl sera nécessaire pour l’algorithme de cryptage SHA/AES. Et enfin le paquet libsnmp-dev sera néssaire pour la commande net-snmp-config. Nous devons ajouter, maintenant, un utilisateur SNMP. Nous aurons besoin d'un mot de passe d'authentification (authpassphrase) et d'une clé de chiffrement des trames (privpassphrase). Ce mot de passe et cette clé ont respectivement un algorithme de chiffrement MD5/SHA et AES/AES comme ci-dessous :
user : netadmin
authpassphrase : azerty98
algorithme : MD5/SHA
privpassphrase : supervision
algorithme : DES/AES
Pour configurer cet utilisateur, il est fortement conseillé d'arrêter le service snmp. Arrêtez le service SNMP.
pour le coupe MD5/DES
net-snmp-config --create-snmpv3-user -ro -a azerty98 -x supervision -X DES -A MD5 netadmin

pour le coupe SHA/AES
net-snmp-config --create-snmpv3-user -ro -a maison72 -x supervision -X AES -A SHA netadmin
Stacks Image 11810
Exemple de création
C'est terminé, simple non ? mais c'est une configuration très basique. Il manque la gestion des ACL et bien d'autres chose encore. Pour l'instant, vérifions que nous avons accès à la mib. Vérifions si le protocole SNMP (UDP 161) écoute bien toutes les adresses IP en éditant le fichier /etc/snmp/snmpd.conf.
agentAddress  udp:161
Pour parcourir la mib, on utilisera la commande snmpwalk avec les paramètres suivants
Pour le couple MD5/DES
snmpwalk -v 3 -u netadmin -l authPriv -a MD5 -A azerty98 -x DES -X supervision 127.0.0.1

Pour le couple SHA/AES
snmpwalk -v 3 -u netadmin -l authPriv -a SHA -A azerty98 -x AES -X supervision 127.0.0.1
Et pour obtenir une valeur de la mib tel que le uptime du serveur, utilisez cette commande :
snmpget -v 3 -u netadmin -l authPriv -a MD5 -A azerty98 -x DES -X supervision 172.16.209.141 sysUpTime.0
Résultat
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (43805) 0:07:18.05
Stacks Image 10412
Erreur d'interprétation de la mib
Le résultat de la commande précédente peut aboutir à un échec comme ci-dessous.
sysUpTime.0: Unknown Object Identifier (Sub-id not found: (top) -> sysUpTime)

Ce message indique que le service SNMP ne trouve pas l'objet sysUpTime car il ne connait pas la table de correspondance entre ce mot clé et les objets OID de la mib. Il faut alors utiliser la numérotation pointée comme ceci.
snmpget -v 3 -u netadmin -l authPriv -a MD5 -A azerty98 -x DES -X supervision 172.16.209.51 .1.3.6.1.2.1.1.3.0

Cette commande vous retournera la valeur de l'OID
iso.3.6.1.2.1.1.3.0 = Timeticks: (140050) 0:23:20.50

Je vous conseille fortement d'installer le paquet snmp-mibs-downloader contenant le dictionnnaire des mibs.

3 Configuration du SNMP avec Centreon

Pour la configuration SNMP, il est fortement recommandé d'utiliser le mécanisme de modèle (template) d'hôte associé aux modèle de service. Grâce à celui-ci, la configuration SNMP sera indiqué au niveau de l'hôte et sera propagé à tous les services utilisant le SNMP. Cela réduit le risque d'erreur et permet un gain de temps considérable.

3.1 SNMP v2c

3.1.a ISO Centreon

La configuration du SNMP est très facile avec une ISO Centreon et ses plugins packs. Il suffit de sélectionnez la configuration des hôtes, ajoutez un hôte. Pour bien configurer le SNMP, vous aurez besoin de la version et du nom de communauté SNMP. Il est évident qu'il vous faudra un template d'hôte adapté au SNMP. Si le template est un template fourni par Centreon, n'oubliez pas de prendre le template suffixé avec custom.
Stacks Image 10457
Ajoutez votre hôte, appliquez la configuration. Votre supervision devrait ressembler à cette copie d'écran ci-dessous.
Stacks Image 11813

3.1.b Version Debian installation par script

La configuration sera identique, seul le template d'hôte change.
Stacks Image 10509

3.2 SNMP v3

3.2.a ISO Centreon

Pour la version 3, nous n'avons plus besoin du nom de communauté. Il faudra indiquer la version 3 du SNMP. Par contre les options d'authentification devront être saisies dans la macro d'hôte du template correspondant au SNMP (en général cette macro se nomme SNMPEXTRAOPTIONS). Si le template est un template fourni par Centreon, n'oubliez pas de prendre le template suffixé avec custom.
Pour connaître les options SNMP V3 du plugin, il suffit de vous connecter en ligne de commande sur votre Central et saisir la commande d'un plugin fonctionnant en SNMP. Par exemple, la commande centreon_linux_snmp.pl. Pour obtenir les options SNMP, vous devez l'associer avec un mode. exemple :
/usr/lib/centreon/plugins//centreon_linux_snmp.pl --plugin=os::linux::snmp::plugin --mode=cpu --help
Vous obtiendrez une longue liste de paramètres, seul la section SNMP nous intéressera :
Snmp Options:
    --hostname
            Hostname to query (required).

    --snmp-community
            Read community (defaults to public).

    --snmp-version
            Version: 1 for SNMP v1 (default), 2 for SNMP v2c, 3 for SNMP v3.

    --snmp-port
            Port (default: 161).

    --snmp-timeout
            Timeout in secondes (default: 1) before retries.

    --snmp-retries
            Set the number of retries (default: 5) before failure.

    --maxrepetitions
            Max repetitions value (default: 50) (only for SNMP v2 and v3).

    --subsetleef
            How many oid values per SNMP request (default: 50) (for get_leef
            method. Be cautious whe you set it. Prefer to let the default
            value).

    --snmp-autoreduce
            Auto reduce SNMP request size in case of SNMP errors (By
            default, the divisor is 2).

    --snmp-force-getnext
            Use snmp getnext function (even in snmp v2c and v3).

    --snmp-username
            Security name (only for SNMP v3).

    --authpassphrase
            Authentication protocol pass phrase.

    --authprotocol
            Authentication protocol (MD5|SHA)

    --privpassphrase
            Privacy protocol pass phrase

    --privprotocol
            Privacy protocol (DES|AES)

    --contextname
            Context name

    --contextengineid
            Context engine ID

    --securityengineid
            Security engine ID

    --snmp-errors-exit
            Exit code for SNMP Errors (default: unknown)
J'ai noté en gras, ci-dessus, les options que nous utiliserons pour le SNMP V3. J'utiliserai l'authentification MD5/DES ci dessous :
/usr/lib/centreon/plugins//centreon_linux_snmp.pl --plugin=os::linux::snmp::plugin --mode=cpu --hostname=192.168.1.170 --snmp-version='3' --snmp-username='netadmin' --authprotocol='MD5' --authpassphrase='azerty98' --privprotocol='DES' --privpassphrase='supervision' --warning-average='80'  --critical-average='90'
Il suffit de saisir cette chaine dans la macro SNMPEXTRAOPTIONS
--snmp-username='netadmin' --authprotocol='MD5' --authpassphrase='azerty98' --privprotocol='DES' --privpassphrase='supervision'
Stacks Image 11822

3.2.b Version Debian installation par script

La configuration est identique à l'ISO Centreon, seul le nom de la macro change.
Stacks Image 11845
Stacks Image 11852
Attention au paramètre Password de la macro
Attention, la confidentialité obtenue avec l'option Password a ses limites. Si vous ne pouvez plus lire la chaine dans la configuration de l'hôte.

password01

Il n'en est pas de même pour l'option Command dans Ressource Status. La ligne de commande est en clair. Il faudra passer par des options de chiffrage comme avec l'option pass-manager.

password02

Sources :

Le bloc de Cédric Temple, configuration avancée de SNMP sur Linux : https://blog.cedrictemple.net/341-configuration-avancee-de-snmp-sur-linux-snmpv3
Le blog de Noobunbox, configurez SNMP V3 sous Debian : https://www.noobunbox.net/serveur/monitoring/configurer-snmp-v3-sous-debian/
comments powered by Disqus
 Vous êtes ici:

Nous utilisons des cookies pour nous permettre de mieux comprendre comment le site est utilisé. En continuant à utiliser ce site, vous acceptez cette politique.