XenServer

Surveiller les ressources host et dom0 avec SNMP

Remarque :

La fonctionnalité SNMP est disponible pour les clients XenServer Premium ou Trial Edition. Pour plus d’informations sur les licences XenServer, consultez Licences. Pour mettre à niveau ou pour obtenir une licence XenServer, rendez-vous sur le Site web de XenServer.

Avec le rôle Admin de pool, vous pouvez utiliser SNMP pour surveiller à distance les ressources consommées par votre hôte XenServer et dom0, le domaine de contrôle de votre hôte. Un gestionnaire SNMP, également appelé système de gestion de réseau (NMS), envoie des requêtes à un agent SNMP s’exécutant sur un hôte XenServer. L’agent SNMP répond à ces demandes de requête en renvoyant les données collectées sur diverses métriques au NMS. Les données qui peuvent être collectées sont définies par des identificateurs d’objet (OID) dans un fichier texte appelé base d’informations de gestion (MIB). Un OID représente un élément spécifique d’informations mesurables sur un périphérique réseau, tel que l’utilisation du processeur ou de la mémoire.

Vous pouvez également configurer des interruptions, qui sont des messages initiés par l’agent qui alertent le NMS qu’un événement spécifique s’est produit dans XenServer. Les requêtes et les interruptions peuvent être utilisées pour surveiller l’état de vos pools XenServer. Ceux-ci sont définis comme des objets de mesure et d’interruption et sont identifiés par des OID dans un fichier MIB XENSERVER-MIB.txt, disponible en téléchargement à partir du Page de téléchargements de XenServer. Les tableaux suivants fournissent des informations sur ces objets de mesure et d’interruption.

Objets métriques

Vous pouvez demander une information spécifique sur vos hôtes XenServer à l’aide des métriques répertoriées dans le tableau suivant. Ces métriques sont utilisées par le gestionnaire SNMP lors de l’envoi de demandes de requête à un agent SNMP et vous permettent donc d’afficher ces données dans votre NMS.

Vous pouvez afficher les données renvoyées à partir de ces objets de mesure à partir de votre NMS ou de l’interface de ligne de commande xe. Pour interroger les objets de mesure à partir de l’interface de ligne de commande xe, exécutez requête-source-de-données-hôte ou vm-data-source-query et fournir la source de données RRDD comme valeur pour le source_de-données paramètre. Par exemple :

  xe host-data-source-query data-source=cpu_avg host=<host UUID>
<!--NeedCopy-->

Remarque :

Par défaut, le NMS envoie des demandes de requête OID aux agents SNMP à l’aide du port 161.

Identificateur d’objet (OID) Source de données RRDD Données renvoyées Type
1.3.6.1.4.1.60953.1.1.1.1 memory Mémoire totale Dom0 en Mo Unsigned32
1.3.6.1.4.1.60953.1.1.1.2 memory_internal_free Mémoire libre Dom0 en Mo Unsigned32
1.3.6.1.4.1.60953.1.1.1.3 cpu_usage Utilisation du processeur Dom0 en pourcentage Flotter
1.3.6.1.4.1.60953.1.1.1.4 memory_total_kib Mémoire totale de l’hôte en Mo Unsigned32
1.3.6.1.4.1.60953.1.1.1.5 memory_free_kib Mémoire libre de l’hôte en Mo Unsigned32
1.3.6.1.4.1.60953.1.1.1.6 cpu_avg Utilisation du processeur de l’hôte en pourcentage Flotter
1.3.6.1.4.1.60953.1.1.1.7 (voir note 1) Nombre de pCPU Unsigned32
1.3.6.1.4.1.60953.1.1.1.8 running_vcpus Nombre de vCPU en cours d’exécution Unsigned32
1.3.6.1.4.1.60953.1.1.1.9 running_domains Nombre de machines virtuelles en cours d’exécution Unsigned32

Remarques  :

  1. Le nom d’un pCPU est au format CPU suivi d’un chiffre. Pour interroger le nombre de pCPU à partir de l’interface de ligne de commande xe, exécutez la commande suivante :

    xe host-data-source-list host=<host UUID> | grep -E 'cpu[0-9]+$'

    Cela renvoie une liste des métriques de processeur qui correspondent à l’expression régulière Processeur[0-9]+.

Pièges

Les interruptions sont des alertes envoyées par l’agent SNMP pour informer le gestionnaire SNMP lorsque certains événements se produisent, ce qui vous permet de surveiller vos hôtes XenServer et d’identifier les problèmes à un stade précoce. Vous pouvez configurer vos paramètres SNMP pour générer une interruption lorsqu’une limite est atteinte (par exemple, si l’utilisation du processeur de l’hôte est trop élevée). Lorsqu’une interruption est générée, elle est envoyée à votre NMS et les champs suivants sont renvoyés dans le cadre de l’objet d’interruption.

Remarque :

Par défaut, l’agent SNMP sur l’hôte coordinateur de pool envoie des interruptions au NMS à l’aide du port UDP 162.

Identificateur d’objet (OID) Nom du champ Type Description
1.3.6.1.4.1.60953.1.10.1.1 operation Chaîne Il peut s’agir de l’une des valeurs suivantes : ajouter ou Del. opération est ajouter si un piège est généré par XenServer et envoyé à votre NMS (une alerte est également créée dans XenCenter) ou Del si une alerte est détruite (par exemple, si vous ignorez une alerte).
1.3.6.1.4.1.60953.1.10.1.2 ref Chaîne Référence de l’objet trap.
1.3.6.1.4.1.60953.1.10.1.3 uuid Chaîne UUID de l’objet trap.
1.3.6.1.4.1.60953.1.10.1.4 name Chaîne Nom de l’objet trap.
1.3.6.1.4.1.60953.1.10.1.5 priority Entier La gravité du piège. Il peut s’agir de l’une des valeurs suivantes : 1:Critique 2:Majeur 3:Avertissement 4:Mineur 5:Information autrui:Inconnu.
1.3.6.1.4.1.60953.1.10.1.6 class Chaîne La catégorie du piège généré. Il peut s’agir de l’une des valeurs suivantes : VM, Hôte, SR, Mare, VMPP, VMSS, PVS_proxy, VDIou Certificat.
1.3.6.1.4.1.60953.1.10.1.7 obj-uuid Chaîne L’UUID de l’objet xapi des différentes classes du champ classe.
1.3.6.1.4.1.60953.1.10.1.8 timestamp Chaîne Heure à laquelle l’interruption est générée.
1.3.6.1.4.1.60953.1.10.1.9 body Chaîne Informations détaillées sur le terrain nom.

Prérequis

  • Tous les hôtes d’un pool doivent exécuter la même version de XenServer et cette version doit contenir le plugin SNMP.

    Remarque :

    Si vous ne voyez pas l’icône SNMP dans XenCenter, cela peut être dû au fait que l’hôte ou un membre du pool n’exécute pas une version de XenServer qui prend en charge SNMP. Mettez à jour l’hôte ou le pool vers la dernière version de XenServer.

  • Le NMS que vous utilisez doit prendre en charge SNMPv2c ou SNMPv3.

  • Votre NMS et XenServer doivent être connectés au réseau.

Contraintes

  • Vous pouvez configurer les paramètres SNMP pour l’ensemble d’un pool ou pour un hôte autonome qui ne fait pas partie d’un pool. Actuellement, vous ne pouvez pas configurer les paramètres SNMP pour un hôte individuel dans un pool.
  • Si vous ajoutez un hôte à un pool sur lequel SNMP est déjà activé et configuré, XenCenter n’applique pas automatiquement les paramètres SNMP du pool au nouvel hôte. Vous devez reconfigurer les paramètres SNMP sur le pool après avoir ajouté le nouvel hôte ou configurer le nouvel hôte avec les mêmes paramètres SNMP avant de l’ajouter au pool.

    Remarque :

    Lors de la reconfiguration des paramètres SNMP sur un pool après l’ajout d’un nouvel hôte, assurez-vous que l’hôte est opérationnel et qu’il n’est pas en mode de maintenance.

  • Avant d’effectuer une mise à niveau progressive du pool de Citrix Hypervisor 8.2 CU1 vers XenServer 8.4 ou d’appliquer des mises à jour à vos hôtes et pools XenServer, sauvegardez les fichiers de configuration suivants si vous les avez modifiés manuellement auparavant et que vous en avez besoin :

    • /etc/snmp/snmpd.xs.conf
    • /etc/sysconfig/snmp
    • /var/lib/net-snmp/snmpd.conf
  • Lorsque l’agent SNMP est hors ligne, les interruptions ne peuvent pas être générées. Par exemple, si l’agent SNMP est redémarré ou si le coordinateur de pool est redémarré ou redésigné.

Configurer SNMP à l’aide de l’interface de ligne de commande xe

Vous pouvez configurer SNMP à l’aide de l’interface de ligne de commande xe ou de XenCenter. Pour plus d’informations sur la configuration de SNMP à l’aide de XenCenter, consultez Surveillance des ressources host et dom0 avec SNMP.

résultat Objets

Lors de la configuration de SNMP, toutes les réponses sont renvoyées au format JSON. Si une commande s’exécute correctement, elle renvoie la paire clé-valeur « code » : 0. Certaines commandes (telles que le get-config ) renvoie un objet JSON imbriqué appelé résultat. Le résultat JSON est également requis pour l’objet set-config qui permet de mettre à jour la configuration SNMP.

Le résultat L’objet JSON est composé des objets suivants commun, agentet Le:

common

Champ Valeurs autorisées Valeur par défaut
enabled Non (désactiver le service SNMP) ou oui (activer le service SNMP) no
debug_log Non (désactiver la journalisation de débogage) ou oui (activer la journalisation de débogage) no
max_nmss N/A (ce champ est en lecture seule et spécifie le nombre maximal de NMS pris en charge) 1

agent

Champ Valeurs autorisées Valeur par défaut
v2c Non (désactiver SNMPv2c) ou oui (activer SNMPv2c) yes
community COMMON_STRING_TYPE (voir note 1) public
v3 Non (désactiver v3) ou oui (activer la v3) no
user_name COMMON_STRING_TYPE (voir note 1)  
authentication_password COMMON_STRING_TYPE où longueur >= 8 (voir note 1)  
authentication_protocol MD5 ou SHA  
privacy_password COMMON_STRING_TYPE où longueur >= 8 (voir note 1)  
privacy_protocol DES ou AES  
engine_id N/A (ce champ est en lecture seule et est généré lors du premier démarrage de l’agent SNMP)  

nmss

Champ Valeurs autorisées Valeur par défaut
uuid UUID NMS (vous définissez cette valeur lorsque vous configurez le récepteur d’interruption NMS et cette valeur doit être cohérente sur tous les hôtes d’un pool)  
address Adresse IPv4 NMS ou nom d’hôte (FQDN)  
port 1 À 65535 162
v2c Non (désactiver SNMPv2c), oui (activez SNMPv2c) ou prenez en charge SNMPv2c ou v3. yes
community COMMON_STRING_TYPE (voir note 1) public
v3 Non (désactiver v3), oui (activer la v3) ou prendre en charge SNMPv2c ou SNMPv3. no
user_name COMMON_STRING_TYPE (voir note 1)  
authentication_password COMMON_STRING_TYPE où longueur >= 8 (voir note 1)  
authentication_protocol MD5 ou SHA  
privacy_password COMMON_STRING_TYPE où longueur >= 8 (voir note 1)  
privacy_protocol DES ou AES  

