# Citrix monitoring plugin

# Introducción

Se han elegido una serie de módulos "base" en base a nuestra experiencia en monitorización de sistemas y los parámetros óptimos para diagnosticar posibles cuellos de botella en estos servidores. Para la extracción de la información se utiliza:

- El software ya instalado en el sistema (WMI, Contadores de Rendimiento, Powershell), para la monitorización realizada por el plugin sin tener que instalar librerias o utilidades de terceros.
- El sistema, que se integra con el agente Windows y con la capacidad de distribuir colecciones de ficheros, de forma que se puede distribuir el plugin por un lado y las colecciones de ficheros de forma individual -por agente- y/o por política.

# Matriz de compatibilidad

<table border="1" id="bkmrk-sistemas-donde-se-ha-1" style="width: 99.8765%;"><tbody><tr><td style="width: 38.1137%;">**Sistema dodnde se ha probado**</td><td style="width: 61.8761%;">Windows Server 2008, Citrix XenApp 6</td></tr><tr><td style="width: 38.1137%;">**Sistemas en los que se espera que funcione**</td><td style="width: 61.8761%;">Mismo sistema o superior </td></tr></tbody></table>

Según el tipo de sistema operativo y el idioma en que se encuentre, el formato de los contadores de rendimiento podrían cambiar y habria que adaptarlos en función de dichas circunstancias.

# Prerrequisitos

Los requisitos para ejecutar el plugin son:

- Sistema con Powershell y WMI habilitados.
- Agente PandoraFMS con permisos para ejecutar scripts de Powershell.

# Configuración

##### **Instalación**

Copiar el plugin al directorio de plugins del agente, distrubuyéndolo mediante file collections. Lo mismo con el archivo conf. La llamada desde el agente será similar a esta, pero usando los paths donde esté instalado el plugin y el conf.

```bash
module_plugin "<ruta-powershell>\powershell.exe" -file C:\'<rutaplugin>\pandora_citrix.ps1' -perf C:\'<ruta-conf>\counters_data.txt' -serv C:\'<rutaconf>\services.txt’ -inc C:\'<ruta-conf>\counters_inc.txt' 2> error.log 
```

En el caso de que no querramos monitorizar ningún tipo de contador o solo de algún tipo específico, habria que realizar estas ejecuciones:

- Solo con contadores generic\_data:

```bash
module_plugin "<ruta-powershell>\powershell.exe" -file C:\'<rutaplugin>\pandora_citrix.ps1' -perf C:\'<ruta-conf>\counters_data.txt' -serv C:\'<rutaconf>\services.txt' 2> error.log 
```

- Solo con contadores generic\_inc:

```bash
module_plugin "<ruta-powershell>\powershell.exe" -file C:\'<ruta-plugin>\pandora_ citrix.ps1' -perf none -serv C:\'<ruta-conf>\services.txt'   -inc C:\'<rutaconf>\counters_inc.txt'' 2> error.log 
```

- Sin contadores:

```bash
module_plugin "<ruta-powershell>\powershell.exe" -file C:\'<ruta-plugin>\pandora_ citrix.ps1' -perf none -serv C:\'<ruta-conf>\services.txt' 2> error.log 
```

- Con contadores y sin servicios:

```bash
module_plugin "<ruta-powershell>\powershell.exe" -file C:\'<ruta-plugin>\pandora_ citrix.ps1' -perf C:\'<ruta-conf>\counters_data.txt' -inc C:\'<ruta-conf>\counters_inc.txt' 2> error.log 
```

**Configuración**

Antes de todo debemos tener activada la ejecución de plugins desde el terminal de powershell Para ello debemos ejecutar este comando en la terminal de powershell:

```powershell
set-executionPolicy -Scope Process -ExecutionPolicy Bypass 
```

o bien

```powershell
set-executionPolicy RemoteSigned 
```

En el caso de que viésemos que si ejecutamos el plugin desde la terminal nos devuelve la información correctamente, pero en el caso de que lo ejecutemos en el agente de pandora no devuelve ningún resultado y en modo debug nos dice que el remote\_signed no se encuentra habilitado, deberíamos añadir el siguiente módulo para que se active dentro de la ejecución del agente. Esto solo lo tenemos que añadir la primera vez, después se quedara habilitado y no tendremos problemas.

```powershell
module_begin 
module_name Remote_signed 
module_type generic_data_string 
module_exec powershell.exe –command set-executionPolicy -Scope Process -ExecutionPolicy bypass 
module_end 
```

o bien

```powershell
module_begin 
module_name Remote_signed 
module_type generic_data_string
module_exec powershell.exe -command set-executionPolicy RemoteSigned 
module_end 
```

