Horizon VMware Discovery

Este documento describe la funcionalidad Horizon de de PandoraFMS, compuesta por el plugin de discovery.


Introducción

Este plugin sirve para monitorizar entornos VMware Horizon mediante llamadas a su API REST, recopilando información detallada sobre el estado de pools de escritorios, servidores RDS, sesiones activas, licencias, métricas del sistema y otros elementos clave de la infraestructura. A través de múltiples endpoints predefinidos, el script extrae datos sobre la operación y el rendimiento de la plataforma, permitiendo identificar posibles cuellos de botella o fallos en el servicio.

El sistema se autentica mediante credenciales configurables, consulta los endpoints habilitados según los permisos asignados al usuario, y transforma la información recolectada en agentes y módulos en formato XML. Estos datos son enviados automáticamente al servidor de Pandora FMS utilizando el modo de transferencia Tentacle, facilitando la monitorización distribuida de la plataforma Horizon. Además, el plugin está preparado para gestionar múltiples recursos de forma paralela y escalar según sea necesario, proporcionando una solución flexible y automatizada para el seguimiento de entornos Horizon empresariales.

Prerrequisitos

FEDERATED_LDAP_VIEW  
FEDERATED_SESSIONS_VIEW  
GLOBAL_CONFIG_VIEW  
MACHINE_VIEW  
POOL_VIEW  
UDD_VIEW  
VC_CONFIG_VIEW


Parámetros

Parámetros
--conf Ruta al archivo de configuración
Archivo de configuración (--conf)
domain = < nombre del dominio >
username = < nombre de usuario >
password = < contraseña del usuario >
url = < url del entorno >
interval = < intervalo de creación del agente >
temporal = < ruta de ficheros temporales >
transfer_mode = < modo de transferencia >
tentacle_ip = < dirección de tentacle >
tentacle_port = < puerto de tentacle >
data_dir = < ruta de los .data de los agentes >

Ejemplo
user = "admin"
password = "P@ssw0rd123"
domain = "CORP"
url = "https://horizon.example.com"
interval = 300
temporal = /tmp
transfer_mode = tentacle
tentacle_ip =172.42.42.101
tentacle_port =41121
data_dir = /var/spool/pandora/data_in/

Ejecución manual

El formato de la ejecución del plugin es el siguiente:

./pandora_horizon --conf < ruta al fichero de configuración >

Por ejemplo:

./pandora_jmx --conf /usr/share/pandora_server/util/plugin/horizon.conf 

La ejecución devolverá una salida en formato JSON con información sobre la ejecución, y generará un fichero XML para cada agente monitorizado que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.

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 Horizon creando tareas de Discovery desde la sección Management > Discovery > App

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

image.png

Las tareas completadas con éxito tendrán un resumen de ejecución con la siguiente información:

image.png

Agentes y módulos generados por el plugin

La ejecución creara los siguientes agentes, con los siguientes módulos :

Agente:
VMware Horizon Desktop Pools

Módulos (por cada Desktop Pool):
<display_name> num_machines
<display_name> num_connected_sessions
<display_name> occupancy_count

Agente:
VMware Horizon Rds-servers

Módulos (por cada RDS Server - Inventory):
<name><key>   (para cada campo del JSON de inventario, tipo string → generic_data_string, tipo numérico → generic_data)

Módulos (por cada RDS Server - Monitor):
<name> Agent Build
<name> Agent Version
<name> Max Sessions Count Configured
<name> Operating System
<name> State
<name> Enabled
<name> Farm ID
<name> Server ID
<name> Load Index
<name> Load Preference
<name> Name
<name> Session Count
<name> Status

Agente:
VMware Horizon Sessions

Módulos:
Sessions
Active App Sessions
Disconnected App Sessions
Idle App Sessions
Pending App Sessions
Android Clients
Browser Clients
iOS Clients
Linux Clients
Mac Clients
Other Clients
Windows Clients
Active Desktop Sessions
Disconnected Desktop Sessions
Idle Desktop Sessions
Pending Desktop Sessions
External Gateways
Internal Gateways
Unknown Gateways
BLAST Sessions
Other Protocols
PCOIP Sessions
RDP Sessions

Agente:
VMware Horizon Machines

Módulos:
<NOMBRE_MÁQUINA> Pairing State
<NOMBRE_MÁQUINA> State
<NOMBRE_MÁQUINA> Last Maintenance Time
<NOMBRE_MÁQUINA> Memory MB
<NOMBRE_MÁQUINA> Operation State
<NOMBRE_MÁQUINA> Disk Capacity MB

Agente:
Physical machines

Módulos:
<NOMBRE_MÁQUINA>

Agente:
VMware Horizon Persistent Disks

Módulos:
<NOMBRE_DISCO> Access Group ID  
<NOMBRE_DISCO> Capacity MB  
<NOMBRE_DISCO> Datastore ID  
<NOMBRE_DISCO> Datastore Name  
<NOMBRE_DISCO> Desktop Pool ID  
<NOMBRE_DISCO> Desktop Pool Name  
<NOMBRE_DISCO> Disk ID  
<NOMBRE_DISCO> Last Attached Time  
<NOMBRE_DISCO> Machine ID  
<NOMBRE_DISCO> Machine Name  
<NOMBRE_DISCO> Status  
<NOMBRE_DISCO> Usage  
<NOMBRE_DISCO> User ID  
<NOMBRE_DISCO> User Name  
<NOMBRE_DISCO> vCenter ID  

