Xenserver
Plugin para monitorizar Xenserver, sus maquinas virtuales, agentes SR y hosts.
- Introducción
- Matriz de compatibilidad
- Prerrequisitos
- Parámetros
- Ejecución manual
- Discovery
- Agentes generados por el plugin
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/.
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
- Máquina con XenServer, con el puerto 443/TCP abierto.
- El puerto 80/TCP (o el puerto donde por donde se produzcan las conexiones http) tiene que estar habilitado
- Tener el Data Server de Pandora FMS habilitado
- Tener el Plugin Server de Pandora FMS habilitado
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
|
Ruta al archivo de configuración del plugin que contiene los parámetros configurados. |
|
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/
Una vez cargado, se podrán monitorizar entornos de XenServer creando tareas de Discovery desde la sección Management > Discovery > Applications.
Para cada tarea se solicitarán los siguientes datos mínimos:
- XenServer IP: IP del servidor de XenServer a monitorizar.
- XenServer user: Usuario de conexión al XenServer.
- Password: Contraseña del usuario de conexión.
- ID as Name: Para activar que el id de un SR sea su nombre de agente, el alias seguirá siendo el nombre.
- Tentacle IP: IP del servidor de Tentacle al que enviar los datos de los agentes. Normalmente este parámetro no se modificará.
- Tentacle port: Puerto del servidor de Tentacle al que enviar los datos. Normalmente este parámetro no se modificará.
- Tentacle extra options: Opciones adicionales para el envio de datos mediante el cliente de Tentacle. Normalmente este parámetro no se modificará.
También se podrá ajustar la configuración de la tarea para personalizar la monitorización deseada:
- Time adjustment: Reajuste de tiempo, introducir en segundos.
- Scan VM IP: Activar para chequear la IP de las máquinas virtuales.
- Scan all Hosts: Activar para habilitar el escaneo de todos los hosts.
- Scan all VM: Activar para habilitar el escaneo de todas las máquinas virtuales.
- Scan all SR: Activar para habilitar el escaneo de todos los agentes SR.
- Extra settings: Bloque de configuración adicional opcional. Aquí se pueden incluir todos los parámetros de configuración del plugin que se quiera como por ejemplo los bloques REJECT o RENAME.
Las tareas que se completen exitosamente dispondrán de un sumario de ejecución con la siguiente información:
- Hosts: Cantidad de hosts monitorizados.
- Storage: Cantidad de storage monitorizados.
- VMs: Cantidad de máquinas virtuales que no son plantillas ni dominio de control. Un dominio de control es una máquina virtual especial que actúa como interfaz de gestión para el entorno Xen.
- Hosts VMs running: Cantidad de máquinas virtuales en ejecución en los hosts monitorizados.
- Hosts VMs installed: Cantidad de máquinas virtuales de los hosts monitorizados, incluidas plantillas y dominios de control.
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 | % |