Guide de configuration du SNMP pour la surveillance d’ESXi
La surveillance des infrastructures est importante pour les entreprises, car elle permet de détecter les problèmes à temps et de prévenir les pannes. En cas de panne, des notifications précoces vous permettent de commencer à résoudre les problèmes associés dès que possible. Dans un environnement VMware vSphere, il est recommandé de configurer la surveillance des serveurs ESXi. L’une des méthodes les plus économiques pour surveiller les hôtes ESXi consiste à utiliser les fonctionnalités intégrées et le protocole SNMP (Simple Network Management Protocol). Dans ce cas, il est nécessaire de configurer un serveur dédié équipé d’un logiciel de surveillance. Cet article de blog traite de la configuration SNMP sur ESXi et explique comment activer le protocole SNMP sur les hôtes ESXi.
Préparation de l’environnement
Voici comment activer le protocole SNMP sur ESXi :
- Activer Secure Shell (SSH)
- Configurer le protocole SNMP
- Configurer le pare-feu ESXi
Je vais vous expliquer la configuration du protocole SNMP sur ESXi à l’aide d’un exemple comprenant un ESXi 7.0 hôte et une machine Ubuntu Linux sur laquelle un logiciel de Surveillance est installé.
L’adresse IP de l’hôte ESXi est 192.168.101.208.
L’adresse IP de la machine Ubuntu Linux est 192.168.101.209.
Utilisez vos propres adresses IP et autres valeurs pour les paramètres appropriés lors de la configuration de la Surveillance ESXi via SNMP dans votre infrastructure, afin de l’adapter à votre configuration.
Activation de l’accès SSH sur ESXi
L’accès SSH à un hôte ESXi est nécessaire pour exécuter à distance des commandes ESXCLI sur cet hôte. Pour activer l’accès SSH à votre hôte VMware ESXi, vous pouvez utiliser VMware Host Client. Ouvrez un navigateur Web, saisissez l’adresse IP de votre hôte VMware ESXi dans la barre d’adresse, puis saisissez vos identifiants de connexion pour vous connecter.
Dans le volet « Navigator », accédez à « Host > Manage » et cliquez sur l’onglet « Services ».
Cliquez avec le bouton droit sur « TSM-SSH » et, dans le menu contextuel, cliquez sur « Start.
». Sur la capture d’écran ci-dessous, vous pouvez voir que le service du serveur SSH est en cours d’exécution sur l’hôte ESXi.
Vous pouvez désormais vous connecter à l’hôte ESXi depuis une machine sur laquelle un client SSH est installé. Si vous utilisez Windows, vous pouvez utiliser PuTTY, un client SSH gratuit et pratique. Sous Linux, lancez le client SSH depuis la ligne de commande à l’aide de la commande :
ssh your_username@host_ip_address
Saisissez l’adresse IP de votre hôte VMware ESXi et le port TCP 22 (le numéro de port par défaut) dans les paramètres de session du client SSH pour vous connecter à l’hôte VMware ESXi via SSH.
Configuration SNMP d’ESXi
Une fois l’accès SSH à l’hôte VMware ESXi établi, vous pouvez configurer les options SNMP de VMware ESXi. Sur les hôtes ESXi, le protocole SNMP ne peut être configuré que dans l’interface en ligne de commande. L’interface utilisateur graphique (GUI) vous permet uniquement de démarrer, d’arrêter et de redémarrer le service SNMP.
Exécutez la commande dans la console (terminal) et vérifiez le statut du protocole SNMP sur l’hôte ESXi :
esxcli system snmp get
Le protocole SNMP est désactivé par défaut. La capture d’écran montre le résultat affiché lorsque le protocole SNMP est désactivé sur ESXi. La plupart des paramètres sont vides et/ou non configurés.
Configuration des paramètres d’un agent SNMP
Définissez les paramètres SNMP d’un agent SNMP sur l’hôte ESXi. L’agent SNMP sert à envoyer des notifications (traps et informs SNMP) à un serveur de Surveillance et à recevoir des requêtes GET, GETNEXT et GETBULK.
Définissez le nom de la communauté (« public » est le nom de communauté défini par défaut). Dans cet exemple, le nom de la communauté est « NAKIVO ». esxcli system snmp set --communities nakivo
Configurez la cible SNMP. La cible SNMP est un serveur sur lequel un logiciel de surveillance est installé pour traiter les traps SNMP et collecter les informations de surveillance. Dans mon exemple, la cible SNMP est la machine fonctionnant sous Ubuntu Linux ( 192.168.101.209 ). Le port UDP 161 est le port par défaut utilisé pour le protocole SNMP et ce port est défini dans ma configuration SNMP ESXi :
esxcli system snmp set --targets=192.168.101.209@161/nakivo
Indiquez un emplacement, par exemple la localisation géographique, l’adresse, le centre de données ou la salle où se trouve le serveur :
esxcli system snmp set --syslocation "Server room"
Indiquez les coordonnées. L’adresse e-mail de l’administrateur système peut être définie pour ce paramètre :
esxcli system snmp set --syscontact michaelbose@nakivo.com
Activez le protocole SNMP sur ESXi :
esxcli system snmp set --enable true
Vérifiez à nouveau le statut du protocole SNMP sur l’hôte ESXi :
esxcli system snmp get
Vous pouvez désormais constater que les paramètres sont configurés.
L’ID du moteur est l’identifiant unique de l’agent SNMP (utilisé pour SNMP v3). L’ID du moteur peut être défini à l’aide de la commande suivante (facultatif) :
esxcli system snmp set -engineid 544a33209458
Le statut SNMP est en cours d’exécution actuellement. Vous pouvez également ouvrir VMware Host Client, vous rendre sur Host > Manage > Serviceset vérifier l’état du service snmpd .
Testez la configuration SNMP actuelle.
esxcli system snmp test
Si vous modifiez les paramètres SNMP après cela, redémarrez l’agent SNMP à l’aide de la commande :
/etc/init.d/snmpd restart
Vous pouvez également redémarrer le service SNMP d’ESXi dans l’interface graphique de VMware Host Client, sous l’onglet Services . Cliquez avec le bouton droit sur le service, puis sélectionnez Restart dans le menu contextuel.
Si vous devez réinitialiser les paramètres SNMP d’ESXi, utilisez la commande :
esxcli system snmp set -r
La commande permettant de désactiver le SNMP sur un hôte VMware ESXi est la suivante :
esxcli system snmp set --enable false
Vous pouvez vérifier la disponibilité du SNMP depuis une machine Linux si celle-ci est la cible SNMP. Nous utilisons Ubuntu Linux à cette fin.
Installez le client SNMP requis sur Ubuntu Linux s’il n’est pas encore installé :
sudo apt-get install snmp
Connectez-vous à l’hôte ESXi via SNMP pour vérifier les paramètres disponibles pour la surveillance :
snmpwalk -v2c -c nakivo 192.168.101.208
Vous devriez voir s’afficher une longue liste d’objets pour la surveillance ESXi via SNMP dans la sortie de la console. Ces objets sont des bases d’informations de gestion (MIB) et des identifiants d’objets (OID), qui constituent des éléments de la structure hiérarchique des paramètres de surveillance.
Une MIB SNMP est un ensemble d’informations sur des objets (paramètres et réglages) organisé de manière hiérarchique. Il existe des MIB scalaires et tabulaires. Les MIB peuvent être standard ou spécifiques à un fournisseur.
Un OID SNMP est un objet géré identifié de manière unique dans la structure hiérarchique de la MIB. Les différents niveaux de l’arborescence sont attribués par différentes organisations. Les fournisseurs peuvent définir des branches spécifiques pour surveiller les paramètres de leurs produits.
Un nom d’objet est une valeur unique pour l’ensemble de la MIB, correspondant à l’OID approprié. Par exemple, le nom d’objet correspondant à l’OID 1.3.6.1.2.1.1.5 est sysName .
Configuration du pare-feu ESXi
Vous devez configurer le pare-feu et activer l’accès SNMP depuis les serveurs de surveillance vers l’hôte ESXi. Vous pouvez définir un sous-réseau ou une adresse IP unique pour les périphériques autorisés sur le réseau.
Nous exécutons ces trois commandes pour autoriser l’accès depuis le réseau 192.168.101.0/24 afin de surveiller ESXi via SNMP :
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false
esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.101.0/24
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
Saisissez l’adresse IP ou l’adresse réseau en fonction de votre configuration réseau.
Une configuration moins sécurisée consiste à activer l’accès depuis n’importe quelle appliance réseau :
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
La configuration SNMP d’ESXi est terminée. Vous pouvez désormais configurer votre logiciel de surveillance sur un serveur de surveillance.
Configuration de SNMP v3
SNMP v3 est une version plus sécurisée du protocole, offrant une authentification par clé et un chiffrement. La configuration de SNMP v3 est plus complexe et est prise en charge à partir de vSphere 5.1. Vous trouverez ci-dessous un aperçu de la procédure à suivre pour activer SNMP v3 sur un hôte ESXi.
Définissez le protocole d’authentification et les options de confidentialité.
esxcli system snmp set -a SHA1 -x AES128
Où :
SHA1 est l’algorithme de chiffrement cryptographique, la fonction de hachage cryptographique (Secure Hash Algorithm 1).
AES128 est la méthode de chiffrement (Advanced Encryption Standard avec une clé de chiffrement de 128 bits) utilisant le chiffrement par blocs symétrique.
Générez des hachages par une commande telle que :
esxcli system snmp hash –auth-hash authpass –priv-hash privhash –raw-secret
Dans mon cas, la commande est la suivante :
esxcli system snmp hash --auth-hash PasswordTest1 --priv-hash PasswordTest2 --raw-secret
Évitez d’utiliser les mots de passe fournis dans cet exemple dans des environnements de production. Utilisez des mots de passe uniques (le mot de passe doit comporter au moins 7 caractères). Enregistrez les chaînes de hachage générées. Dans mon cas, les hachages sont les suivants.
Authhash : 831a798d1cda90ca1a3ab80d38f81a44c0851ada
Privhash : 38cf6f13d09a4651362338eac2c3d62b42514bc9
Utilisez les hachages générés et ajoutez un utilisateur. Il est possible d’ajouter jusqu’à cinq utilisateurs.
esxcli system snmp set -e yes -C user -u snmpuser/authhash/privhash/priv
Où :
user correspond à l’adresse e-mail de contact de l’utilisateur
snmpuser correspond au Nom d’utilisateur (pouvant comporter jusqu’à 32 caractères)
authhash correspond à la valeur de hachage d’authentification
privhash correspond à la valeur de hachage de confidentialité
Nous ajoutons user1 et utilisons les hachages générés dans la sortie de la commande précédente. esxcli system snmp set -e yes -C user1@nakivo.com -u user1/831a798d1cda90ca1a3ab80d38f81a44c0851ada/38cf6f13d09a4651362338eac2c3d62b42514bc9/priv
Vous pouvez créer un utilisateur sans paramètres de sécurité (pas d’authentification ni de confidentialité) par la commande suivante :
esxcli system snmp set --user user2/-/-/none
Définissez l’adresse cible SNMP :
esxcli system snmp set --v3targets 192.168.101.209@161/user1/priv/trap
Activez le protocole SNMP sur ESXi :
esxcli system snmp set --enable true
Testez les paramètres SNMP :
esxcli system snmp test
Vous pouvez utiliser la commande étendue pour tester la configuration SNMP de VMware sur ESXi :
esxcli system snmp test -u=user1 -A=PasswordTest1 -X=P2sswordTest2 -r
Où user1 correspond au nom de l’utilisateur SNMP qui a été ajouté à la configuration.
Si le test aboutit, un message s’affiche :
Utilisateur validé correctement pour l’identifiant de moteur et le niveau de sécurité indiqués : protocoles
Essayez de vous connecter à l’hôte ESXi via SNMP v3 depuis un serveur Linux de surveillance (côté cible).
Cette commande est utilisée si aucun paramètre d’authentification n’a été défini :
snmpwalk -v3 -u user1 192.168.101.208
Si vous avez défini des options de sécurité, précisez-les dans la commande :
snmpwalk -v3 -u user1 -l AuthPriv -a SHA -A PasswordTest1 -x AES -X PasswordTest2 192.168.101.208
Où user1 correspond au nom de mon utilisateur ajouté à la configuration SNMP d’ESXi.
Si vous obtenez l’erreur « Nom d’utilisateur inconnu » lors du test de la configuration SNMP d’ESXi, vérifiez si vous avez bien ajouté un utilisateur et défini le nom d’utilisateur correct dans les commandes suivantes après l’ajout de l’utilisateur. Gardez à l’esprit que si vous modifiez l’ID du moteur de l’agent, le protocole de confidentialité ou le protocole d’authentification après avoir configuré les utilisateurs, ces derniers ne seront plus valides. Dans ce cas, vous devrez reconfigurer les utilisateurs.
Veillez également aux paramètres de sécurité, car une configuration SNMP incorrecte peut constituer une menace et permettre à un hôte malveillant d’obtenir des informations sur un hôte ESXi. Ces informations peuvent être utilisées pour détecter des points faibles et lancer une cyberattaque.
Configuration SNMP de plusieurs hôtes ESXi
L’utilisation de Profils d’hôte VMware peut vous aider à activer SNMP et à configurer plusieurs hôtes ESXi de manière plus rationnelle si vous disposez d’un grand nombre d’hôtes ESXi dans votre environnement vSphere.
Pour activer le protocole SNMP et configurer plusieurs hôtes ESXi, vous devez disposer de VMware vSphere Enterprise Plus licence afin de pouvoir utiliser les profils d’hôte VMware dans VMware vSphere Client. Les paramètres SNMP de VMware pour les profils d’hôtes ESXi se trouvent à l’adresse Management > Host Profiles > your Profile > SNMP Agent Configuration. Vous pouvez également utiliser vSphere PowerCLI pour automatiser le processus de configuration d’un grand nombre d’hôtes ESXi afin d’y définir la configuration SNMP ESXi.
Conclusion
La configuration SNMP d’ESXi nécessite un accès SSH aux hôtes ESXi, la configuration des agents SNMP et l’autorisation d’accès dans le pare-feu ESXi. La surveillance d’ESXi vous permet de réagir à temps si des problèmes sont détectés et d’améliorer la disponibilité globale du service. N’oubliez pas d’effectuer une sauvegarde des machines virtuelles VMware vSphere afin d’éviter toute perte de données et de pouvoir réaliser la récupération des données et la restauration des charges de travail en cas de sinistre.
NAKIVO Backup & Replication est la solution universelle de protection des données qui offre un large éventail d’options pour sauvegarder et restaurer les machines virtuelles VMware vSphere ainsi que d’autres données au sein d’un centre de données. De plus, la dernière version de la solution prend en charge la surveillance d’ESXi dans le cadre de la surveillance de VMware vSphere.










