Xenserver

Plugin para monitorizar Xenserver, sus maquinas virtuales, agentes SR y hosts.

Introducción

Este documento tiene como objetivo la descripción de la monitorización de servidores XenServer con Pandora FMS. En base a nuestra experiencia en monitorización de sistemas, se han elegido una serie de parámetros a monitorizar por defecto, más tarde podrán hacerse modificaciones según necesidades de cada cliente.

Para describir a grandes rasgos la arquitectura de XenServer podemos hablar de tres elementos:

● Los XenServers o host (Citrix llama “hosts” a los XenServers, no confundir VM con hosts).
● Las máquinas virtuales o VM que estarán instaladas en un host determinado.
● Los Storage Repositories o SR que estarán igualmente asociados a un host determinado.

La información de estos elementos se extraerá mediante consultas a la XenAPI y consultas RRD. Más información en https://pypi.org/project/XenAPI/.

image-1683797512042.png

El plugin hará las consultas para extraer la información, seleccionará la información requerida y generará un documento XML por cada VM, por cada host y por cada SR. Cada XML contendrá los datos de los parámetros que hemos decidido monitorizar de cada elemento. Estos xml se enviará por Tentacle al servidor de Pandora. Una vez estos xml llegan al servidor, en la consola web veremos como se genera un agente nuevo por cada xml, y como en estos agentes se genera un módulo por cada parámetro que estamos monitorizando.

En el XenServer, el puerto 443/TCP tiene que estar habilitado para que se puedan realizar las consultas a la API. Además, el puerto 80/TCP (o el puerto por donde se produzcan las conexiones http) tiene que estar habilitado, para que se puedan hacer las
consultas RRD.

 

Matriz de compatibilidad

 

Entornos donde se ha probado XenServer 6.2
Entornos donde funciona XenServer 6.2 o superior

 

Sistemas donde se ha probado Rocky linux, Fedora 34
Sistemas donde funciona Cualquier sistema linux

Prerrequisitos

 

Se recomienda que las máquinas virtuales tengan XenServer Tools instalada, ya que si no la información reportada de las máquinas se verá muy limitada.

 

Parámetros

Parámetros

  • -c <ruta_a_fichero_conf> o --conf <ruta_a_fichero_conf>
Ruta al archivo de configuración del plugin que contiene los parámetros configurados.
  • --as_discovery_plugin <1|0>
Ejecutar el plugin en modo discovery, este mostrará información sobre la ejecución, como el numero de maquinas.

En el fichero de configuración (.conf) indicaremos los siguientes parámetros:

[CONF]
xen_server_ip = <ip_del_servidor>
user = <usuario>
password = <contraseña>
temporal = <directorio de archivos temporales>

[PANDORA]
group = <grupo en el que se meterán los agentes>
logfile = <ruta del archivo log creado por el plugin>
interval = <intervalo en segundos en el que se crean los agentes del plugin>
transfer_mode = <modo de ejecución, las dos opciones posibles son local o tentacle>
tentacle_ip = <ip de tentacle, introducir el de la máquina de Pandora en la que se quieren visualizar los agentes>
tentacle_client = <comando del sistema tentacle_client, por defecto es tentacle_client>
tentacle_port = <puerto de tentacle, por defecto es 41121>
tentacle_opts = <opciones adicionales para la transferencia de ficheros al servidor de Tentacle indicado>
data_dir = <ruta de la carpeta donde se crearan los XML de los agentes para el modo de transferencia local (transfer_mode = local)>
id_as_name = < 1 si se quiere usar el id de los SR como nombre de los agentes de estos (el alias seguirá siendo el nombre del SR)

[TUNNING]
time_adjustment = <Reajuste de tiempo, introducir en segundos>
scan_vm_ip = <Activar con 1 para chequear la ip de la maquina virtual>
scan_all_vm = <Activar con 1 para habilitar el escaneo de todas las máquinas virtuales>
scan_all_sr = <Activar con 1 para habilitar el escaneo de todos los agentes SR>
scan_all_hosts = <Activar con 1 para habilitar el escaneo de todos los hosts>

[REJECT]
<nombre de la maquina virtual, sr o host que quieres desactivar> = 1

[RENAME]
<nombre de la maquina virtual, sr o host que quieres renombrar> = <nombre que le quieres poner>

Un ejemplo de archivo de configuración:

[CONF]
xen_server_ip=192.168.80.17
user=root
password=S4ToBh!
temporal=/tmp

[PANDORA]
group=Unknown
logfile=/tmp/pandora_xenserver.log
interval=300
transfer_mode=tentacle
tentacle_ip=172.42.42.101
tentacle_client=tentacle_client
tentacle_port=41121
tentacle_opts=
data_dir=/tmp/data_in
id_as_name = 1

[TUNNING]
time_adjustment=10
scan_vm_ip=1
scan_all_vm=1
scan_all_sr=1
scan_all_host=1