Como hemos observado en la ejecución del plugin, va acompañado de dos o tres ficheros de configuración, uno con el nombre de los servicios y otro dos con el nombre de los contadores de rendimiento que se van a monitorizar, en uno indicaremos los contadores que queremos ver como tipo generic\_data y en el segundo los que usaremos de tipo incremental ( generic\_data\_inc ). En el caso de que el de tipo incremental no se utilice no deberá añadirse a la ejecución. Únicamente deben llevar esta información los dos o tres ficheros de configuración. Cada servicio o cada contador de rendimiento debe estar en una línea y en el caso de que no se utilice eliminarlo del listado.

**Ejemplo de estos ficheros de configuración**

*Services.txt*

```powershell
Citrix Independent Management Architecture
Citrix XML
Citrix XTE Server
Citrix CPU Utilization Management/Resource Management
Citrix CPU Utilization Management/User Session sync
Citrix CPU Utilization Management/CPU Rebalancer services states
Citrix Print Manager
Citrix Virtual Memory Optimization
Citrix MF COM Remote Desktop Services/Terminal Services
Citrix WMI
Citrix Client Network
Citrix Streaming/Citrix Streaming Helper
Server
Netlogon
Remote Procedure Call (RPC)
Workstation
Print Spooler
```

*Counters\_data.txt*

```powershell
\Processor(*)\% Processor Time
\System\Processor Queue Length
\Memory\Available Bytes
\Memory\Pages /sec
\Paging File\% Usage
\PhysicalDisk(_Total)\% Free Space
\LogicalDisk(_Total)\% Free Space
\LogicalDisk(_Total)\% Disk Time
\PhysicalDisk(_Total)\Current Disk Queue Length
\LogicalDisk(_Total)\Current Disk Queue Length
\LogicalDisk(_Total)\ Avg. Disk Sec/Read
\LogicalDisk(_Total)\ Avg. Disk Sec/Write
\LogicalDisk(_Total)\ Avg. Disk Sec/Transfer
\PhysicalDisk(_Total)\ Avg. Disk Sec/Read
\PhysicalDisk(_Total)\ Avg. Disk Sec/Write
\PhysicalDisk(_Total)\ Avg. Disk Sec/Transfer
\Citrix MetaFrame Presentation Server\Application Resolution Time (ms)
\Citrix MetaFrame Presentation Server\DataStore Connection Failure
\Citrix MetaFrame Presentation Server\Number of busy XML threads
\Citrix MetaFrame Presentation Server\Resolution WorkItem Queue Ready Count
\Citrix MetaFrame Presentation Server\WorkItem Queue Ready Count
\Citrix Licensing\Citrix Licensing - License Server Connection Failure
\Citrix Licensing\Citrix Licensing - Last Recorded License Check - Out Response Time
\Process(ImaSrv)\Private Bytes 
```

# Contadores de rendimiento más importantes de Citrix

1.- Contadores de rendimiento del sistema (Citrix )

