Configurer SNMP sur Windows, Linux et ESXi pour la supervision
Avant qu'un collecteur Centreon puisse lire un serveur en SNMP, l'agent de ce serveur doit être installé, limité en lecture seule et joignable sur le port UDP 161. Trois systèmes, trois méthodes.
SNMP (Simple Network Management Protocol) reste le moyen le plus simple de superviser un serveur sans agent tiers : le collecteur (poller) interroge l'agent SNMP de la machine, sur le port UDP 161. Cette page prépare l'agent sur les trois systèmes du titre, puis vérifie l'accès depuis Centreon 25.10.
Configurez d'abord une machine de laboratoire, et notez la configuration SNMP existante avant de modifier un serveur de production.
| Hôte | Rôle | Adresse |
|---|---|---|
| srv-poller01 | collecteur Centreon | 192.168.10.21 |
| srv-win01 | Windows Server supervisé | 192.168.10.31 |
| srv-lin01 | serveur Debian supervisé | 192.168.10.32 |
| esx01 | hôte ESXi supervisé | 192.168.10.33 |
Les règles communes
Quel que soit le système, trois principes s'appliquent :
- lecture seule : Centreon recommande une communauté en lecture seule, et son plugin utilise
publicpar défaut si vous n'en indiquez pas ; - restriction de source : n'acceptez les requêtes que depuis l'adresse du collecteur ;
- SNMPv3 quand c'est possible : avec SNMPv1 et v2c, l'authentification repose sur la communauté, qui selon Broadcom ne sécurise pas l'échange entre l'agent et le poste de gestion.
Le collecteur doit joindre la cible sur UDP 161. Microsoft documente le même port pour le service SNMP de Windows, et 162 pour les interruptions (traps) sortantes.
SNMP sur Windows
Un point de contexte d'abord : Microsoft indique dans sa liste des fonctionnalités dépréciées de Windows Server 2012 que SNMP est déprécié et recommande le modèle CIM via WS-Management (WinRM). Le service existe toujours, mais pour un nouveau projet, comparez avec un agent comme NSClient++ ou l'agent Centreon (CMA).
Installer le service
Sur Windows 10 et 11, SNMP est une fonctionnalité à la demande. Microsoft la décrit sous le nom de capacité SNMP.Client~~~~0.0.1.0, et Centreon donne ces commandes PowerShell :
Get-WindowsCapability -Online -Name "SNMP*"
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
Sur Windows Server, SNMP est une fonctionnalité du serveur. Listez son nom exact avant de l'installer avec Install-WindowsFeature :
Get-WindowsFeature -Name SNMP*
Configurer la communauté
La configuration se fait dans la console des services (services.msc), propriétés du service SNMP. Les intitulés ci-dessous sont ceux de l'interface anglaise citée par Centreon :
- onglet Agent : renseignez le contact et l'emplacement ;
- onglet Sécurité : ajoutez la communauté dans « Accepted community names » avec le droit READ ONLY ;
- cochez l'option « Accept SNMP packets » limitée à une liste d'hôtes, et ajoutez l'adresse du collecteur, ici
192.168.10.21; - redémarrez le service SNMP.
Le nom système du service est SNMP, selon Microsoft :
Restart-Service -Name SNMP
Côté Centreon, le connecteur Windows SNMP apporte le modèle d'hôte OS-Windows-SNMP-custom, qui crée les services CPU, mémoire et mémoire virtuelle ; disques, trafic, processus et services Windows s'ajoutent à la main ou par découverte.
SNMP sur Linux avec net-snmp
La plupart des distributions utilisent net-snmp. Sur Debian, le démon est fourni par le paquet snmpd, et les outils clients comme snmpwalk par le paquet snmp :
apt install snmpd snmp
Centreon publie une configuration minimale de /etc/snmp/snmpd.conf. Elle donne accès à toute la MIB nécessaire au plugin, avec une communauté en lecture seule :
agentaddress 0.0.0.0,[::]
com2sec notConfigUser default my-snmp-community
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view centreon included .1.3.6.1
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
access notConfigGroup "" any noauth exact centreon none none
access notConfigGroup "" any noauth exact systemview none none
Remplacez my-snmp-community par votre communauté et, pour restreindre la source, default par l'adresse du collecteur. La page de manuel Debian de snmpd.conf précise que, sans agentaddress, le démon écoute sur UDP 161 sur toutes les interfaces IPv4. Redémarrez et activez le service à chaque modification :
systemctl restart snmpd
systemctl enable snmpd
Passer en SNMPv3
Centreon propose cette méthode, qu'il dit fonctionner sur la plupart des distributions ; remplacez les deux phrases secrètes par les vôtres :
systemctl stop snmpd.service
net-snmp-create-v3-user -ro -A <phrase-auth> -X <phrase-chiffrement> -a SHA -x AES centreon
systemctl start snmpd.service
Dans Centreon, l'endroit dépend du connecteur : celui de Linux SNMP propose des macros dédiées (SNMP_V3_USERNAME, SNMP_V3_AUTH_PROTOCOL, SNMP_V3_AUTH_PASSPHRASE, SNMP_V3_PRIV_PROTOCOL, SNMP_V3_PRIV_PASSPHRASE), tandis que celui de Windows SNMP demande de passer ces paramètres dans la macro SNMPEXTRAOPTIONS de l'hôte. La documentation de dépannage fait la correspondance avec les options de snmpwalk :
| Option snmpwalk | Option centreon-plugins |
|---|---|
-u | --snmp-username |
-a / -A | --authprotocol / --authpassphrase |
-x / -X | --privprotocol / --privpassphrase |
-l | inutile, déduit automatiquement |
SNMP sur ESXi
Sur ESXi, Broadcom indique que le service SNMP est désactivé et sans communauté par défaut. La configuration se fait avec ESXCLI, dans le shell de l'hôte :
esxcli system snmp set --communities <communaute>
esxcli system snmp set --enable true
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
esxcli system snmp get
Attention : chaque appel à --communities remplace la liste précédente ; séparez plusieurs communautés par des virgules. La dernière commande affiche l'état du service pour contrôle.
Pour superviser ESXi en profondeur, Centreon s'appuie plutôt sur ses connecteurs VMware, qui interrogent l'API du vCenter, comme le montre la supervision de VMware ESXi avec Centreon. Le SNMP d'ESXi reste utile pour un contrôle de base.
Tester depuis le collecteur
Avant de créer l'hôte dans Centreon, vérifiez l'accès depuis le collecteur, avec la commande que donne la documentation de dépannage de Centreon :
snmpwalk -v 2c -c <communaute> 192.168.10.32 .1
| Message de Centreon | Cause habituelle |
|---|---|
SNMP GET Request : Timeout | mauvais port, version ou communauté, ou pare-feu entre collecteur et cible |
Can't get a single value | l'équipement ne publie pas l'OID attendu par le plugin |
SNMP Session: Unable to create | identifiants SNMPv3 faux ou incomplets |
Une fois le test réussi, créez l'hôte, appliquez le modèle du connecteur (Windows SNMP ou Linux SNMP) et déployez la configuration. Les mêmes réglages servent pour un NAS, voir la supervision d'un NAS Synology, et le fonctionnement des sondes est détaillé dans la page sur les plugins Nagios. La rubrique Centreon rassemble les autres équipements.
Questions fréquentes
Comment activer SNMP sur Windows 10 ou 11 ?
En PowerShell, avec Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0", ou par Paramètres, Fonctionnalités facultatives. Configurez ensuite la communauté et les hôtes autorisés dans les propriétés du service SNMP.
SNMP est-il encore supporté sous Windows Server ?
Le service est toujours disponible, mais Microsoft l'a déclaré déprécié depuis Windows Server 2012 et recommande CIM via WinRM. Pour un nouveau déploiement, envisagez un agent.
Quel port ouvrir pour SNMP ?
UDP 161 vers la machine supervisée pour les requêtes du collecteur. Les traps partent vers UDP 162 sur le poste qui les reçoit.
Comment tester SNMP depuis Linux ?
Avec snmpwalk -v 2c -c <communaute> <adresse> .1 depuis le collecteur, ou snmpget en SNMPv3 avec l'utilisateur, les protocoles et les phrases secrètes.
Faut-il utiliser SNMPv3 avec Centreon ?
Oui dès que l'équipement le permet, car les communautés v1 et v2c ne sécurisent pas l'échange. Selon le connecteur, les paramètres v3 se saisissent dans les macros SNMP_V3 de l'hôte ou dans sa macro SNMPEXTRAOPTIONS.