[REJECT]
vm_test_env=1
sr_additional=1

[RENAME]
vm_env_prod_157=Prod157
vm_env_dev_157=Dev157

Hay que tener en cuenta que el intervalo que definimos en este archivo de configuración, que será el intervalo de los agentes que se generen cuando se ejecute el plugin, tiene que ser igual al intervalo de ejecución del plugin. Si no es así los módulos de los agentes generados se pondrán en “desconocido” en los momentos en los que los agentes intenten recoger los datos pero el plugin aún no se haya ejecutado.



Ejecución manual

El plugin puede ejecutarse manualmente por terminal para comprobar su correcta configuración antes de su posterior instalación en pandoraFMS. Este cuenta con dos parámetros, -c o --conf (se puede usar el que se prefiera) para llamar al archivo conf de configuración.

Para una correcta configuración del archivo de configuración revise cuidadosamente el capitulo anterior de este manual llamado "Parámetros". En el vienen detalladas todas las opciones de configuración posibles.

Ejecución normal

./pandora_xenserver -c <ruta al archivo conf de configuración>

Un ejemplo de salida sería el siguiente:

<module>
<name><![CDDATA[XenServer Plugin]]></name>
<type><![CDTADA[async_string]]></type>
<description><!CDDATA[Result of XenServer Plugin execution]]></description>
<data><![CDATA[OK]]></data>
</module>

Como discovery plugin

./pandora_xenserver -c <ruta al archivo conf de configuración> --as_discovery_plugin 1 

Un ejemplo de salida sería el siguiente:

[{"summary":{"Hosts":1,"Storage":7, "VMs":23,"Hosts VMs running":10,"Hosts VMs installed":95}}]

Discovery

Este plugin puede integrarse con el Discovery de Pandora FMS.

Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:

https://pandorafms.com/library/

image-1687944638257.png

Una vez cargado, se podrán monitorizar entornos de XenServer creando tareas de Discovery desde la sección Management > Discovery > Applications.

image-1687944787532.png

Para cada tarea se solicitarán los siguientes datos mínimos:

image.png

También se podrá ajustar la configuración de la tarea para personalizar la monitorización deseada:

image.png

Las tareas que se completen exitosamente dispondrán de un sumario de ejecución con la siguiente información:

image-1684313757448.png

Las tareas que no se completen exitosamente dispondrán de un sumario de ejecución registrando los errores producidos.

Agentes generados por el plugin

El plugin genera tres tipos de agentes:

● máquina virtual (VM)
● disco de almacenamiento (SR)
● XenServer (Host)

Agentes del tipo Storage Repository (SR)

Por cada SR se generará un agente, que tendrá un nombre del tipo: ​XenSR_<nombre_del_SR>

Módulos de los agentes SR
Para cada agente de este tipo se generarán los siguientes módulos:

Nombre Descripción Tipo de dato Unidad
physical_size Espacio físico generic_data GB
physical_utilisation Uso físico generic_data GB
free space Espacio libre generic_data GB
used percent Porcentaje de SR usado generic_data %

Agentes del tipo Virtual Machine (VM)

 Cada agente tendrá la IP de la máquina virtual y su sistema
operativo (siempre que tenga XenServer Tools instaladas

Módulos de los agentes VM

Para cada agente de este tipo se generarán los siguientes módulos:

Nombre módulo Descripción Tipo de dato Unidad
Status Devuelve si una VM está
ejecutándose o no
generic_proc -
Status description Nombre del estado generic_data_string -
Memory used Porcentaje de memoria RAM
utilizado
generic_data %
cpuX Porcentaje de carga de CPU generic_data %
Xenxerver Tools Comprobar si la VM se ha
instalado y actualizar XenServer
tools
generic_proc -
VDI_<nombre vdi>_size Tamaño de VDI generic_data GB
VDI_<nombre vdi>_used Porcentaje de espacio físico que ocupa actualmente la imagen de disco en el repositorio de almacenamiento. Tenga en cuenta que el porcentaje de utilización en los discos de tipo thick siempre será el 100%, ya que se reserva todo el espacio en la máquina al crear el disco. generic_data %
Vbd_XX_write Velocidad de escritura en bytes
por segundo
generic_data Bytes/sec
Vbd_XX_read Velocidad de lectura en bytes
por segundo
generic_data Bytes/sec

Agentes tipo XenServer

Por cada host o server se generará un agente, que tendrá un nombre del tipo:

<nombre_del_XenServer>​

Cada agente reconocerá su IP.


Módulos de los agentes XenServer

Para cada agente de este tipo se generarán los siguientes módulos:

Nombre Módulo descripción tipo de dato unidad
VMs running Cantidad de VMs ejecutándose generic_data -
VMs installed Cantidad de VMs instaladas generic_data -
Memory used Porcentaje de memoria RAM
utilizada
generic_data %
Load CPU avg Porcentaje de carga media de
CPU
generic_data %