<div id="bkmrk-%5Cprocessor%28%2A%29%5C%25-proc" style="text-align: justify;"><div>**\\Processor(\*)\\% Processor Time -&gt;** Este contador es el principal indicador de la actividad del procesador y muestra el porcentaje promedio de tiempo de ocupación observado durante el intervalo de muestreo. Se calcula mediante la supervisión del tiempo que el servicio está inactivo y restando ese valor de 100%. El fabricante indica que entre 80% y 90% en un periodo de 15 minutos se configure en estado de Advertencia y en más de 90% en estado Crítico.</div><div>  
</div><div>**\\System\\Processor Queue Length -&gt;** Es el tamaño actual en bytes del espacio de direcciones virtuales del proceso está utilizando. El uso del espacio de direcciones virtuales no implica necesariamente uso correspondiente de disco o páginas de memoria principal. El espacio virtual es finito, y el proceso puede limitar su capacidad para cargar bibliotecas.</div><div>  
</div><div>**\\Memory\\Available Bytes -&gt;** La memoria disponible indica la cantidad de memoria que queda después de la asignación de bloque no paginado, las asignaciones de bloques paginados, proceso de "conjuntos de trabajo, y toda la memoria caché del sistema de archivos han tomado su módulo. &lt;30% RAM en estado de advertencia, &lt;15% RAM en estado crítico.</div><div>  
</div><div>**\\Memory\\Pages /sec -&gt;** Es la velocidad a la que las páginas se leen o se escriben en disco para resolver errores graves de página. Estado de advertencia entre 10 y 20, Crítico &gt; 20.</div><div>  
</div><div>**\\Paging File\\% Usage -&gt;** Este es el porcentaje de la instancia del archivo de página en uso. Advertencia 40 -70%, Crítico &gt; 70%.</div><div>  
</div><div>**\\PhysicalDisk(\_Total)\\% Free Space -&gt;** Es el porcentaje de espacio total utilizable en el disco físico seleccionado que está libre. Critico &lt;5%, Warning 5-10%.</div><div>  
</div><div>**\\LogicalDisk(\_Total)\\% Free Space -&gt;** Es el porcentaje de espacio total utilizable en el disco lógico seleccionado que está libre. Critico &lt;5%, Warning 5-10%.</div><div>  
</div><div>**\\LogicalDisk(\_Total)\\% Disk Time -&gt;** Marca como de ocupado se encuentra el disco. Warning &gt; 70% Consistentemente y Critico &gt; 90%.</div><div>  
</div><div>**\\PhysicalDisk(\_Total)\\Current Disk Queue Length -&gt;** Esto indica el número de operaciones I / O están esperando el disco duro esté disponible. Si el valor es aquí más grande que los dos veces el número de ejes, eso significa que el propio disco puede ser el cuello de botella. &gt;=1 Warning, &gt;=2 Critico.</div><div>  
</div><div>**\\LogicalDisk(\_Total)\\Current Disk Queue Length -&gt;** Proporciona una medida primaria de la congestión de disco. Es una indicación de la cantidad de transacciones que están esperando para ser procesados. &gt;=1 Warning, &gt;=2 Critico consistentemente, posibilidad de crearlo con FF Threshold 2.</div><div>  
</div><div>**\\LogicalDisk(\_Total)\\ Avg. Disk Sec/Read -&gt;** Muestra el promedio de tiempo en segundos de una lectura desde o en un disco. &gt;= 15 ms Advertencia, &gt;=20 ms Critico.</div><div>  
</div><div>**\\LogicalDisk(\_Total)\\ Avg. Disk Sec/Write -&gt;** Muestra el promedio de tiempo en segundos de una escritura desde o en un disco. &gt;= 15 ms Advertencia, &gt;=20 ms Critico.</div><div>  
</div><div>**\\LogicalDisk(\_Total)\\ Avg. Disk Sec/Transfer -&gt;** Muestra el promedio de tiempo en segundos de una transferencia desde o en un disco. &gt;= 15 ms Advertencia, &gt;=20 ms Critico.</div><div>  
</div><div>**\\PhysicalDisk(\_Total)\\ Avg. Disk Sec/Read -&gt;** Muestra el promedio de tiempo en segundos de una lectura desde o en un disco. &gt;= 15 ms Advertencia, &gt;=20 ms Critico.</div><div>  
</div><div>**\\PhysicalDisk(\_Total)\\ Avg. Disk Sec/Write -&gt;** Muestra el promedio de tiempo en segundos de una escritura desde o en un disco. &gt;= 15 ms Advertencia, &gt;=20 ms Critico.</div><div>  
</div><div>**\\PhysicalDisk(\_Total)\\ Avg. Disk Sec/Transfer -&gt;** Muestra el promedio de tiempo en segundos de una transferencia desde o en un disco. &gt;= 15 ms Advertencia, &gt;=20 ms Critico.</div><div>  
</div><div>**\\Network Interface (\*)\\ Bytes Total/sec -&gt;** Muestra la velocidad a la que el adaptador de red procesa los bytes de datos. Este contador incluye todos los archivos y aplicaciones de datos, además de la información de protocolo, como los encabezados de los paquetes. </div><div>  
</div></div>**Nota:** El nombre de todos estos contadores puede variar dependiendo de la versión y del idioma del SO utilizado.

2.- Contadores de rendimiento XenApp

