Cómo monitorizar el número de sesiones activas actuales de Terminal Server (Escritorio Remoto) en un servidor con Windows Server 2012. El proceso es válido para otras versiones de Windows (desde la 2003 a la 2016). Para la monitorización usaremos Pandora FMS, aunque el procedimiento puede servir para otros sistemas de monitorización como Nagios, Sensu, Icinga, Zabbix, SolarWinds, Paessler, PRTG, etc..
- Requisitos para obtener el número de sesiones activas de Escritorio Remoto (Terminal Server) en un equipo con Windows.
- Probar comando para obtener únicamente el número de usuarios conectados a un equipo Windows mediante Escritorio Remoto o Terminal Server.
- Monitorizar en Pandora FMS el número de usuarios conectados por sesión de Terminal Server (Escritorio Remoto) en un equipo Windows.
Requisitos para obtener el número de sesiones activas de Escritorio Remoto (Terminal Server) en un equipo con Windows
Únicamente necesitaremos disponer de dos comandos que en Windows no vienen «preinstalados»: grep y gawk. Dichos comandos se pueden descargar desde el siguiente enlace:
Y en el caso de monitorización con Pandora FMS, no necesitaremos descargar estos comandos porque están disponibles en la carpeta util de la instalación del agente de Pandora para Windows (Pandora Agent).
Para poder monitorizar este valor, el número de usuarios conectados a un equipo/servidor con Windows y Terminal Server (Escritorio Remoto), necesitaremos disponer de un servidor de monitorización. En el siguiente artículo explicamos cómo montar un servidor de monitorización con Pandora FMS:
Y, el equipo en el que queramos monitorizar este valor, tendrá instalado el agente de Pandora (Pandora Agent), como explicamos en este artículo:
Probar comando para obtener únicamente el número de usuarios conectados a un equipo Windows mediante Escritorio Remoto o Terminal Server
En primer lugar comprobaremos que el comando query session funciona correctamente. Es el comando Windows que obtiene el número de usuarios conectados y activos en sesiones de Terminal Server. Para ello, desde una ventana de MS-DOS (cmd), ejecutaremos el siguiente comando:
1 |
query session |
Nos devolverá todos los usuarios conectados al equipo por Escritorio Remoto:
El comando anterior nos devuelve todos las sesiones activas, una por cada línea, a partir de la tercera línea. Incluso nos devuelve el nombre de usuario conectado. Será este comando la base para obtener la información que deseamos, por lo que tiene que funcionar correctamente en el equipo que queramos monitorizar. En Windows este comando viene de forma «nativa», ya instalado.
A continuación usaremos, junto con el comando anterior query session, los comandos grep.exe y gawk.exe para quitar los títulos, quitar las líneas innecesarias y dejar solo el nombre de los usuarios conectados (uno por cada línea), luego contaremos las líneas y así obtendremos un número, que será el de usuarios activos conectados por Terminal Server. Ejecutaremos el siguiente comando en la carpeta donde tengamos las utilidades grep.exe y gawk.exe, en nuestro caso en:
1 |
cd "C:\Program Files\pandora_agent\util" |
Una vez en la carpeta «util» ejecutaremos:
1 |
query session | grep Activ | gawk "{ print $2 }" |wc -l |
Si todo es correcto nos devolverá únicamente un número, que será el de las sesiones de Terminal Server activas en este momento, en el ejemplo nos devuelve un 3:
Una vez comprobado que el comando funciona correctamente podremos agregarlo al fichero de configuración de Pandora Agent para que se monitorice.
Monitorizar en Pandora FMS el número de usuarios conectados por sesión de Terminal Server (Escritorio Remoto) en un equipo Windows
Para monitorizar sensores/sondas/módulos necesitaremos tener instalado el cliente/agente de Pandora FMS (Pandora Agent) en el equipo, como hemos indicado anteriormente.
Con el Explorador de Windows accederemos a la carpeta de instalación del agente de pandora, normalmente en C:\Program Files\pandora_agent. En esta carpeta editaremos el fichero pandora_agent.conf con cualquier editor de texto plano (como Notepad):
y agregaremos las siguientes líneas al final del fichero:
1 2 3 4 5 6 |
module_begin module_name Numero_Sesiones_TS_Activas module_type generic_data_string module_exec query session | grep Activ | gawk "{ print $2 }" |wc -l module_description Numero sesiones Terminal Server activas module_end |
Guardaremos los cambios (en Windows 10 y Windows Server 2012 y superiores requiere de acceso como administrador).
En las líneas anteriores para crear el módulo (sensor/sonda/monitor) en el servidor de Pandora FMS se pueden añadir más parámetros, por ejemplo para establecer los umbrales de criticidad (critical) y alerta (warning) para este monitor, quedando:
1 2 3 4 5 6 7 8 9 10 |
module_begin module_name Numero_Sesiones_TS_Activas module_type generic_data_string module_exec query session | grep Activ | gawk "{ print $2 }" |wc -l module_description Numero sesiones Terminal Server activas module_min_warning 40 module_max_warning 50 module_min_critical 51 module_max_critical 1000 module_end |
En el caso anterior el sensor pasará a estado de alerta (warnig) si el número de usuarios conectados por Escritorio remoto está entre 40 y 50. Y pasará a estado crítico (critical) si el número está entre 51 y 1000.
Como vemos, en realidad lo que hacen esas líneas es añadir un nuevo módulo (sonda/sensor) con el nombre «Numero_Sesiones_TS_Activas» y cuyo valor lo obtiene del resultado de la ejecución del comando anterior.
Reiniciaremos el servicio de Pandora Agent, ejecutando el fichero restart_pandora_agent.bat ubicado dentro de la carpeta script de la instalación del agente, pulsando con el botón derecho del ratón sobre él y eligiendo «Ejecutar como administrador»:
En cuanto se reinicie el servicio podremos acceder al servidor de Pandora FMS y comprobar que se ha añadido este nuevo módulo para el agente en cuestión y que obtiene los valores correctamente del número de usuarios conectados por Escritorio Remoto:
Este sensor/sonda/monitor/módulo ha sido probado en equipos Windows con sistema operativo Windows Server 2012, Windows Server 2003, Windows Server 2008 y Windows 10.