Monitorización de experiencia de usuario en acciones de escritorio con Pandora FMS
Una de las nuevas funcionalidades que trae la versión 7.0 (NG) de Pandora FMS está centrada en la monitorización de experiencia de usuario: Pandora FMS UX. Este nuevo sistema funciona mediante la grabación de acciones de navegación o sobre el escritorio, generando una serie de módulos que serán entregados al servidor de Pandora FMS para su procesamiento.
Dichos módulos contienen información sobre el resultado del proceso completo, los tiempos empleados en llevarlo a cabo y capturas de pantalla del último punto donde se ha producido un error (si existiera).
El sistema Pandora FMS UX tiene dos modos de trabajo: monitorización de procesos de navegación web y monitorización de acciones de escritorio. El nombre propio de los modos de trabajo es:
- Pandora Web Robot (PWR): sistema de monitorización de navegación web reproduciendo acciones de usuario. Permite comprobar secuencias completas y secciones de las secuencias (fases), así como mostrar tiempos empleados.
- Pandora Desktop Robot (PDR): reproducción de acciones sobre el escritorio de sistemas operativos Windows simulando acciones de usuario. Orientado principalmente a la monitorización de aplicaciones pesadas de escritorio.
Hoy nos centraremos en la monitorización de experiencia de usuario en acciones de escritorio, con Pandora UX PDR.
La finalidad de la monitorización de acciones de escritorio con PDR está pensada principalmente para controlar el funcionamiento de aplicaciones pesadas. El sistema se ocupará de mover automáticamente elementos como la posición del ratón y pulsaciones de teclas, como si el sistema lo estuviese utilizando un usuario.
Por ejemplo, si queremos monitorizar que nuestro servidor FTP funciona correctamente, grabaremos un proceso en el que:
- Abriremos nuestra aplicación para conectarnos al FTP (por ejemplo FileZilla).
- Copiaremos un fichero a nuestro escritorio local.
- Abriremos el fichero y comprobaremos su contenido.
- Borramos el fichero.
Todo esto puede automatizarse, como veremos a continuación. Comprobaremos la validez de la secuencia completa (que la grabación se ha completado correctamente) y el tiempo empleado.
También veremos cómo dividir una secuencia grabada en diferentes fases; el objetivo en este caso será medir los tiempos, no solo de la secuencia completa, sino de cada una de las fases y poder realizar un análisis. De este modo veremos, por ejemplo, que donde más tiempo se pierde es en la conexión al servidor FTP, indicando un posible problema de rendimiento, o bien que lo que más tiempo requiere es abrir el cliente FTP, por lo que quizá el pc requiera más recursos.
Monitorización de experiencia de usuario en escritorio: PDR
Preparación del entorno
El sistema de monitorización PDR únicamente funciona sobre sistemas operativos Windows. Se recomienda su uso en máquinas virtuales, y los requisitos previos son pocos:
- Sistema Windows en modo escritorio con auto arranque y auto inicio de sesión.
- Creación de directorios: C:\PDR y C:\sondas.
- Descompresión del fichero PDR.zip proporcionado en C:\PDR.
Grabación sesión PDR
Una vez realizados los pasos previos podremos comenzar a grabar las acciones.
Para que el ejemplo sea sencillo, la grabación va a consistir en lo siguiente: abrir la calculadora de Windows y hacer una operación, comprobando que el resultado sea correcto. Sabremos si la calculadora funciona de forma correcta y cuánto tiempo tarda en abrirse y realizar la operación. Partiendo de esta base, podremos monitorizar cualquier aplicación de escritorio, simplemente reproduciendo de forma automática acciones de usuario, como clicks de ratón e introducción de texto.
Iniciaremos el sistema de grabación pdr.cmd, que hemos descomprimido en C:\PDR, y tras un pequeño proceso de carga se abrirá el entorno de grabación, presentando este aspecto:
En los cuadros izquierdos tenemos algunas de las acciones más habituales que podremos realizar. Generalmente seleccionaremos la acción y el área donde aplicarla.
Acciones generales:
Acciones de control de flujo:
Vamos a proponer un caso en el que grabaremos una operación sencilla con la calculadora de Windows. Paso por paso:
1. Elegimos la acción “click” y el área donde queremos aplicar la acción, la pantalla cambiará a modo “selección de área”:
La acción se verá reflejada en el panel de este modo:
2. Introduciremos la acción “type” y el texto “calc”, después introduciremos las acciones de esperar a que aparezca el área “calculadora” y haremos click sobre la misma. Después esperaremos a que aparezca la ventana de la calculadora para introducir las siguientes acciones, de este modo.
3. Iremos introduciendo una a una las acciones mediante los botones y selecciones correspondientes, de este modo:
4. Finalmente podremos guardar el proceso y reproducirlo mediante el botón “Run”.
Notas importantes:
- Si hacemos doble click sobre cualquiera de las imágenes dentro del entorno de grabación, podemos ajustar detalles de la captura de control, como seleccionar el punto exacto donde hacer click.
- Es muy recomendable introducir acciones tipo wait entre cada click para asegurarnos de que la ejecución no se va a detener por una demora en el sistema operativo.
- La grabadora buscará el área con aspecto igual a la captura, por lo que hay que tener especial cuidado en caso de que haya algo resaltado (por ejemplo al estar el ratón encima).
El sistema de grabación tiene muchas posibilidades, pero hacerse con su funcionamiento requiere algo de práctica, por lo que nuestro consejo es “jugar” con él tanto como se pueda, grabar diferentes sesiones, reproducirlas, buscar variaciones y otras posibilidades antes de grabar nuestras sesiones definitivas y lanzarlas con Pandora FMS.
Al guardar el proyecto se creará una carpeta que contendrá un fichero .py con el código del script de automatización y las imágenes de control de la secuencia.
Grabación de sesión transaccional
Vamos a ampliar el ejemplo anterior; ahora, además de abrir la calculadora de Windows y realizar una operación, vamos a guardar el resultado en un fichero de texto. Es un proceso más largo y esta vez vamos a dividirlo en tres fases para saber exactamente cuánto tiempo lleva cada una.
Para grabar una sesión transaccional PDR simplemente haremos una grabación diferente para cada una de las fases. Esto significa que no hay que modificar la grabación de una sesión existente para dividirla en fases (como sí era necesario en las grabaciones con PWR), sino que grabaremos diferentes scripts de forma separada y será el propio Pandora UX quien construirá la transacción mayor, basándose en la ejecución que le indiquemos.
En el ejemplo propuesto realizaremos la grabación en este orden:
- En primer lugar: el proceso de abrir la calculadora y realizar la operación.
- En segundo lugar: copiar el resultado, abrir un bloc de notas y pegar el resultado.
- En tercer lugar: guardaremos el archivo de bloc de notas con el resultado en una ubicación determinada.
El modo de ejecutar los diferentes scripts PDR para que conformen una transacción mayor lo veremos en los siguientes puntos.
Ejecución sesiones PDR
La ejecución consiste en una llamada al binario pandora_ux_x64.exe, y le pasaremos los argumentos que necesita para reproducir las grabaciones. En primer lugar, lo probaremos desde línea de comando, para asegurarnos de que el proceso se completa según lo esperado. Una vez tengamos el visto bueno, lo añadiremos al fichero de configuración del agente con module_plugin, para que sea este quien se encargue de su ejecución automática desde ese momento.
La ejecución será la siguiente:
pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -script C:\pandora_ux\calculadora.sikuli -folder C:\pandora_ux\ -ss_config active
Se recomienda indicar siempre las rutas completas, tanto del ejecutable como de los otros ficheros y directories.
Parámetros:
-exe: ruta al fichero pdr.cmd.
-args –r: argumentos del fichero pdr.cmd.
-script: directorio que contiene las directrices de la sesión.
-folder: punto donde almacenar las capturas de control. Debe almacenar con una barra invertida -> \
Otros parámetros adicionales que podemos emplear son –checkpoint, que nos mostrará una captura del último punto cuando finalice la secuencia, y –post, que nos permite ejecutar comandos tras reproducir la secuencia completa, útil por ejemplo para asegurarnos de que no quedan procesos o ventanas abiertas.
Los módulos que devolverá la ejecución son:
- UX_Status_nombre_proyecto.
- UX_Time_nombre_proyecto.
- UX_Control_Snapshot_nombre_proyecto (solo en la primera ejecución).
Si hay alguna fase con error, se creará también el módulo siguiente:
– UX_Snapshot_nombre_proyecto.
La línea de configuración completa a utilizar en el fichero de configuración del agente deberá tener un aspecto similar a este (siempre en una única línea):
module_plugin C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -script C:\PDR\calc.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"
Una vez la línea esté añadida al agente, debemos recordar que este debe correr en modo proceso para poder interactuar con el escritorio de forma correcta. La forma de ejecutar el agente en modo proceso es la siguiente, desde un terminal cmd.exe con permisos:
"C:\Program Files\pandora_agent\PandoraAgent.exe" --process
En seguida veremos que el escritorio se mueve solo reproduciendo la secuencia grabada. No debemos interrumpir este proceso o el resultado tendrá todas las papeletas de ser erróneo.
El proceso ha finalizado y la información ha sido enviada al servidor de Pandora FMS, los módulos se visualizarán en la consola con los nombres según las etiquetas antes mencionadas:
Ejecución sesiones transaccionales PDR
Como mencionamos en el apartado de grabación, no es necesario modificar las secuencias para convertirlas en transaccionales, sino que tendremos que grabarlas como sesiones diferentes, y será en la ejecución donde especifiquemos los parámetros correspondientes para que el sistema Pandora UX las conforme como un proceso transaccional con diferentes fases.
Haremos tres grabaciones diferentes:
- Apertura de calculadora y operación sencilla (script calc.sikuli).
- El resultado de la operación es presentado en un fichero de texto plano (script savecalc.sikuli).
- El fichero de texto es guardado en una ubicación específica, sobreescribiendo el anterior (script savefile.sikuli).
Ahora que tenemos las tres grabaciones vamos a ver cómo ejecutarlas para que cada una represente una fase de un proceso completo.
En nuestro ejemplo la ejecución se realizará del siguiente modo:
C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_fases -script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"
Como puede observarse difiere ligeramente de la ejecución individual. Los nuevos parámetros utilizados son:
-t: con este argumento indicaremos el nombre que queremos darle al proceso completo en que englobaremos las transacciones.
-t calculadora_fases
-script: este parámetro ya se utiliza en la ejecución individual, pero ahora colocamos todos los scripts separados por comas.
-script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli
Para confirmar que el proceso completo tendrá éxito, se recomienda reproducir de forma seguida los scripts, de este modo aseguraremos que se completan correctamente. Si efectivamente todo funciona según lo esperado, añadiremos la línea de ejecución al fichero de configuración del agente (todo en una única línea):
module_plugin C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_fases -script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"
Y al ejecutar el agente en modo proceso, veremos los módulos en la consola de Pandora FMS del siguiente modo:
Como puede observarse, las tres fases se han englobado dentro de Calculadora_fases, y se muestran los tiempos de cada una de ellas. Ahora, gracias a estos módulos, podremos generar alertas y visualizar individualmente las gráficas de cada uno, o bien combinarlas de forma comparativa y presentarlas en diferentes informes.
También podremos visualizar los detalles si accedemos a la sección UX del agente dentro de la consola:
El equipo de redacción de Pandora FMS está formado por un conjunto de escritores y profesionales de las TI con una cosa en común: su pasión por la monitorización de sistemas informáticos. Pandora FMS’s editorial team is made up of a group of writers and IT professionals with one thing in common: their passion for computer system monitoring.