<div id="bkmrk-%5Ccitrix-metaframe-pr" style="text-align: justify;"><div>**\\Citrix MetaFrame Presentation Server\\Application Resolution Time (ms) -&gt;** El tiempo en milisegundos que una se completó la resolución. Este es también el tiempo que se requiere para determinar el servidor "cargado menos", durante el lanzamiento de la aplicación. Necesitaría una base de referencia se establecerá en el medio ambiente con el fin de establecer con precisión los valores de umbral.</div><div>  
</div><div>**\\Citrix MetaFrame Presentation Server\\DataStore Connection Failure -&gt;** El número de minutos que el servidor XenApp se ha desconectado del almacén de datos. Umbral debería tener en cuenta los acontecimientos tales como reinicios y mantenimiento programado.</div><div>  
</div><div>**\\Citrix MetaFrame Presentation Server\\Number of busy XML threads -&gt;**El número de subprocesos XML que se procesan actualmente. Hay 16 subprocesos de trabajo en el Servicio XML Citrix. Es un recuento de 16 o más espectáculos que las solicitudes XML no están siendo procesados en el momento oportuno.</div><div>  
</div><div>**\\Citrix MetaFrame Presentation Server\\Resolution WorkItem Queue Ready Count -&gt;** El número de elementos de trabajo de resolución (relacionados con los lanzamientos de aplicaciones) que están listos para ser ejecutados. Un valor superior a 0 indica que las solicitudes se ponen en cola mientras IMA maneja otras solicitudes.</div><div>  
</div><div>**\\Citrix MetaFrame Presentation Server\\WorkItem Queue Ready Count -&gt;** El número de elementos de trabajo que están listos para ser ejecutados. Un valor superior a 0 indica que las solicitudes se ponen en cola mientras IMA maneja otras solicitudes. Este contador no debe ser superior a 1 durante un período prolongado de tiempo.</div><div>  
</div><div>**\\Citrix Licensing\\Citrix Licensing - License Server Connection Failure -&gt;** Muestra el número de minutos que XenApp se ha desconectado del servidor de licencias. Advertencia &gt; 1 minuto. &gt; 1440 minutos Critico.</div><div>  
</div><div>**\\Citrix Licensing\\Citrix Licensing – Last Recorded License Check – Out Response Time -&gt;** Muestra la última comprobación de licencia registrada - out tiempo de respuesta en milisegundos. Un valor de más de 5.000 milisegundos indica un problema de rendimiento en el servidor de licencias.</div><div>  
</div><div>**\\Process(ImaSrv)\\Private Bytes -&gt;** El tamaño actual en bytes de memoria que este proceso (IMA) ha asignado y no se puede compartir con otros procesos.</div><div>  
</div><div>En el caso de que querramos monitorizar el % Uso de los distintos procesos que se están ejecutando:</div><div></div><div>**\\Process(Process\_Name)\\% Processor Time -&gt;** % CPU en uso por el proceso en cuestión.</div><div>  
</div></div>3.- Contadores de Rendimiento Interfaz Web

<div id="bkmrk-%5Casp.net%5Crequest-que" style="text-align: justify;"><div>**\\ASP.NET\\Request Queued -&gt;** El número de peticiones en espera de ser procesada por ASP. Una línea de base debe ser establecida en el medio ambiente con el fin de establecer con precisión los valores de umbral.</div><div>  
</div><div>**\\ASP.NET\\Request rejected -&gt;**El número de solicitudes rechazada porque la cola de solicitudes estaba lleno.</div><div>  
</div><div>**\\ASP.NET\\Request Current -&gt;** El número actual de solicitudes, tanto ejecutándose y encolándose.</div><div>  
</div><div>**\\ASP.NET\\Request Execution Time -&gt;** La cantidad de tiempo (en milisegundos) que se tardó en ejecutar la solicitud más reciente.</div><div>  
</div><div>**\\Web Service\\Concurrent Connections -&gt;** Conexiones actuales es el número actual de conexiones establecidas con el servicio Web.</div><div>  
</div></div>4\. Contadores de Rendimiento Xen Desktop

<div id="bkmrk-%5Ccitrix-broker-servi"><div style="text-align: justify;">**\\Citrix Broker Service\\Database Avg. Transaction Time -&gt;** Tiempo medio , en segundos, para ejecutar una transacción de base de datos. Una línea de base debe ser establecida en el medio ambiente con el fin de establecer con precisión los valores de umbral.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Broker Service\\Database Connected -&gt;** Indica si este servicio está en contacto con su base de datos. (1 está conectado, 0 no está conectado ).</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Broker Service\\Database Transaction Errors/sec -&gt;** La velocidad a la que las transacciones de bases de datos no están cumpliendo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Broker Service\\Brokered Sessions -&gt;** El número de sesiones de escritorios virtuales negociados por el Service Broker Citrix.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix XML Service\\Avg. Transaction Time -&gt;** El número de sesiones de escritorios virtuales negociados por el Service Broker Citrix.</div><div style="text-align: justify;">  
</div></div><div id="bkmrk-" style="text-align: justify;"></div><div id="bkmrk-5.-resto-de-contador" style="text-align: justify;">5. Resto de contadores de Citrix</div><div id="bkmrk--1" style="text-align: justify;"></div><div id="bkmrk--2" style="text-align: justify;"></div><div id="bkmrk--3" style="text-align: justify;"></div><div id="bkmrk-es-posible-que-depen" style="text-align: justify;">Es posible que dependiendo de la versión e idioma del SO cambien los contadores de rendimiento. Para obtener una lista completa de TODOS los contadores que tenemos instalados en este sistema podemos ejecutar el siguiente comando y extraerlos en un fichero de la siguiente forma: </div><div id="bkmrk--4" style="text-align: justify;"></div><div id="bkmrk--5" style="text-align: justify;"></div><div id="bkmrk--6" style="text-align: justify;"></div>```powershell
Get-Counter –listSet * | Select-Object -ExpandProperty Paths > counters.txt 
```

Una vez tengamos todos los contadores disponibles en el sistema, podemos copiar los que necesitemos en el fichero txt que acompaña a la ejecución del plugin y nos creará en PandoraFMS un módulo por contador que añadamos.

<div id="bkmrk-%5Ccitrix-cpu-utilizat"><div style="text-align: justify;">**\\Citrix CPU Utilization Mgmt User\\CPU Entitlement -&gt;** El porcentaje de los recursos de la CPU que Citrix CPU Utilization Administración pone a disposición de un usuario en un tim dado.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix CPU Utilization Mgmt User\\CPU Reservation -&gt;** El porcentaje del total de recursos de la CPU del ordenador reservado para un usuario, en caso de que el usuario lo requiera. </div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix CPU Utilization Mgmt User\\CPU Shares -&gt;** La proporción de recursos de CPU asignado a un usuario.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix CPU Utilization Mgmt User\\CPU Usage -&gt;** El porcentaje del recurso de CPU consumido por un usuario en un momento dado, promedio de más de unos pocos segundos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix CPU Utilization Mgmt User\\Long-term CPU Usage -&gt;** El porcentaje del recurso de CPU consumido por un usuario, como promedio durante un período más largo que el contador de uso de la CPU.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix IMA Networking\\Bytes Received/sec -&gt;** Bytes/seg recibidos Los bytes entrantes por segundo. </div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix IMA Networking\\Bytes Sent/sec -&gt;** Bytes/seg enviados Los bytes salientes por segundo. </div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix IMA Networking\\Network Connections -&gt;** El número de conexiones de red activas IMA a otros servidores IMA.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Licensing\\Average License Check-In Response Time (ms) -&gt;** La licencia de la media hora de registro de respuesta en milisegundos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Licensing\\Average License Check-Out Response Time (ms) -&gt;** El tiempo medio de respuesta de verificación de licencia de espera en milisegundos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Licensing\\Last Recorded License Check-In Response Time (ms) -&gt;** El último tiempo de respuesta registrado para la verificación de la licencia en milisegundos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Licensing\\Last Recorded License Check-Out Response Time (ms) -&gt;** El último permiso registrado check-in durante el tiempo de respuesta en milisegundos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Licensing\\License Server Connection Failure -&gt;** El número de minutos que el servidor XenApp se ha desconectado del servidor de licencias.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Licensing\\Maximum License Check-In Response Time -&gt;** La licencia máxima check-in durante el tiempo de respuesta en milisegundos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix Licensing\\Maximum License Check-Out Response Time -&gt;** El tiempo máximo de respuesta de verificación de licencia de espera en milisegundos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Application Enumeration/sec -&gt;** El número de enumeraciones de aplicación por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Application Resolution Time (ms) -&gt;** El tiempo en milisegundos que una resolución tarda en completarse.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">\**Citrix MetaFrame Presentation Server\\Application Resolutions Failed/sec -&gt;** El número de resoluciones de aplicación fallidas por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Application Resolutions/sec -&gt;** El número de resoluciones completadas por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Cumulative Server Load -&gt;** La utilización del procesador combinado y sesiones de usuario XenAPP conectados a este servidor.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DataStore Connection Failure -&gt;** El número de minutos que el servidor XenApp se ha desconectado del almacén de datos. </div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DataStore bytes read -&gt;** El número de bytes leídos en el almacén de datos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">\**Citrix MetaFrame Presentation Server\\DataStore bytes read/sec -&gt;** El número de bytes de datos del almacén de datos leídos por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DataStore bytes written/sec -&gt;** El número de bytes de datos del almacén de datos escritos por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DataStore reads -&gt;** El número de veces que los datos se leen desde el almacén de datos.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DataStore reads/sec -&gt;** El número de veces que los datos se leen desde el almacén de datos por segundo. </div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DataStore writes/sec -&gt;** El número de veces que los datos se escriben en el almacén de datos por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore bytes read/sec -&gt;** El número de bytes de datos del almacén dinámico leídox por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore bytes written/sec -&gt;**El número de bytes de datos del almacén dinámico escrito por segundo.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore Gateway Update Count -&gt;** El número de paquetes de actualización del almacén dinámico enviado a los recolectores de datos remotas.</div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore Gateway Update, Bytes Sent -&gt;** El número de bytes de datos enviados a través de puertas de enlace a los recolectores de datos remotas. </div><div style="text-align: justify;">  
</div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore Query Count -&gt;** El número de consultas dinámicas realizadas al almacén. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore Query Request, Bytes Received -&gt;** El número de bytes de datos recibidos en el almacén dinámico paquetes de petición de consulta. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore Query Response, Bytes Sent -&gt;**El número de bytes de datos enviados en respuesta a las consultas al almacén dinámico.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore reads/sec -&gt;** El número de veces que los datos se leen desde el almacén dinámico por segundo.</div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\Citrix MetaFrame Presentation Server\\DynamicStore Update Bytes Received -&gt;** El número de bytes de datos recibidos en paquetes de actualización del almacén dinámico.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore Update Packets Received -&gt;** El número de paquetes de actualización recibidos por el almacén dinámico. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\DynamicStore Update Response Bytes Sent -&gt;**El número de bytes de datos enviados en respuesta a los paquetes de actualización del almacén dinámico.</div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\Citrix MetaFrame Presentation Server\\DynamicStore writes/sec -&gt;** El número de veces que los datos se escriben en el almacén dinámico por segundo.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Filtered Application Enumerations/sec -&gt;**El número de enumeraciones de aplicación filtradas por segundo.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\ICA Roundtrip Latency Median -&gt;**La media de tiempo de latencia de ida y vuelta para todas las sesiones ICA en el servidor. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\LocalHostCache bytes read/sec -&gt;**El número de bytes de datos IMA de caché de host local lea por segundo.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\LocalHostCache bytes written/sec -&gt;**El número de bytes de datos IMA caché del host local escritos por segundo.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\LocalHostCache reads/sec -&gt;** El número de veces que los datos se leen desde el caché del host local IMA leídos por segundo. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\LocalHostCache writes/sec -&gt;** El número de veces que los datos se escriben en el caché del host local IMA leídos por segundo. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Maximum number of XML threads -&gt;** El número máximo de subprocesos asignados a las sesiones en la web del servicio ya que el servidor se reinicia. </div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\Citrix MetaFrame Presentation Server\\Number of busy XML threads -&gt;** El número de subprocesos ocupados.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Number of XML threads -&gt;** El número de hilos asignadas para atender las sesiones Web.</div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\Citrix MetaFrame Presentation Server\\Resolution WorkItem Queue Executing Count -&gt;** El número de elementos de trabajo de resolución que se están ejecutando en ese momento. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Resolution WorkItem Queue Ready Count -&gt;**El número de elementos de trabajo de resolución que están listos para ser ejecutados.</div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\Citrix MetaFrame Presentation Server\\WorkItem Queue Executing Count -&gt;** El número de elementos de trabajo que se están ejecutando en ese momento. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\WorkItem Queue Pending Count -&gt;**El número de elementos de trabajo que todavía no están listos para ser ejecutados.</div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\Citrix MetaFrame Presentation Server\\WorkItem Queue Ready Count -&gt;**El número de elementos de trabajo que están listos para ser ejecutados.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Zone Elections -&gt;**El número de elecciones de zona. Este valor comienza en cero cada vez que inicia el servicio IMA y se incrementa cada vez que una elección de zona tiene lugar. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Zone Elections Triggered -&gt;** El número de veces que un servidor desencadena una elección de zona. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\Citrix MetaFrame Presentation Server\\Zone Elections Won -&gt;**El número de veces que un servidor ha recibido una elección de zona. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Audio Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al reproducir sonido en una sesión ICA. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Clipboard Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al realizar operaciones de portapapeles, como copiado y pegado entre una sesión ICA y la ventana local. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input COM 1 Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al enrutar un trabajo de impresión a través de una sesión ICA que no respalde una cola de impresión a una impresora cliente conectada al puerto COM del cliente 1.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input COM 2 Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al enrutar un trabajo de impresión a través de una sesión ICA que no respalde una cola de impresión a una impresora cliente conectada al puerto COM del cliente 2.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input COM Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al enviar datos al puerto COM del cliente. </div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\ICA Session\\Input Control Channel Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al ejecutar parámetros LongCommandLine de una aplicación publicada.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Drive Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al realizar operaciones de archivo entre las unidades del cliente y del servidor durante una sesión ICA. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Font Data Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al iniciar cambios de fuente en una sesión ICA con SpeedScreen.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input HDX Mediastream for Flash Data Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al streaming de datos de Flash en una sesión de HDX habilitados.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Licensing Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado para negociar licencias durante la fase de establecimiento de la sesión. A menudo, no hay datos para este contador está disponible, ya que la negociación se lleva a cabo antes de iniciar la sesión.</div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\ICA Session\\Input LPT 1 Bandwidth -&gt;**El ancho de banda del canal virtual que envía a una impresora cliente conectada al puerto LPT 1 del cliente a través de una sesión ICA que no respalde una cola de impresión. Esto se mide en bps.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input LPT 2 Bandwidth -&gt;**El ancho de banda del canal virtual que envía a una impresora cliente conectada al puerto LPT 2 del cliente a través de una sesión ICA que no respalde una cola de impresión. Esto se mide en bps.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Printer Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al imprimir en una impresora cliente a través de un cliente que tiene el respaldo para cola de impresión habilitadas. </div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\ICA Session\\Input Seamless Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado para las aplicaciones publicadas que no están incrustadas en una ventana de la sesión.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Session Bandwidth-&gt;** El ancho de banda, medido en bps, utilizado desde el cliente al servidor para una sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Session Compression -&gt;** La relación de compresión utilizada del cliente al servidor para una sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Session Line Speed -&gt;** La velocidad de la línea, medida en bps, utilizado desde el cliente al servidor para una sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\ICA Session\\Input SpeedScreen Data Channel Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado desde el cliente al servidor para el tráfico del canal de datos. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input Text Echo Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado para la repetición del texto. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Input ThinWire Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado desde el cliente al servidor para el tráfico ThinWire.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Latency - Last Recorded -&gt;**La última medición de retardo registrada para la sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\ICA Session\\Latency - Session Average -&gt;** El promedio de latencia del cliente durante toda la sesión.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Latency - Session Deviation -&gt;** La diferencia entre el mínimo y máximo medido valores de latencia para una sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Audio Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado para la reproducción de sonido en una sesión ICA. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Clipboard Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado para las operaciones de portapapeles, como copiado y pegado entre una sesión ICA y la ventana local.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output COM 1 Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al enrutar un trabajo de impresión a través de una sesión ICA que no respalde una cola de impresión a una impresora cliente conectada al puerto COM del cliente 1. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output COM 2 Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al enrutar un trabajo de impresión a través de una sesión ICA que no respalde una cola de impresión a una impresora cliente conectada al puerto COM del cliente 2. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output COM Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al recibir datos desde el puerto COM del cliente.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Control Channel Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al ejecutar parámetros LongCommandLine de una aplicación publicada. </div>  
<div style="text-align: justify;">**\\ICA Session\\Output Drive Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al realizar operaciones de archivo entre las unidades del cliente y del servidor durante una sesión ICA. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Font Data Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al iniciar cambios de fuente en una sesión ICA con SpeedScreen. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Licensing Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado para negociar licencias durante la fase de establecimiento de la sesión. A menudo, no hay datos para este contador está disponible, ya que la negociación se lleva a cabo antes de iniciar la sesión.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output HDX Mediastream for Flash Data Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al streaming de datos de Flash en una sesión de HDX habilitados.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output LPT 1 Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al enrutar un trabajo de impresión a través de una sesión ICA que no respalde una cola de impresión a una impresora cliente conectada al puerto LPT 1 del cliente. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output LPT 2 Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al enrutar un trabajo de impresión a través de una sesión ICA que no respalde una cola de impresión a una impresora cliente conectada al puerto LPT del cliente 2. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Management Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado al realizar funciones de gestión.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Printer Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado al imprimir en una impresora cliente a través de un cliente que tiene el apoyo de cola de impresión habilitada.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Seamless Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado para las aplicaciones publicadas que no están incrustadas en una ventana de la sesión.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Session Bandwidth-&gt;** El ancho de banda, medido en bps, utilizado desde el servidor al cliente para una sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\ICA Session\\Output Session Compression -&gt;**La relación de compresión utilizada del servidor al cliente para una sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;"> **\\ICA Session\\Output Session Line Speed -&gt;** La velocidad de la línea, medida en bps, utilizado desde el servidor al cliente para una sesión. </div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output SpeedScreen Data Channel Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado desde el servidor al cliente para el tráfico de canal de datos.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output Text Echo Bandwidth -&gt;**El ancho de banda, medido en bps, utilizado para la repetición del texto.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Output ThinWire Bandwidth -&gt;** El ancho de banda, medido en bps, utilizado desde el servidor al cliente para el tráfico ThinWire.</div><div style="text-align: justify;"></div><div style="text-align: justify;">**\\ICA Session\\Resource Shares -&gt;** El número total de acciones utilizados por la sesión. total number of shares used by the session.</div></div><div id="bkmrk--7" style="text-align: justify;"></div><div id="bkmrk--8" style="text-align: justify;"></div>

