Skip to main content

Configuración para la experiencia de usuario de escritorio (PDR)

4.1 Configuraciones previas

El sistema PDR únicamente funciona en sistemas Windows®, y una vez en ejecución por el Agente de Pandora FMS éste debe correr en modo proceso, ya que de correr en modo servicio no funcionará. Además, no será posible bloquear la sesión de escritorio, por lo que se recomienda su uso en máquinas virtuales.

Prerrequisitos:

  • Sistema Windows® en modo escritorio con auto arranque y auto inicio de sesión.

Para lograr dicha configuración ejecute:

Para versiones anteriores a Windows 10®:

control userpasswords2

Y desmarque la casilla Users must enter a user name and password to use this computer:

ux5.jpg

Haga clic en el botón Ok e introduzca el nombre de usuario y su contraseña.

Para Windows 10®:

Usando Netplwiz:

Se puede habilitar usando el comando "netplwiz" en  windows 10, esto se puede hacer desde el buscador o si se abre la ventana de ejecutar.

image-1647878223815.png

Para habilitar el inicio de sesión automático, lo único que se debe hacer, en esta ventana, es deshabilitar la casilla «Los usuarios deben escribir su nombre y contraseña para usar el equipo«.

image-1647878797825.PNG



Usando Autologon :

Una manera de habilitar el auto inicio en MS Windows®, versión 10, es utilizar Powertoys de Sysinternals (disponible en la sección de descargas de la documentación de Microsoft®) y habilitar el usuario que realizará la monitorización, por ejemplo:

 

Para preparar el entorno cree el siguiente directorio:

C:\PDR

 

Y descomprima el fichero PDR.rar (proporcionado en el siguiente enlace https://pandorafms.com/library/pdr-cmd-for-ux-monitoring/) en dicha carpeta.

 

4.2 Grabaciones con sikulix

Con sikulix se pueden automatizar aplicaciones de escritorio, utilizando el método de reconocimiento de imágenes para identificar los elementos de la GUI. 

Con el se pueden hacer scripts que hagan acciones en base al reconocimiento de imágenes capturadas previamente por nosotros.

Al abrir el programa se puede ver una ventana como esta. 

 

image-1647878287968.JPG

2. Dando click derecho podemos elegir el lenguaje de scripting que preferimos utilizar para la grabación.

image-1647878323009.JPG

3. En la página se pueden poner comandos asociados a imagenes que realizaran una acción concreta, por ejemplo se le puede asignar al comando "click" una imagen que indicará la acción a realizar.

image-1647878337424.JPG

4. Para ello damos a captura de pantalla y seleccionamos la imagen que queremos capturar.

image-1647878357831.JPG


5. Nos saldrá un recuadro con el que podemos capturar la parte que se requiere.

image-1647878376422.jpg

6. Y quedará representado en el programa.

image-1647878398540.JPG

7. A esta imagen creada y asociada un comando se le puede cambiar el nombre, o incluso configurarla para que sea más precisa y no haya errores por si por ejemplo hay otra parte en pantalla muy similar a la que hemos seleccionado.

image-1647878418007.JPG

 

Ejemplo de grabación

image-1647880053931.png

Este por ejemplo sería un ejemplo de una transacción sencilla en la que se abre la aplicación calculadora y se realiza una operación sencilla, para ellos se pincha en el buscador, se espera a que aparezca "Aplicaciones" y seguidamente se escribe "calc" en el buscador para pinchar en la aplicación y seguidamente se pincha en distintos botones de esta para realizar la operación.

 

4.3 Ejecución de sesiones PDR

Ejecución estándar

Para lanzar sesiones pregrabadas de PDR, indique que el modo de trabajo es la ruta al fichero pdr.cmd desplegado en el punto correspondiente, el argumento de dicho fichero -r, el archivo que contiene las directrices de la sesión (-script), el directorio donde almacenar las capturas de pantalla (-folder) terminando en ‘\’, el cual es opcional, donde guardar las capturas en la carpeta donde está ubicado el pdr. También se puede introducir el número de reintentos consecutivos en caso de fallo (parámetro opcional).

En la ejecución siguiente también se personaliza la captura de pantalla para recoger únicamente la ventana activa:

pandora_ux_x64 -exe C:\PDR\pdr -args -r -script C:\pandora_ux\calculadora.sikuli -folder C:\pandora_ux\ -ss_config active -retries 3

Se devolverán los siguientes módulos:

  • UX_Time_nombre_proyecto.
  • UX_Status_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.

Y mostrará una imagen de la ventana activa (con -ss_config active) del momento del error.

Ejemplo de salida con ejecución correcta:

<module>
   <name><![CDATA[UX_Status_calculadora.sikuli]]></name>
   <type>generic_proc</type>
   <data><![CDATA[1]]></data>
   <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuild ]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_calculadora.sikuli]]></name>
   <type>generic_data</type>
   <data><![CDATA[20.204]]></data>
   <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuilt ]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_calculadora.sikuli</module_parent>
</module>
<module>
   <name><![CDATA[UX_Control_Snapshot_calculadora.sikuli]]></name>
   <type>async_string</type>
   <data><![CDATA[data:image/png;base64, IBCAIAAAAOCnfhAAAAAXNSR…/4x79e/7757f8H2C00s1C73yMAAAAASUVORK5CYII=]]></data>
   <description><![CDATA[Control image rebuilt]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_calculadora.sikuli</module_parent>
</module>

Ejemplo de salida con ejecución fallida:

<module>
   <name><![CDATA[UX_Status_std.html]]></name>
   <type>generic_proc</type>
   <data><![CDATA[0]]></data>
    <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_std.html]]></name>
   <type>generic_data</type>
   <data><![CDATA[15.463]]></data>
    <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>
