Configuration SNMP Windows, Linux, ESXi

1

Hello, nous allons voir dans cet article l’installation et la configuration du protocole SNMP sous Windows, Linux, VMWare ESXi, Switch Cisco afin de pouvoir superviser l’infrastructure via Centreon Server.

Le protocole SNMP (Simple Network Management Protocol) est un protocole largement utilisé pour gérer et surveiller les systèmes distants de votre infrastructure (serveur Windows, Linux, équipement réseau…etc.), en utilisant un superviseur. Il existe 3 versions du protocole : SNMP v1, SNMP v2c et SNMP v3. Le port par défaut est 161 TCP/UDP.

Il existe d’autres protocoles de supervision :

  • NRPE  : Nagios Remote Plugin Executor
  • NSClient++ : il embarque le protocole NRPE et NSCA

Le service SNMP sera installé/Activé sur les machines suivante :

  • ad-dc16 : Contrôleur de domaine sous Windows Server 2016
  • serv-centos : Serveur CentOS 7 (idem sur Red Hat)
  • serv-debian : Serveur Debian 10
  • VMWare ESXi : Serveur ESXi 6.5
  • Switch Cisco

Pour tester le bon fonctionnement du service SNMP, cela se fera depuis le serveur Centreon :

  • serv-centreon / 10.10.1.5

Site web SNMP : net-snmp.org/download.html

SNMP Windows Client/Server

Le protocole SNMP fait partie des fonctionnalités de Windows serveur. Il suffit donc d’aller dans le Gestionnaire de serveur > Gérer > Ajout de rôles et de fonctionnalités :

  • Cliquez sur Suivant
  • Choisir : Installation basée sur un rôle ou une fonctionnalité
  • Sélectionner le serveur de destination
  • La lise des rôles s’affiche, cliquez sur Suivant
  • La liste des fonctionnalités s’affiche, cochez Service SNMP

Service SNMP

  • Cliquez sur Suivant
  • Installer

Pour installer SNMP sous Windows 7/8/10 c’est dans :

  • Panneaux de configuration
  • Programmes et fonctionnalités
  • Activer ou désactiver des fonctionnalités Windows

Protocole SNMP

Configuration SNMP

Lancez les services Windows depuis le Gestionnaire de serveur > Outils > Services

  • Allez dans les propriétés du service SNMP puis l’onglet Sécurité.
  • Ajouter une Communauté : Ex : public, private…
  • Choisir les droits de communauté : LECTURE SEULE

Communauté SNMP

  • Cochez la case : Accepter les paquets SNMP provenant de ces hôtes
  • Ajoutez l’adresse IP de votre serveur Centreon.

Remarque : si vous mettez le nom de votre serveur Centreon au lieu de l’adresse IP, assurez-vous que la résolution DNS se fait bien.

Communauté SNMP

  • Allez dans l’onglet Interruptions 
  • Ajouter encore une fois le nom de la communauté et cliquez sur Ajouter à la liste.
  • Cliquez sur le bouton Ajouter
  • Ajoutez l’adresse IP de votre serveur Centreon.

Interruptions SNMP

  • Valider.
  • Redémarrer le service SNMP : Clic-droit > Redémarrer

Tester SNMP via Centreon

Test depuis le serveur Centreon à l’aide de la commande snmpwalk :

[root@pixelabs ~]# snmpwalk -v 2c -c private ad-dc16
SNMPv2-MIB::sysDescr.0 = STRING: Hardware: Intel64 Family 6 Model 44 Stepping 2 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 14393 Multiprocessor Free)
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.2
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (64576) 0:10:45.76
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: ad-server16.pixelabs.fr
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 76
[root@pixelabs ~]#
  • private : c’est le nom de la communauté.
  • ad-dc16 : l’adresse IP / le nom du serveur Windows.

SNMP CentOS & RedHat

SNMP sera installé sur un serveur CentOS 7. N’oubliez pas de faire toujours une sauvegarde du fichier de configuration SNMP avant de le modifier.

Installer SNMP (CentOS) :

[root@pixelabs ~]# yum install net-snmp net-snmp-utils

Configuration SNMP

Activer le démarrage du service SNMP au démarrage du serveur :

[root@pixelabs ~]# systemctl enable snmpd

Faire une copie du fichier :

[root@pixelabs ~]# cp /etc/snmp/snmpd.conf  /etc/snmp/snmpd.conf.old

Éditez le fichier de configuration SNMP

[root@pixelabs ~]# nano /etc/snmp/snmpd.conf

Modifier la partie suivanteAjouter le groupe, le serveur de supervision et la communauté.

# sec.name source community
com2sec local 10.10.1.5  pixelabs
# groupName securityModel securityName
group GroupeLocal v2C local
group GroupeLocal v1 local
# name incl/excl subtree mask(optional)
view all included .1
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
# group context sec.model sec.level prefix read write notif
access GroupeLocal "" any noauth exact all none none
  • pixelabs : c’est le nom de la communauté
  • 10.10.1.5 : l’adresse IP du serveur Centreon

La configuration peut être différente selon l’OS Linux.

Relancer le service SNMP :

[root@pixelabs ~]# systemctl restart snmpd

ou :

[root@pixelabs ~]# service snmpd restart

Tester SNMP via Centreon Server

Tester depuis votre Centreon à l’aide de la commande snmpwalk :

