XenServer

Supervisar los recursos del host y de dom0 con SNMP

Nota:

La función SNMP está disponible para los clientes de XenServer Premium o Trial Edition. Para obtener más información sobre las licencias de XenServer, consulte Licencias. Para actualizar o para obtener una licencia de XenServer, visite el sitio web de XenServer.

Con el rol de administrador de grupos, puede usar SNMP para supervisar de forma remota los recursos consumidos por su host XenServer® y dom0, el dominio de control de su host. Un administrador de SNMP, también conocido como sistema de administración de red (NMS), envía solicitudes de consulta a un agente de SNMP que se ejecuta en un host XenServer. El agente SNMP responde a estas solicitudes de consulta enviando los datos recopilados sobre varias métricas de vuelta al NMS. Los datos que se pueden recopilar se definen mediante identificadores de objeto (OID) en un archivo de texto denominado base de información de administración (MIB). Un OID representa una pieza específica de información medible sobre un dispositivo de red, como el uso de CPU o memoria.

También puede configurar trampas, que son mensajes iniciados por el agente que alertan al NMS de que se ha producido un evento específico en XenServer. Tanto las solicitudes de consulta como las trampas se pueden usar para supervisar el estado de sus grupos de XenServer. Estos se definen como objetos de métrica y de trampa y se identifican mediante OID en un archivo MIB XENSERVER-MIB.txt, disponible para descargar desde la página de descargas de XenServer. Las siguientes tablas proporcionan información sobre estos objetos de métrica y de trampa.

Objetos de métrica

Puede solicitar una información específica sobre sus hosts XenServer mediante las métricas que se enumeran en la siguiente tabla. Estas métricas son utilizadas por el administrador de SNMP al enviar solicitudes de consulta a un agente de SNMP, por lo que puede ver estos datos en su NMS.

Puede ver los datos devueltos de estos objetos de métrica desde su NMS o desde la CLI de xe. Para consultar los objetos de métrica desde la CLI de xe, ejecute host-data-source-query o vm-data-source-query y proporcione el origen de datos RRDD como valor para el parámetro data-source. Por ejemplo:

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

Nota:

De forma predeterminada, el NMS envía solicitudes de consulta OID a los agentes SNMP mediante el puerto 161.

Identificador de objeto (OID) Origen de datos RRDD Datos devueltos Tipo
1.3.6.1.4.1.60953.1.1.1.1 memory Memoria total de Dom0 en MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.2 memory_internal_free Memoria libre de Dom0 en MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.3 cpu_usage Uso de CPU de Dom0 como porcentaje Float
1.3.6.1.4.1.60953.1.1.1.4 memory_total_kib Memoria total del host en MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.5 memory_free_kib Memoria libre del host en MB Unsigned32
1.3.6.1.4.1.60953.1.1.1.6 cpu_avg Uso de CPU del host como porcentaje Float
1.3.6.1.4.1.60953.1.1.1.7 (véase la nota 1) Número de pCPU Unsigned32
1.3.6.1.4.1.60953.1.1.1.8 running_vcpus Número de vCPU en ejecución Unsigned32
1.3.6.1.4.1.60953.1.1.1.9 running_domains Número de máquinas virtuales en ejecución Unsigned32

Notas:

  1. El nombre de una pCPU tiene el formato cpu seguido de un número. Para consultar el número de pCPU desde la CLI de xe, ejecute el siguiente comando:

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

    Esto devuelve una lista de las métricas de CPU que coinciden con la expresión regular cpu[0-9]+.

Traps

Las traps son alertas enviadas por el agente SNMP para notificar al administrador SNMP cuando ocurren ciertos eventos, lo que le permite supervisar sus hosts XenServer e identificar problemas a tiempo. Puede configurar sus ajustes de SNMP para generar una trap cuando se alcanza un límite (por ejemplo, si el uso de CPU del host es demasiado alto). Cuando se genera una trap, se envía a su NMS y los siguientes campos se devuelven como parte del objeto trap.

Nota:

De forma predeterminada, el agente SNMP del host coordinador del pool envía traps al NMS mediante el puerto UDP 162.

Identificador de objeto (OID) Nombre del campo Tipo Descripción
1.3.6.1.4.1.60953.1.10.1.1 operation Cadena Puede ser uno de los siguientes valores: add o del. operation es add si XenServer genera una trampa y la envía a su NMS (también se crea una alerta en XenCenter) o del si se destruye una alerta (por ejemplo, si descarta una alerta).
1.3.6.1.4.1.60953.1.10.1.2 ref Cadena La referencia para el objeto de trampa.
1.3.6.1.4.1.60953.1.10.1.3 uuid Cadena El UUID del objeto de trampa.
1.3.6.1.4.1.60953.1.10.1.4 name Cadena El nombre del objeto de la trampa.
1.3.6.1.4.1.60953.1.10.1.5 priority Entero La gravedad de la trampa. Puede ser uno de los siguientes valores: 1: Crítico, 2: Mayor, 3: Advertencia, 4: Menor, 5: Información, others: Desconocido.
1.3.6.1.4.1.60953.1.10.1.6 class Cadena La categoría de la trampa generada. Puede ser uno de los siguientes valores: VM, Host, SR, Pool, VMPP, VMSS, PVS_proxy, VDI, o Certificate.
1.3.6.1.4.1.60953.1.10.1.7 obj-uuid Cadena El UUID del objeto xapi de las diversas clases del campo class.
1.3.6.1.4.1.60953.1.10.1.8 timestamp Cadena La hora a la que se genera la trampa.
1.3.6.1.4.1.60953.1.10.1.9 body Cadena Información detallada sobre el campo name.

Requisitos previos

  • Todos los hosts de un grupo deben ejecutar la misma versión de XenServer y esta versión debe contener el complemento SNMP.

    Nota:

    Si no puede ver la pestaña SNMP en XenCenter®, podría deberse a que el host o un miembro del grupo no está ejecutando una versión de XenServer que admita SNMP. Actualice el host o el grupo a la última versión de XenServer.

  • El NMS que está utilizando debe ser compatible con SNMPv2c o SNMPv3.

  • Su NMS y XenServer deben estar conectados a la red.

Restricciones

  • Puede configurar los ajustes de SNMP para un grupo completo o para un host independiente que no forme parte de un grupo. Actualmente, no puede configurar los ajustes de SNMP para un host individual en un grupo.
  • Si agrega un host a un grupo que ya tiene SNMP habilitado y configurado, XenCenter no aplica automáticamente la configuración de SNMP del grupo al nuevo host. Debe reconfigurar la configuración de SNMP en el grupo después de agregar el nuevo host o configurar el nuevo host con la misma configuración de SNMP antes de agregarlo al grupo.

    Nota:

    Al reconfigurar los ajustes de SNMP en un grupo después de agregar un nuevo host, asegúrese de que el host esté en funcionamiento y no en modo de mantenimiento.

  • Antes de realizar una actualización gradual del grupo de Citrix Hypervisor 8.2 CU1 a XenServer 8.4 o aplicar actualizaciones a sus hosts y grupos de XenServer, haga una copia de seguridad de los siguientes archivos de configuración si los modificó manualmente antes y los necesita:

    • /etc/snmp/snmpd.xs.conf
    • /etc/sysconfig/snmp
    • /var/lib/net-snmp/snmpd.conf
  • Cuando el agente SNMP está desconectado, no se pueden generar traps. Por ejemplo, si el agente SNMP se reinicia o el coordinador del grupo se reinicia o se reasigna.

Configurar SNMP mediante la CLI de xe

Puede configurar SNMP mediante la CLI de xe o XenCenter. Para obtener más información sobre cómo configurar SNMP mediante XenCenter, consulte Supervisión de recursos de host y dom0 con SNMP.

Objetos result

Al configurar SNMP, todas las respuestas se devuelven en formato JSON. Si un comando se ejecuta correctamente, devuelve el par clave-valor "code": 0. Algunos comandos (como el comando get-config) devuelven un objeto JSON anidado llamado result. El objeto JSON result también es necesario para el comando set-config, que se utiliza para actualizar la configuración de SNMP.

El objeto JSON result se compone de los siguientes objetos common, agent y nmss:

common

Campo Valores permitidos Valor predeterminado
enabled no (deshabilitar el servicio SNMP) o yes (habilitar el servicio SNMP) no
debug_log no (deshabilitar el registro de depuración) o yes (habilitar el registro de depuración) no
max_nmss N/D (Este campo es de solo lectura y especifica el número máximo de NMS compatibles) 1

agent

Campo Valores permitidos Valor predeterminado
v2c no (deshabilitar SNMPv2c) o yes (habilitar SNMPv2c) yes
community COMMON_STRING_TYPE (véase la nota 1) public
v3 no (deshabilitar v3) o yes (habilitar v3) no
user_name COMMON_STRING_TYPE (véase la nota 1)  
authentication_password COMMON_STRING_TYPE donde la longitud >= 8 (véase la nota 1)  
authentication_protocol MD5 o SHA  
privacy_password COMMON_STRING_TYPE donde la longitud >= 8 (véase la nota 1)  
privacy_protocol DES o AES  
engine_id N/A (Este campo es de solo lectura y se genera cuando el agente SNMP se inicia por primera vez)  

nmss

Campo Valores permitidos Valor predeterminado
uuid UUID de NMS (se establece al configurar el receptor de trampas de NMS y este valor debe ser coherente en todos los hosts de un grupo)  
address Dirección IPv4 de NMS o nombre de host (FQDN)  
port 1 a 65535 162
v2c no (deshabilitar SNMPv2c), yes (habilitar SNMPv2c), o admitir SNMPv2c o v3. yes
community COMMON_STRING_TYPE (véase nota 1) public
v3 no (deshabilitar v3), yes (habilitar v3), o admitir SNMPv2c o SNMPv3. no
user_name COMMON_STRING_TYPE (véase nota 1)  
authentication_password COMMON_STRING_TYPE donde la longitud >= 8 (véase la nota 1)  
authentication_protocol MD5 o SHA  
privacy_password COMMON_STRING_TYPE donde la longitud >= 8 (véase la nota 1)  
privacy_protocol DES o AES  

Notas:

  1. COMMON_STRING_TYPE se refiere a una cadena que cumple los siguientes requisitos:
    • Cualquier combinación de letras, números, guiones (-), puntos (.), almohadillas (#), arrobas (@), signos de igual (=), dos puntos (:) o guiones bajos (_).
    • Longitud entre 6 y 32, ambos inclusive.
  2. Las contraseñas no se almacenan en texto sin formato en ningún archivo de configuración de XenServer. Se convierten a una clave localizada y se almacenan. El comando get-config muestra la contraseña como una constante oculta compuesta por asteriscos (*).

Configurar el servicio SNMP

Obtener el estado del servicio SNMP:

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

Iniciar, detener o reiniciar el servicio SNMP:

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

donde operation es start, stop o restart.

Obtener los detalles de configuración de SNMP:

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

Si se realiza correctamente, este comando devuelve el par clave-valor "code": 0 y el objeto JSON result que contiene los detalles de configuración del servicio SNMP. Por ejemplo:

"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-->

Copie el objeto JSON result en su editor de texto preferido y elimine todos los caracteres de nueva línea (\n) del archivo. Actualice los campos con los detalles de configuración de SNMP. Configure su NMS consultando la documentación de su NMS y especificando valores para los campos necesarios para el objeto nmss. Para obtener más información, consulte los objetos enumerados anteriormente.

Para configurar el servicio SNMP, ejecute el comando set-config y proporcione el objeto JSON result editado como valor de parámetro para el parámetro args:config.

Establecer la configuración de SNMP:

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

donde result es el objeto JSON result devuelto por el comando get-config que copió y editó.

Nota:

Para configurar SNMP para un grupo completo, debe ejecutar el comando set-config para cada host del grupo.

Si los cambios de configuración son correctos, el comando devuelve el par clave-valor "code": 0. Si los cambios de configuración no son correctos, el comando set-config devuelve uno de los siguientes pares clave-valor que indican que se ha producido un error:

  • "code": 1: Cadena de error común. Por ejemplo, una excepción desconocida.
  • "code": 2: Cadena de error (falta un parámetro).
  • "code": 3: Devuelve un objeto message como una lista donde cada elemento tiene el formato de [field_path, key, value, error string].

También puede enviar una trampa SNMP de prueba a su NMS para verificar que la información del receptor de trampa especificada es correcta.

Enviar una trampa SNMP de prueba:

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-->

Este comando envía una trampa de prueba a su NMS con el msg_name de TEST_TRAP y el msg_body de This is a test trap from XenServer pool "<pool name>" to verify the NMS Trap Receiver configuration.

Si no recibe la trampa de prueba, compruebe de nuevo su configuración de SNMP. Si no tiene éxito, el comando send-test-trap también devuelve uno de los siguientes pares clave-valor que indican que se ha producido un error:

  • "code": 1: Cadena de error común. Por ejemplo, una excepción desconocida.
  • "code": 2: Cadena de error (falta un parámetro).
  • "code": 3: Devuelve un objeto message como una lista donde cada elemento tiene el formato de [field_path, key, value, error string].
  • "code": 4: Devuelve un objeto message como una lista donde cada elemento tiene el formato de [nms address, nms port, error string].
Supervisar los recursos del host y de dom0 con SNMP