<module>
   <name><![CDATA[UX_Snapshot_std.html]]></name>
   <type>async_string</type>
   <data><![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]></data>
    <description><![CDATA[Image (last error)]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

Si todo ha resultado correcto puede añadir la línea de ejecución al agente de Pandora FMS instalado en la máquina Windows® como plugin de Agente. La línea a añadir al fichero de configuración del Agente tendrá un aspecto similar a este (en una sola línea):

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.bat -args -r -script C:\PDR\calc.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"

Como puede verse, esta ejecución tiene algunas opciones más. El parámetro -checkpoint sirve para mostrar una captura del resultado final aunque no exista fallo; -post ejecutará acciones una vez terminada la reproducción de la sesión. En este caso, vamos a cerrar el proceso de calculadora que ha iniciado la grabación, para evitar que el sistema termine fallando por exceso de ventanas abiertas o procesos similares.

Ahora que el Agente tiene la línea de ejecución module_plugin lista, debe lanzarlo en modo proceso, ejecutando lo siguiente desde línea de comando como administrador:

"%ProgramFiles%\pandora_agent\PandoraAgent.exe" --process

Al lanzarlo podrá ver cómo se ejecutan las acciones de forma automática conforme a la grabación. Desde este momento el proceso de agente no debe cerrarse, y tampoco se debe iniciar sesión en la máquina por escritorio remoto, o las ejecuciones podrían interrumpirse. La máquina debe quedar sin manipular, por esta razón es por la que se recomienda su uso en máquinas virtuales.

Si ya se tienen tests de automatización, se pueden incluir en Pandora FMS con la siguiente ejecución.

pandora_ux.64 -exe <exe del sistema de automatización> -args <argumentos del sistema> -script <ruta ficheros de prueba>

 

Ejecución basada en transacción

Si tenemos grabados diferentes procesos con PDR y hemos probado que funcionan al reproducirlos de forma continuada, haremos la ejecución del siguiente modo:

C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_trans -script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli -folder C:\PDR\ -ss_config active

Como puede observarse, simplemente indicaremos la ruta del nuevo script en el parámetro -script separada por una coma del script anterior y utilice el parámetro -t con el nombre de la transacción que englobará las diferentes fases. Si tuviera un proceso con más fases seguiría la misma lógica; por ejemplo:

pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t proceso_transaccional -script C:\PDR\script1,C:\PDR\script2,C:\PDR\script3,C:\PDR\script4 -folder C:\PDR\ -ss_config active

La línea a añadir al fichero de configuración del Agente, para este caso, será la siguiente:

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_trans -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"

Gracias al parámetro -checkpoint puede ver capturas del resultado final de cada fase en la consola de Pandora FMS.

Se devolverán los siguientes módulos por fase:

  • UX_Time_nombre_proyecto.fase_orden.
  • UX_Status_nombre_proyecto.fase_orden.

Si hay alguna fase con error, se creará también el módulo siguiente:

  • UX_Snapshot_nombre_proyecto.fase_orden.

También mostrará una imagen de la web en el momento del error, en caso de que se produzca.

También se devolverán los módulos de resumen globales identificados con los siguientes nombres:

  • UX_Global_Time_nombre_proyecto.
  • UX_Global_Status_nombre_proyecto.
  • UX_Global_Snapshot_nombre_proyecto.

Cuando el agente se encuentre corriendo en modo proceso y los módulos sean recuperados por Pandora FMS los veremos en la consola. De nuevo, mediante la vista en modo jerárquico podremos mostrar con claridad la relación entre los módulos mostrados, delimitando claramente las diferentes fases:

Haga clic para ampliar

Y en el visor de transacciones podemos ver el detalle de las fases y la gráfica con los tiempos:

ux42.jpg

Las capturas de error solo se mostrarán cuando el cliente UX (PWR) y el servidor PWR estén corriendo en la misma máquina. En caso contrario, el directorio de entrega de las imágenes por parte del servidor PWR deberá ser accesible por el cliente para poder mostrar la imagen en Pandora FMS.

Será sobre estos Módulos sobre los que puede crear alertas y visualizar el histórico para construir gráficas y mostrar la evolución en el tiempo de los sistemas a monitorizar.

Se recomienda la creación de una tarea programada que arranque el agente de Pandora FMS en modo proceso cuando el equipo se inicie y así no se interrumpirán las ejecuciones aunque el sistema tenga un reinicio forzoso. Al estar en modo inicio de sesión automático sin contraseña, el agente siempre se ejecutará aunque se reinicie la máquina.

ux26.jpg

Haga clic para ampliar

ux28.jpg

ux29.jpg

ux30.jpg

ux31.jpg

ux32.jpg

De este modo garantizaremos que en este sistema Windows siempre estará corriendo el Agente de Pandora FMS en modo proceso aún cuando la máquina se reinicie, pudiendo enviar siempre la información recogida por la sonda PDR.

Sistemas con varios escritorios pueden resultar problemáticos, por lo que se recomienda siempre utilizar la configuración anteriormente descrita, en una máquina en modo escritorio con autoinicio de sesión y un único escritorio.