[root@centreon plugins]# snmpwalk -v 2c -c pixelabs serv-centos system
SNMPv2-MIB::sysDescr.0 = STRING: Linux serv-centos.pixelabs.lan 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1402395318) 162 days, 7:32:33.18
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: serv-centos.pixelabs.lan
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (8) 0:00:00.08
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
[...]
  • pixelabs : c’est le nom de la communauté
  • serv-centos : l’adresse IP / le nom du serveur CentOS

Appuyez sur “Entrée” pour voir plus de MIBs. “Q” pour quitter. Tester également la version 1 : -v 1

Remarque : si vous avez le firewall activé. Il faut le désactiver ou autoriser le port 161 TCP/UDP.

SNMP Debian

SNMP sera installé sur un serveur Debian. N’oubliez pas de faire toujours une sauvegarde du fichier de configuration SNMP avant de le modifier.

Installer SNMP (Debian) :

[root@pixelabs ~]# apt-get install snmpd snmp libsnmp-dev
  • snmpd : C’est le daemon
  • snmp : c’est le client
  • libsnmp-dev : fichiers de dev

Configuration SNMP

Activer le démarrage du service SNMP au démarrage du serveur :

[root@pixelabs ~]# systemctl enable snmpd

ou :

[root@pixelabs ~]# chkconfig snmpd on

Faire une copie du fichier original :

[root@pixelabs ~]# cp /etc/snmp/snmpd.conf  /etc/snmp/snmpd.conf.old

Éditez le fichier de configuration :

[root@pixelabs ~]# nano /etc/snmp/snmpd.conf

Modifier la partie suivante. Ajouter le groupe, le serveur de supervision et la communauté.

###############################################################################
#
#  AGENT BEHAVIOUR
#

#  Listen for connections from the local system only
agentAddress  udp::161

Et, juste en dessous, dé-commenter la ligne suivante : #rocommunity public localhost

###############################################################################
#
#  ACCESS CONTROL
#

                                                 #  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1

                                                 #  Full access from the local host
rocommunity pixelabs  10.10.1.5
  • pixelabs : c’est le nom de la communauté
  • 10.10.1.5 : l’adresse IP du serveur Centreon.

Relancer le service SNMP :

[root@pixelabs ~]# systemctl restart snmpd

ou

[root@pixelabs ~]# service snmpd restart

Tester SNMP via Centreon Server

Depuis votre serveur Centreon, lancer la commande suivante :

[root@centreon plugins]# snmpwalk -v 2c -c pixelabs serv-debian system
SNMPv2-MIB::sysDescr.0 = STRING: Linux serv-debian 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (102438) 0:17:04.38
SNMPv2-MIB::sysContact.0 = STRING: Me <me@example.org>
SNMPv2-MIB::sysName.0 = STRING: serv-debian
SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.6 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.7 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.8 = OID: UDP-MIB::udpMIB
[...]

SNMP VMWare ESXi

Sur les ESXi, pas besoin d’installer SNMP, il suffit de l’activer et le paramétrer via les commandes ci-dessous :

  • Connectez-vous en SSH à votre serveur ESX. Vous devez peut être activer le service SSH, voir #Activer_SSH
  • Vérifier la configuration SNMP à l’aide de la commande suivante :
[root@pixelabs:~] esxcli system snmp get
Authentication:
Communities:
Enable: false
Engineid:
Hwsrc: indications
Largestorage: true
Loglevel: info
Notraps:
Port: 161
Privacy:
Remoteusers:
Syscontact:
Syslocation:
Targets:
Users:
V3targets:
[root@pixelabs:~]

Activer et autoriser votre serveur de supervision (Centreon) :

esxcli system snmp set -c private
esxcli system snmp set -p 161
esxcli system snmp set -C pixelabs@pixelabs.fr
esxcli system snmp set -L "Ville, Pays"
esxcli system snmp set -t ip_centreon@161/private
esxcli system snmp set -e true

Vérifiez avec la commande suivante :

[root@pixelabs:~] esxcli system snmp get
Authentication:
Communities: private
Enable: true
Engineid: 00000063000000a100000000
Hwsrc: indications
Largestorage: true
Loglevel: info
Notraps:
Port: 161
Privacy:
Remoteusers:
Syscontact: pixelabs@pixelabs.fr
Syslocation: Toulouse, France
Targets: ip_centreon@161 private
Users:
V3targets:
[root@pixelabs:~]

Autoriser la communication avec votre serveur Centreon :

esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address IP_SERVER_CENTREON/CIDR
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
  • IP_SERVER_CENTREON/CIDR : l’adresse IP de votre serveur Centreon + masque. Exemple : 192.168.1.5/24
  • CIDR = Masque réseau : /8 /16 /24…etc. C’est selon votre propre réseau.

Redémarrer le service SNMP :

/etc/init.d/snmpd restart

Le service peut être également relancé depuis vSphere Client : Configuration > Security Profile > Services > SSH

Voilà, c’est terminé. Vous pouvez maintenant superviser vos machines avec la solution de votre choix.

Bonne journée et à bientôt.

La rédaction de cette documentation demande beaucoup de temps, de motivation, mais surtout beaucoup de café 🙂
Vous aimez pixelabs ?
Offrez moi un petit café en cliquant sur la tasse ci-dessous.
pixelans_donation
Merci !

1 réponse

  1. sysadmin sysadmin dit :

    Mise à jour de l’article.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *