Horizon VMware Discovery
Este documento describe la funcionalidad Horizon de de PandoraFMS, compuesta por el plugin de discovery.
- Introducción
- Prerrequisitos
- Parámetros
- Ejecución manual
- Discovery
- Agentes y módulos generados por el plugin
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
- El sistema que ejecuta el plugin debe de tener conectividad y poder llegar al de forma remota al entorno de Horizon.
- Los siguientes roles y privilegios son necesarios :
FEDERATED_LDAP_VIEW
FEDERATED_SESSIONS_VIEW
GLOBAL_CONFIG_VIEW
MACHINE_VIEW
POOL_VIEW
UDD_VIEW
VC_CONFIG_VIEW
Parámetros
| --conf | Ruta al archivo de configuración |
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:
- Domain: Nombre del dominio
- Url: Url del entorno
- Username: Nombre de usuario
- Password: Contraseña del usuario
- Use prefix: Para usar prefijo para los agentes
- Max threads: Número de hilos
- Tentacle IP: Dirección de tentacle
- Tentacle port: Puerto de tentacle
Las tareas completadas con éxito tendrán un resumen de ejecución con la siguiente información:
- Total agents : Número total de agentes generados por la tarea.
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)