Remarques  :

  1. COMMON_STRING_TYPE fait référence à une chaîne qui répond aux exigences suivantes :

    • Toute combinaison de lettres, de chiffres, de traits d’union (-), de points (), de dièse (#), de signe arobase (@), d’égal à (=), de deux-points (:) ou de traits de soulignement (_).
    • Longueur entre 6 et 32 inclus.
  2. Les mots de passe ne sont pas stockés en texte brut dans un fichier de configuration de XenServer. Ils sont convertis en une clé localisée et stockés. Le get-config affiche le mot de passe sous la forme d’une constante cachée composée d’astérisques (*).

Configurer le service SNMP

Obtenez l’état du service SNMP :

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=status
<!--NeedCopy-->

Démarrer, arrêter ou redémarrer le service SNMP :

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=<operation>
<!--NeedCopy-->

opération est commencer, arrêterou redémarrer.

Obtenez les détails de la configuration SNMP :

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=get-config
<!--NeedCopy-->

En cas de réussite, cette commande renvoie la paire clé-valeur « code » : 0 et le résultat Objet JSON contenant les détails de configuration du service SNMP. Par exemple :

  "code": 0,
    "result": {
      "common": {
        "enabled": "no",
        "debug_log": "no",
        "max_nmss": 1
      },
      "agent": {
        "v2c": "yes",
        "v3": "no",
        "community": "public",
        "user_name": "",
        "authentication_password": "",
        "authentication_protocol": "",
        "privacy_password": "",
        "privacy_protocol": "",
        "engine_id": "<engine_id>"
      },
      "nmss": []
    }
<!--NeedCopy-->

Copiez le résultat JSON à l’éditeur de texte de votre choix et supprimez tous les sauts de ligne (\n) du fichier. Mettez à jour les champs avec les détails de votre configuration SNMP. Configurez votre SGEN en vous référant à la documentation de votre SGEN et en spécifiant des valeurs pour les champs requis pour le Le objet. Pour plus d’informations, reportez-vous à la Objets énumérées ci-dessus.

Pour configurer le service SNMP, exécutez la commande set-config et fournissez la commande résultat JSON en tant que valeur de paramètre args :config paramètre.

Définissez la configuration SNMP :

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=set-config args:config='<result>'
<!--NeedCopy-->

résultat est le résultat JSON renvoyé par l’objet get-config que vous avez copiée et modifiée.

Remarque :

Pour configurer SNMP pour l’ensemble d’un pool, vous devez exécuter la commande set-config pour chaque hôte du pool.

Si les modifications de configuration réussissent, la commande renvoie la paire clé-valeur « code » : 0. Si les modifications de configuration échouent, le set-config Renvoie l’une des paires clé-valeur suivantes qui indiquent qu’une erreur s’est produite :

  • « code » : 1: Chaîne d’erreur courante. Par exemple, une exception inconnue.
  • « code » : 2: Chaîne d’erreur (paramètre manquant).
  • « code » : 3: Renvoie un Message objet sous la forme d’une liste où chaque élément est au format [field_path, clé, valeur, chaîne d’erreur].

Vous pouvez également envoyer une interruption SNMP de test à votre NMS pour vérifier que les informations du récepteur d’interruption spécifiées sont correctes.

Envoyez une interruption SNMP de test :

  xe host-call-plugin host-uuid=<host-uuid> plugin=snmp fn=send-test-trap args:config='{"nmss":[{"uuid":"<uuid>","address":"<address>","port":162,"v2c":"yes","v3":"no","community":"public","user_name":"<user_name>","authentication_password":"<authentication_password>","authentication_protocol":"<authentication_protocol>","privacy_password":"<privacy_password>","privacy_protocol":"<privacy_protocol>"}]}'
<!--NeedCopy-->

Cette commande envoie une interruption de test à votre NMS avec l’icône msg_name de TEST_TRAP et le msg_body de Il s’agit d’un piège de test du pool XenServer »&lt;pool name&gt;" pour vérifier la configuration du récepteur d’interruption NMS.

Si vous ne recevez pas l’interruption de test, vérifiez à nouveau votre configuration SNMP. En cas d’échec, le send-test-trap renvoie également l’une des paires clé-valeur suivantes qui indiquent qu’une erreur s’est produite :

  • « code » : 1: Chaîne d’erreur courante. Par exemple, une exception inconnue.
  • « code » : 2: Chaîne d’erreur (paramètre manquant).
  • « code » : 3: Renvoie un Message objet sous la forme d’une liste où chaque élément est au format [field_path, clé, valeur, chaîne d’erreur].
  • « code » : 4: Renvoie un Message objet sous la forme d’une liste où chaque élément est au format [adresse nms, port nms, chaîne d’erreur].
Surveiller les ressources host et dom0 avec SNMP