Agente:
VMware Horizon Health Metrics

Módulos:
<COMPONENTE> Error Count (unidad: count)  
<COMPONENTE> Healthy Count (unidad: count)  
<COMPONENTE> Total Count (unidad: count)  
<COMPONENTE> Unknown Count (unidad: count)  
<COMPONENTE> Warning Count (unidad: count)  

Agente:
VMware Horizon Connection Servers

Módulos (por cada servidor de conexión):
<NOMBRE_SERVIDOR> Connection Count (unidad: count)
<NOMBRE_SERVIDOR> CS Replications (unidad: count)
<NOMBRE_SERVIDOR> Last Updated Timestamp
<NOMBRE_SERVIDOR> Name (cadena)
<NOMBRE_SERVIDOR> Services (cadena)
<NOMBRE_SERVIDOR> Session Protocol Data (cadena)
<NOMBRE_SERVIDOR> Session Threshold
<NOMBRE_SERVIDOR> Status (cadena)
<NOMBRE_SERVIDOR> Tunnel Connection Count (unidad: count)
<NOMBRE_SERVIDOR> Unrecognized PCOIP Requests Count (unidad: count)
<NOMBRE_SERVIDOR> Unrecognized Tunnel Requests Count (unidad: count)
<NOMBRE_SERVIDOR> Unrecognized XMLAPI Requests Count (unidad: count)

Agente:
VMware Horizon App Volumes

Módulos (por cada servidor de conexión dentro de cada app volumes manager):
<NOMBRE_SERVIDOR> Certificate Valid
<NOMBRE_SERVIDOR> Certificate Valid From (cadena)
<NOMBRE_SERVIDOR> Certificate Valid To (cadena)
<NOMBRE_SERVIDOR> Status (cadena)
<NOMBRE_SERVIDOR> Thumbprint Accepted

Agente:

VMware Horizon Gateways

Módulos generados por cada gateway (<name>):

<name> Active Connection Count (numérico)
<name> Blast Connection Count (numérico)
<name> Last Updated Timestamp (string)
<name> PCOIP Connection Count (numérico)
<name> Status (string)

Agente:

VMware Horizon Usage Metrics

Módulos generados:

Usage Metrics Current Concurrent Application Sessions (numérico)
Usage Metrics Current Collaborative Sessions (numérico)
Usage Metrics Current Full VM Sessions (numérico)
Usage Metrics Current Unmanaged VM Sessions (numérico)
Usage Metrics Total Collaborators (numérico)
Usage Metrics Total Concurrent Connections (numérico)
Usage Metrics Total Concurrent Sessions (numérico)
Usage Metrics Total Named Users (numérico)

Usage Metrics Highest Concurrent Application Sessions (numérico)
Usage Metrics Highest Collaborative Sessions (numérico)
Usage Metrics Highest Full VM Sessions (numérico)
Usage Metrics Highest Unmanaged VM Sessions (numérico)
Usage Metrics Highest Total Collaborators (numérico)
Usage Metrics Highest Total Concurrent Connections (numérico)
Usage Metrics Highest Total Concurrent Sessions (numérico)
Usage Metrics Highest Total Named Users (numérico)

Agente:

VMware Horizon System Metrics

Módulos generados:

System Metrics Event Error Count (numérico)
System Metrics Event Warning Count (numérico)

System Metrics Health Metrics Component (string)
System Metrics Health Metrics Error Count (numérico)
System Metrics Health Metrics Healthy Count (numérico)
System Metrics Health Metrics Total Count (numérico)
System Metrics Health Metrics Unknown Count (numérico)
System Metrics Health Metrics Warning Count (numérico)

System Metrics Problem RDS Hosts Count (numérico)
System Metrics Problem vCenter VMs Count (numérico)
System Metrics Sessions Count (numérico)

Agente:

VMware Horizon Virtual Datacenters

Módulos generados por cada virtual datacenter (<vc_name>):

<vc_name> Connection Server <server_name> Server Status (string)

<vc_name> Datastore <datastore_name> Path (string)
<vc_name> Datastore <datastore_name> URL (string)
<vc_name> Datastore <datastore_name> Capacity MB (numérico)
<vc_name> Datastore <datastore_name> Free Space MB (numérico)
<vc_name> Datastore <datastore_name> Status (string)

<vc_name> Host <host_name> Cluster Name (string)
<vc_name> Host <host_name> CPU Core Count (numérico)
<vc_name> Host <host_name> CPU MHz (numérico)
<vc_name> Host <host_name> Memory Size MB (numérico)
<vc_name> Host <host_name> Overall CPU Usage MHz (numérico)
<vc_name> Host <host_name> Overall Memory Usage MB (numérico)
<vc_name> Host <host_name> Status (string)

<vc_name> Desktop Pools and Farms Count (numérico)