# Monitorización complementaria de citrix

##### **Módulos de Red** 

Podemos monitorizar de forma remota los diferentes puertos que deben estar operativos en nuestro entorno Citrix, aquí le indicamos los imprescindibles, pero en el siguiente catálogo tiene de forma detallada todos los puertos que usan los diferentes componentes de Citrix.

[http://support.citrix.com/content/dam/supportWS/kA460000000Cc9tCAC/Communication\_Ports\_ Used\_By\_Citrix.pdf](http://support.citrix.com/content/dam/supportWS/kA460000000Cc9tCAC/Communication_Ports_%20Used_By_Citrix.pdf)

1.- Controller, Consola Director y StoreFront

 Puertos 80 y/o 443 TCP

2.- Servidor de Licencias

 Puertos 7279, 27000, 8083, 8082 TCP

Se podrá realizar esta monitorización de puertos a través del servidor de red de PandoraFMS o bien a través de módulos locales desde el mismo servidor o desde otro que quisiésemos usar para tal fin.

**Windows:**

```powershell
module_begin
module_name Check port 80
module_type generic_proc
module_tcpcheck IP_Citrix_server
module_port 80
module_end
```

**Linux:**

```bash
module_begin
module_name Check port 80
module_type generic_proc
module_exec nmap IP_Citrix_server  | grep 80/tcp | awk '{print $2}' | grep open | wc -l
module_end
```

##### **Monitorización Eventos Citrix** 

Podemos monitorizar a parte de todo lo indicado anteriormente cualquiera de los eventos que Citrix escriba en el Log de Eventos.

Para ellos podemos utilizar los módulos de tipo logevent.

```powershell
module_begin 
module_name Event Citrix 
module_type async_string 
module_source Application #Fuente ( Aplication, System o Security)
module_eventtype Information # Severidad: Error, Information, …
module_eventcode # Id del Evento 
module_description 
module_end 
```

En los siguientes enlaces podemos encontrar de forma detallada todos los eventos que se generan en el servidor Citrix:

[Códigos de Eventos generados por PVS](https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX126407)

[Eventos de log XenDesktop Broker ](https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX133153)

[Eventos de log XenDesktop VDA ](https://support.citrix.com/support-home/home)

[Eventos de log XenDesktop MCS ](https://support.citrix.com/support-home/home)

[Eventos Web Interface ](https://support.citrix.com/support-home/home)

A modo de ejemplo se indican algunos de los eventos más destacados. Recordamos que todas estas configuraciones deberán añadirse al fichero de configuración del agente ( pandora\_agent.conf)

```
module_begin
module_name EventControllerWrongUserAccount
module_description
module_type async_string
module_logevent module_source Application
module_eventcode 1000
module_end

module_begin
module_name EventBrokerThrottleStartupException
module_descriptio
nmodule_type async_string
module_logevent
module_source Application
module_eventcode 1004
module_end 

module_begin
module_name NoDatabaseConnectivity
module_description
module_type async_string
module_logevent
module_source Application
module_eventcode 1202
module_end 

module_begin
module_name Event_1388
module_description Monitoring interno de Citrix
module_type async_string
module_logevent
module_source Application
module_eventcode 1388
module_application HCAService
module_end 

module_begin
module_name Event_3621
module_description Citrix cannot connect to SQL Server
module_type async_string
module_logevent
module_source Application
module_eventtype Error
module_eventcode 3621
module_end 

module_begin
module_name Event_3961
module_description El recopilador de datos se ha quedado sin memoria y es posible que los datos del almacén dinámico no estén sincronizados. Elija un nuevo recopilador de datos y asegúrese de que tiene suficiente memoria en el nuevo recopilador de datos.
module_type async_string
module_logevent
module_source System
module_eventcode 3961
module_end 

module_begin
module_name Event_5774
module_description El servidor entra en periodo de gracia (no hay suficientes licencias).
module_type async_string
module_logevent
module_source system
module_eventtype Error
module_eventcode 5774
module_application MetaFrame
module_end 

module_begin
module_name Event_9014
module_description Licencia invalida
module_type async_string
module_logevent
module_source system
module_eventtype Error
module_eventcode 9014
module_application MetaFrame
module_end 
```

# Módulos generados por el plugin

El plugin genera los siguientes módulos:

- Users Connect.
- Citrix Sessions

##### **Estados servicios** 

1.- **Servidores XenApp**

- Citrix Independent Management Architecture.
- Citrix XML.
- Citrix XTE Server.
- Citrix CPU Utilization Management/Resource Management.
- Citrix CPU Utilization Management/User Session sync.
- Citrix CPU Utilization Management/CPU Rebalancer Estados Servicios.
- Citrix Print Manager.
- Citrix Virtual Memory Optimization.
- Citrix MF COM.
- Remote Desktop Services/Terminal Services.
- Citrix WMI.
- Citrix Client Network.
- Citrix Streaming/Citrix Streaming Helper.
- Server.
- Netlogon.
- Remote Procedure Call (RPC).
- Workstation.
- Print Spooler.

2.- **Servicios XenDesktop**

- Citrix AD Identity.
- Citrix Broker.
- Citrix Configuration.
- Citrix Diagnostic Facility COM Server.
- Citrix Host.
- Citrix Machine Creation.
- Citrix Machine Identity .

3.- **Servicios de aprovisionamiento**

- Citrix PVS PXE.
- Citrix PVS Stream.
- Citrix PVS SOAP.
- Citrix PVS TFTP .
- Citrix PVS Two Stage Boot .

4.- **Servicios de concesión de licencias**

- Citrix License.
- Citrix Licensing WMI.

5.- **Servicios de Interfaz Web**

- World Wide Web Publishing Service

##### **Contadores de Rendimiento más importantes** 

Otro de los puntos que podemos monitorizar con este plugin es cualquiera de los contadores de Rendimiento que creamos necesarios. Más adelante se indican los más importantes para poder detectar cuellos de botella en Citrix y un listado de todos los que hay disponibles.