Difference between revisions of "Pandora: Documentation es: Monitorizacion Usuario"

From Pandora FMS Wiki
Jump to: navigation, search
 
(52 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 +
[[Pandora:Documentation|Volver a Indice de Documentacion Pandora FMS]]
 +
 +
 
= Introducción =
 
= Introducción =
  
La monitorización de experiencia de usuario consiste en realizar grabaciones de tareas automatizadas tanto de navegación web como de interacción con el escritorio y las aplicaciones del sistema Windows. Estas grabaciones pueden consistir desde un clic de un ratón sobre un navegador, escribir un texto o realizar una búsqueda en navegación web, hasta abrir una aplicación en el escritorio. Esto nos permitirá realizar las funciones grabadas de manera automática y se ejecutarán para obtener resultados, como puede ser el tiempo transcurrido en realizar las tareas. Para ello, contamos con las monitorizaciones de UX automatizada y la monitorización de experiencia web de usuario (WUX).
+
La monitorización de experiencia de usuario consiste en realizar grabaciones de tareas automatizadas tanto de <b>navegación web</b> (PWR/WUX) como de interacción con el <b>escritorio y las aplicaciones del sistema Windows</b> (PDR). Estas grabaciones pueden consistir desde un clic de un ratón sobre un navegador, escribir un texto o realizar una búsqueda en navegación web, hasta abrir una aplicación en el escritorio. Esto nos permitirá realizar las funciones grabadas de manera automática y se ejecutarán para obtener resultados, como puede ser el tiempo transcurrido en realizar las tareas. Para ello, contamos con la monitorización de UX automatizada y la monitorización de experiencia web de usuario (WUX).
  
 
A partir de la versión 7.0NG.728 de Pandora FMS se han fusionado las monitorizaciones UX y WUX dentro de la consola de Pandora FMS, disponiendo de ambas funcionalidades en una sola pantalla.
 
A partir de la versión 7.0NG.728 de Pandora FMS se han fusionado las monitorizaciones UX y WUX dentro de la consola de Pandora FMS, disponiendo de ambas funcionalidades en una sola pantalla.
Line 11: Line 14:
 
A continuación veremos las diferencias entre los sistemas WUX y UX y la descripción de ambas funcionalidades con sus diferentes posibilidades.
 
A continuación veremos las diferencias entre los sistemas WUX y UX y la descripción de ambas funcionalidades con sus diferentes posibilidades.
  
==Diferencias entre monitorización UX y WUX==
+
= Diferencias entre monitorización UX y WUX =
  
 
Ambos sistemas de monitorización sirven para la ejecución de tareas automatizadas de navegación web mediante el sistema Pandora Web Robot Daemon (PWRD).  
 
Ambos sistemas de monitorización sirven para la ejecución de tareas automatizadas de navegación web mediante el sistema Pandora Web Robot Daemon (PWRD).  
  
El sistema UX realiza estas monitorizaciones mediante el agente software instalado en una máquina, mientras que la monitorización WUX se basa en un servidor integrado dentro de Pandora FMS.
+
El sistema <b>UX</b> realiza estas monitorizaciones mediante el agente software instalado en una máquina, mientras que la monitorización <b>WUX</b> se basa en un servidor integrado dentro de Pandora FMS.
  
 
Pandora Web Robot Daemon (PWRD) es un servicio que provee las herramientas necesarias para automatizar las sesiones de navegación web. Para ello utiliza un archivo que contiene una lista de las acciones necesarias para navegar por el portal web del usuario.
 
Pandora Web Robot Daemon (PWRD) es un servicio que provee las herramientas necesarias para automatizar las sesiones de navegación web. Para ello utiliza un archivo que contiene una lista de las acciones necesarias para navegar por el portal web del usuario.
Line 21: Line 24:
 
Adicionalmente, la monitorización UX permite la ejecución de tareas automatizadas que interactúan con el escritorio y las aplicaciones del sistema Windows. Este tipo de tareas no se pueden realizar con WUX.
 
Adicionalmente, la monitorización UX permite la ejecución de tareas automatizadas que interactúan con el escritorio y las aplicaciones del sistema Windows. Este tipo de tareas no se pueden realizar con WUX.
  
= Monitorización UX automatizada =
+
Pandora FMS UX es un sistema que ejecuta tareas automatizadas, entregando a Pandora FMS un informe con los resultados de las ejecuciones, tiempos empleados y capturas con los posibles errores encontrados.
 +
 
 +
La tecnología de Pandora FMS PWR para UX permite la navegación por sitios web, simulando las acciones de un usuario. Puede comprobar contenidos, textos, etc. Es la elección perfecta para monitorizar sitios y aplicaciones web no basadas en flash. Su ventaja: más rápido, con la posibilidad de ejecución en segundo plano.
 +
 
 +
Si dispone de un sistema de automatización de tareas, Pandora FMS UX también permite ejecutar los scripts que ya tenga y monitorizar su ejecución.
 +
 
 +
Es importante concretar el uso de este tipo de monitorización. Ambos métodos se basan en la ejecución de las monitorizaciones mediante plugin en los agentes software instalados en las máquinas correspondientes.
 +
 
 +
<br>
 +
 
 +
{{Tip|Para la ejecución de transacciones web utilizamos Selenium Engine.}}
 +
<br>
 +
 
 +
= Experiencia de Usuario Web (WUX) con Selenium 3 =
 +
<br>
 +
Para el despliegue de Selenium en los servidores WUX se utilizará un stack basado en contenedores para un rápido despliegue y un fácil escalado.
 +
 
 +
== Configuraciones previas ==
 +
 
 +
Será necesario tener instalado Docker y Docker Compose y recomendamos el uso de CentOS como sistema operativo base.
 +
 
 +
Para esta instalación recomendamos seguir la documentación de Docker en: https://docs.docker.com/engine/install/
 +
 
 +
Se utilizarán las imágenes oficiales de Selenium para la instalación y despliegue del stack. Podremos encontrarlas en: https://hub.docker.com/u/selenium
 +
 
 +
En el repositorio de Selenium están disponibles distintas imágenes con navegadores. Para Pandora FMS recomendamos contenedores de Firefox y Chrome.
 +
 
 +
== Despliegue del stack de Selenium ==
 +
 
 +
Para desplegar el stack de Selenium será  necesario crear primero un fichero <b>YAML</b> con la configuración necesaria:
 +
 
 +
# To execute this docker-compose yml file use `docker-compose -f <file_name> up`
 +
# Add the `-d` flag at the end for detached execution
 +
version: "3"
 +
services:
 +
  selenium-hub:
 +
    image: selenium/hub:3.141.59-zinc
 +
    container_name: selenium-hub
 +
    ports:
 +
      - "4444:4444"
 +
    environment:
 +
      - GRID_BROWSER_TIMEOUT=60000
 +
      - GRID_TIMEOUT=60000
 +
      - GRID_MAX_SESSION=50
 +
      - GRID_CLEAN_UP_CYCLE=60000
 +
      - GRID_UNREGISTER_IF_STILL_DOWN_AFTER=180000
 +
      - GRID_NEW_SESSION_WAIT_TIMEOUT=60000
 +
  chrome:
 +
    image: selenium/node-chrome:3.141.59-zinc
 +
    volumes:
 +
      - /dev/shm:/dev/shm
 +
    depends_on:
 +
      - selenium-hub
 +
    environment:
 +
      - HUB_HOST=selenium-hub
 +
      - HUB_PORT=4444
 +
  firefox:
 +
    image: selenium/node-firefox:3.141.59-zinc
 +
    volumes:
 +
      - /dev/shm:/dev/shm
 +
    depends_on:
 +
      - selenium-hub
 +
    environment:
 +
      - HUB_HOST=selenium-hub
 +
      - HUB_PORT=4444
 +
 
 +
Se podrá guardar como <i>docker-compose.yml</i> para hacer más fácil su identificación.
 +
 
 +
Para levantar el contenedor con la configuración que hemos definido, bastará con ejecutar el siguiente comando:
 +
 
 +
docker-compose -f <compose-file> up -d
 +
 
 +
Si se necesita comprobar los servicios corriendo en el contenedor usaremos el siguiente comando:
 +
 
 +
docker-compose -f <compose-file> ps
 +
 
 +
Para ver el estado y los logs de los servicios de Selenium usaremos el siguiente comando:
 +
 
 +
docker-compose -f <compose-file> logs
 +
 
 +
Una vez realizadas las comprobaciones pertinentes, para verificar que el grid está funcionando correctamente y los workers se han registrado tal y como hemos definido en el fichero de configuración será necesario acceder a la siguiente URL:
 +
 
 +
http://<ip_selenium_server>:4444/grid/console
 +
 
 +
 
 +
<center>
 +
[[File:newux4.png]]
 +
</center>
 +
 
 +
Si se necesita escalar el número de workers, bastará con ejecutar el siguiente comando:
 +
 
 +
docker-compose -f <compose-file> scale chrome=X firefox=Y
 +
 
 +
=== Cargar las imágenes de pwrd desde la ISO ===
 +
 
 +
Si no se dispone de acceso a Internet para poder conectar con los servidores de Docker Hub y descargar las imágenes, en la ISO de Pandora FMS se encontrará todo lo necesario.
 +
 
 +
Los pasos a seguir serán los siguientes:
 +
 
 +
*Montar la ISO de pandora_enterprise en /mnt
 +
*Copiar el archivo pwrd.tar.gz (600M => 1,7G) a /root
 +
*Descomprimir.
 +
*Importar las imágenes.
 +
 
 +
$ mount /dev/cdrom0 /mnt
 +
$ cp /mnt/Packages/pwrd.tar.gz /root/
 +
$ cd /root
 +
$ tar xvzf pwrd.tar.gz
 +
$ docker load < chrome.node*.tar
 +
$ docker load < firefox.node.*.tar
 +
$ docker load < hub.3.*.tar
 +
 
 +
Para comprobar que las imágenes se han cargado correctamente, se lanzará el siguiente comando:
 +
 
 +
docker images
 +
 
 +
== Infraestructura del servicio Selenium ==
 +
 
 +
Selenium funciona como un hub en el que se levanta un contenedor que actúa como grid o cuadrícula donde desplegar los contenedores worker que se necesiten.
 +
 
 +
<center>
 +
[[File:newux9.png]]
 +
</center>
 +
 
 +
== Configuración de Pandora FMS ==
 +
 
 +
Para la utilización del modo centralizado (WUX) será necesario aplicar la siguiente configuración al servidor de Pandora FMS.
 +
 
 +
Independientemente del modo elegido, una vez iniciado podremos empezar a asignarle ejecuciones de nuestras sesiones de navegación, agregando los parámetros de configuración de WUX Server al fichero de configuración de nuestro servidor de Pandora FMS.
 +
 
 +
Suponiendo que hemos desplegado nuestro servidor PWRD en el mismo servidor en que corre nuestro servidor Pandora FMS, agregaríamos la siguiente configuración:
 +
 
 +
# agregar a /etc/pandora/pandora_server.conf
 +
wuxserver 1
 +
wux_host 127.0.0.1
 +
wux_port 4444
 +
 
 +
El fichero de configuración del servidor cuenta con un nuevo token para limpiar las sesiones que puedan estar encoladas cada vez que se inicia el servidor de Pandora FMS.
 +
 
 +
clean_wux_sessions 1 (default)
 +
 
 +
== Anexo: Añadir workers para Internet Explorer y Microsoft Edge ==
 +
 
 +
En caso de ser necesario lanzar transacciones web contra navegadores de Microsoft, será necesario configurar una máquina (física o virtual) con la versión de Windows deseada y configurar el driver siguiendo la documentación oficial.
 +
 
 +
Documentación para la instalación del driver de Internet Explorer:
 +
 
 +
github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver
 +
 
 +
{{Tip|Recomendamos el uso del driver 3.141 en su versión de 32bit para evitar los problemas de rendimiento de la versión de 64bit.}}
 +
 
 +
Documentación para la instalación del driver de Microsoft Edge:
 +
 
 +
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
 +
 
 +
Para la ejecución de Selenium, será necesario tener instalado Java en el dispositivo Windows.
 +
 
 +
Para comprobar si disponemos de Java, se podrá ejecutar el comando:
 +
 
 +
java -version
 +
 
 +
Deberíamos obtener una salida como la siguiente:
 +
 
 +
<center>
 +
[[File:newux1.png]]
 +
</center>
 +
 
 +
Será necesario también el fichero <b>JAR</b> de Selenium para ejecutar el servidor localmente y registrarlo en nuestro grid.
 +
 
 +
Se puede obtener en:
 +
 
 +
https://www.selenium.dev/downloads/
 +
 
 +
<center>
 +
[[File:newux2.png]]
 +
</center>
 +
 
 +
Para levantar el servidor <b>Microsoft Edge</b> se debe ejecutar en una terminal en el directorio donde tengamos el fichero <b>JAR</b> lo siguiente:
 +
 
 +
java -jar selenium-server-standalone-<VER>.jar -port 5555 -role node -hub
 +
http://<ip_selenium_server>:4444/grid/register -browser "browserName=MicrosoftEdge,
 +
platform=WINDOWS, maxInstances=1"
 +
 
 +
Para levantar el servidor <b>Internet Explorer</b> el comando es similar, pero se debe especificar la ruta del driver que hemos descargado:
 +
 
 +
java -Dwebdriver.ie.driver=<PATH>IEDriverServer.exe -jar selenium-server-
 +
standalone<VER>.jar -port 5555 -role node -hub
 +
http://ip_selenium_server:4444/grid/register -browser "browserName=internet
 +
explorer,platform=WINDOWS,maxInstances=1"
 +
 
 +
<center>
 +
[[File:newux3.png]]
 +
</center>
 +
 
 +
{{Warning|Se debe configurar el Firewall de Windows para permitir el tráfico en los puertos especificados en el comando de ejecución. En el caso de los ejemplos 5555 y 4444.}}
 +
 
 +
== Grabación ==
 +
 
 +
 
 +
{{Warning|Deberá tenerse en cuenta que las grabaciones realizadas en Selenium 2 pueden no funcionar correctamente.}}
 +
 
 +
Para la versión 3 de Selenium serán compatibles tanto las grabaciones antiguas como las nuevas, aunque no se garantiza la compatibilidad total con versiones antiguas.
 +
 
 +
Para poder grabar una nueva sesión, se deberá instalar la extensión <b>Selenium IDE</b> en el navegador que se desee.
 +
 
 +
*Firefox: https://addons.mozilla.org/es/firefox/addon/selenium-ide/
 +
*Chrome: https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
 +
 
 +
El icono siguiente será el que permita iniciar el entorno de grabación una vez instalada la extensión.
 +
 
 +
<center>
 +
[[File:newux10.png]]
 +
</center>
 +
 
 +
Se abrirá un menú que nos permitirá iniciar nuevos proyectos de grabación.
 +
 
 +
<center>
 +
[[File:newux5.png]]
 +
</center>
 +
 
 +
Una vez realizada la grabación se tendrá como resultado algo como lo que sigue:
 +
 
 +
<center>
 +
[[File:newux6.png]]
 +
</center>
 +
 
 +
Aparte de la funcionalidad provista por Selenium, Pandora FMS dispone de comandos personalizados para extraer información del objetivo a monitorizar.
 +
 
 +
=== Comandos ===
 +
 
 +
La lista de comandos compatibles para usarlos en Pandora FMS se puede encontrar en el [[Pandora:Documentation_es:Comandos_de_selenium_compatibles|siguiente enlace]] .
 +
 
 +
<br>
 +
<br>
 +
 
 +
=== Recomendaciones y sugerencias al realizar las grabaciones ===  
 +
 
 +
A continuación detallamos una serie de recomendaciones y consejos a la hora tanto de realizar la grabación de las transacciones con Selenium IDE como para integrar con Pandora FMS los comandos más complejos:
 +
 
 +
* <b>Dividir la transacción en fases siempre que sea posible.</b> De esta forma los módulos que se crearán tanto de estado como tiempos y screenshots estarán segmentados y será más sencillo localizar dónde ha fallado la transacción.
 +
 
 +
* <b>Utilizar el comando de selenium "set speed" y "wait for" para evitar falsos negativos.</b> Al ejecutar una transacción, los comandos de selenium no tienen ningún delay por defecto desde que termina uno hasta que se ejecuta el siguiente, y algunos tampoco tienen tiempo de timeout. Esto hace que la transacción se ejecute muy rápidamente en el menor tiempo posible, pero al hacerlo tan rápidamente, si la web es algo lenta o tarda un segundo de más en cargar es posible que el chequeo termine en fallo. Por ejemplo, tras ejecutar un comando "click" y cambiar de página, si después tenemos un comando que interactúe con un elemento a la nueva página y la carga de esta se retrasa un segundo, no encontrará el elemento en la nueva página y el chequeo acabará en fallo. <br>Para evitar estas situaciones, existe el comando "set speed", que añade un delay de la cantidad de milisegundos que le indiquemos en el Target entre cada comando. Recomendamos establecerlo al inicio de la transacción.<br> También existen para los casos en los que sepamos que la carga de una página o aparición de un elemento se puedan demorar unos segundos, los comandos "wait for element present", "wait for visible" y "wait for text" en los que podemos establecer el tiempo en milisegundos que esperará para que el elemento aparezca en la página antes de marcar la transacción como fallo.<br>Es importante destacar que el uso de estos comandos, si bien aumentan de sobremanera la fiabilidad del chequeo, también incrementarán el tiempo que se tarda en ejecutar la transacción.
 +
 
 +
* <b>Realizar comprobaciones de los elementos.</b> Para esto se usarán comandos como "assert" y "verify", en sus distintas vertientes. Acabar una transacción con un click, por ejemplo, no nos garantiza que la nueva página que deba abrir el elemento en el que se hace click se abra, solo que es posible hacer click en el elemento. Si después del click introducimos un "verify text" a un texto que sepamos que solo se va a cargar después de realizar el click, sí sería una forma de comprobar que la página a la que nos manda el click está disponible.
 +
 
 +
* <b>Utilizar "store window handle" en transacciones en los que se vaya a cambiar de ventanas.</b> El cambio de ventana (con un "select window") puede dar fallo si no se ha almacenado previamente un identificador a la ventana inicial.
 +
 
 +
* <b>Utilizar xpath cuando falle el Target por identificador de CSS o cuando queramos buscar contenido en la página.</b> Por defecto, el grabador de Selenium IDE introduce en el Target del elemento el localizador del CSS, pero también graba el localizador por xpath, es posible ver todos los localizadores que guarda si pulsamos en el box del Target en el grabador:[[File:Recomendaciones_ux1.png|center]] <br>Además, utilizando rutas por xpath, es posible buscar textos dentro de las etiquetas de las páginas para realizar grabaciones mucho más dinámicas. En la captura anterior vemos que es posible usar un xpath que busque el texto "Innovadores de la monitorización" en todas las etiquetas span de la página, no en un locator en concreto.
 +
 
 +
* <b>Uso correcto del comando "execute script".</b> El comando "execute script" ejecuta un fragmento de código de JavaScript en la ventana en la que está ubicado en la transacción. Recomendamos leer esta guía para conocer su uso y las diferentes opciones que ofrece: https://ui.vision/rpa/docs/selenium-ide/executescript <br>No obstante, el uso de las variables almacenadas previamente (por un comando "store text" por ejemplo) debe ir entre comillas dobles para que el webdriver de Pandora FMS las interprete correctamente. Aquí hay un ejemplo de una variable almacenada con "store text" y su posterior uso en "execute script" de forma que el servidor de Pandora FMS la interpreta correctamente. Nótese que este uso de la variable entre comillas fallará al ejecutar el script en el grabador de Selenium IDE:
 +
[[File:Recomendaciones_ux2.png|center]]
  
== Introducción ==
+
= Experiencia de Usuario Web (WUX) con Selenium 2 =
  
Pandora FMS UX es un sistema que ejecuta tareas automatizadas, entregando a Pandora FMS un informe con los resultados de las ejecuciones, tiempos empleados y capturas con los posibles errores encontrados.
+
== Configuraciones previas ==
  
Pandora FMS UX utiliza dos tecnologías por defecto para la automatización de tareas:
+
=== Selenium ===
* '''Pandora Web Robot (PWR)''': permite la navegación por sitios web, simulando las acciones de un usuario. Puede comprobar contenidos, textos, etc. Es la elección perfecta para monitorizar sitios y aplicaciones web no basadas en flash. Su ventaja: más rápido, con la posibilidad de ejecución en segundo plano.
 
  
* '''Pandora Desktop Robot (PDR)''': permite la interacción con sistemas operativos Windows como si de un usuario se tratara. Pandora UX lanzará scripts preparados con esta herramienta, permitiendo una monitorización más avanzada y específica. Por ejemplo, podemos desplegar el plugin en un equipo y realizar conexiones a diferentes redes para comprobar si funciona correctamente, tal y como trabajaría un usuario delante del PC. Su uso principal consiste en la monitorización de aplicaciones pesadas de escritorio. También engloba la monitorización de aplicaciones basadas en tecnología Flex (Adobe), que serían incompatibles con Selenium sin realizar modificaciones en la propia aplicación.
+
==== Despliegue con Pandora Web Robot Daemon (PWRD) ====
  
Como se puede observar, existe una gran diferencia entre ambos métodos de automatización. Mientras el método PWR se basa en la navegación automatizada de un usuario por un sitio web realizando las tareas determinadas en la grabación, el método PDR puede realizar interacciones de diferentes herramientas del sistema operativo como si un usuario estuviera ejecutándolas. En resumen, uno se basa en la navegación web y el otro se basa en la ejecución de distintas aplicaciones de escritorio.
+
Pandora FMS Web Robot Daemon es un servicio que provee las herramientas necesarias para automatizar las sesiones de navegación web, utilizando un archivo que contiene una lista de las acciones necesarias para navegar por el portal web del usuario.
  
Si dispone de un sistema de automatización de tareas, Pandora FMS UX también permite ejecutar los scripts que ya tenga y monitorizar su ejecución.
+
Viene integrado con el servidor de Pandora FMS y lo podemos encontrar en la carpeta /usr/share/pandora_server/util/pwrd al instalar el servidor Enterprise (Linux) o en la librería de módulos (Windows).
  
Es importante concretar el uso de este tipo de monitorización. Ambos métodos se basan en la ejecución de las monitorizaciones mediante plugin en los agentes software instalados en las máquinas correspondientes.
+
Para descargarlo vaya al siguiente enlace: ''https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/''
  
== Experiencia de usuario WEB (PWR) ==
+
Contiene:
=== Despliegue del sistema PWR ===
 
  
Pasos a seguir para preparar un entorno de trabajo para Pandora FMS UX.
+
* Binario del navegador Firefox versión 47.
 +
* Perfil preconstruido para la ejecución de sesiones de navegación web.
 +
* Servidor de automatización de sesiones (Selenium server).
  
 
==== Despliegue del servidor Selenium en sistemas Windows ====
 
==== Despliegue del servidor Selenium en sistemas Windows ====
Line 47: Line 300:
 
Prerrequisitos:
 
Prerrequisitos:
 
* Instalar Java 1.8 en la máquina que dará el servicio.
 
* Instalar Java 1.8 en la máquina que dará el servicio.
* Instalar Firefox 43.0.1 (descargable en https://ftp.mozilla.org/pub/firefox/releases/43.0.1/).
+
* Instalar Firefox 47.0.1 (descargable en https://ftp.mozilla.org/pub/firefox/releases/47.0.1/).
 
* Preparar un perfil de Firefox que se utilizará para probar las sesiones automatizadas (opcional): http://toolsqa.com/selenium-webdriver/custom-firefox-profile/
 
* Preparar un perfil de Firefox que se utilizará para probar las sesiones automatizadas (opcional): http://toolsqa.com/selenium-webdriver/custom-firefox-profile/
 
* Crearemos los siguientes directorios:
 
* Crearemos los siguientes directorios:
 
  C:\PWR
 
  C:\PWR
C:\sondas
 
  
 
Para descargar el PWR_Server.zip, vaya al siguiente enlace:
 
Para descargar el PWR_Server.zip, vaya al siguiente enlace:
Line 87: Line 339:
 
Desde este momento ya tenemos el servidor de Selenium corriendo en nuestra máquina. No obstante, podemos ejecutarlo a mano (parando el servicio previamente) en caso de que queramos realizar tareas de ''debugging'', mediante el siguiente comando:
 
Desde este momento ya tenemos el servidor de Selenium corriendo en nuestra máquina. No obstante, podemos ejecutarlo a mano (parando el servicio previamente) en caso de que queramos realizar tareas de ''debugging'', mediante el siguiente comando:
  
  java -jar selenium-server-standalone-2.53.0.jar -firefoxProfileTemplate C:\selenium\firefox_profile -port 4444 -v
+
  java -jar C:\PWR\server\selenium-server-standalone-2.53.0.jar -firefoxProfileTemplate C:\PWR\profile -port 4444 -v
  
 
==== Despliegue del servidor Selenium en sistemas Linux ====
 
==== Despliegue del servidor Selenium en sistemas Linux ====
Line 93: Line 345:
 
Prerrequisitos:
 
Prerrequisitos:
 
* Instalar Java 1.8 en la máquina que dará el servicio.
 
* Instalar Java 1.8 en la máquina que dará el servicio.
* Instalar Firefox 43.0.1 (descargable en https://ftp.mozilla.org/pub/firefox/releases/43.0.1/).
+
* Instalar Firefox 47.0.1 (descargable en https://ftp.mozilla.org/pub/firefox/releases/47.0.1/).
 
* Preparar un perfil de Firefox que se utilizará para probar las sesiones automatizadas (opcional): http://toolsqa.com/selenium-webdriver/custom-firefox-profile/
 
* Preparar un perfil de Firefox que se utilizará para probar las sesiones automatizadas (opcional): http://toolsqa.com/selenium-webdriver/custom-firefox-profile/
 
* Instalar xorg-x11-server-xvfb
 
* Instalar xorg-x11-server-xvfb
 
* Instalar java
 
* Instalar java
  
Para la instalación del paquete xorg-x11 desde los repositorios:
+
El componente Selenium del demonio PWRD requiere Java para funcionar; necesitaremos instalarlo:
 +
 
 +
yum install java
 +
 
 +
Para que PWRD sea capaz de lanzar Firefox en nuestro servidor Linux, será necesario instalar xorg-x11-server-Xvfb, gtk2 y gtk3 para poder virtualizar un entorno gráfico:
 +
 
 +
yum install xorg-x11-server-Xvfb gtk2 gtk3
  
yum install xorg-x11-server-Xvfb
+
Si no está disponible en sus repositorios puede encontrar los ficheros rpm en los siguiente enlaces:
yum install java
+
ftp://rpmfind.net/linux/centos/6.6/os/x86_64/Packages/xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm
  
Si no está disponible en sus repositorios puede encontrar el fichero rpm en el siguiente enlace:
+
ftp://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/gtk2-2.24.31-1.el7.x86_64.rpm
ftp://rpmfind.net/linux/centos/6.9/os/x86_64/Packages/xorg-x11-server-Xvfb-1.17.4-16.el6.centos.x86_64.rpm
 
  
Para realizar la instalación del paquete rpm de forma manual:
+
Para realizar la instalación de los paquetes rpm de forma manual:
  
  yum install xorg-x11-server-Xvfb-1.17.4-16.el6.centos.x86_64.rpm
+
  yum install xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm
 +
yum install gtk2-2.24.31-1.el7.x86_64.rpm
  
 
Una vez instalados los prerrequisitos continuamos con la instalación del install_pwrd.sh. Dicho instalador se encuentra por defecto en la carpeta ''/usr/share/pandora_server/util/pwrd/install_pwrd.sh'' y se ejecuta de la siguiente manera:
 
Una vez instalados los prerrequisitos continuamos con la instalación del install_pwrd.sh. Dicho instalador se encuentra por defecto en la carpeta ''/usr/share/pandora_server/util/pwrd/install_pwrd.sh'' y se ejecuta de la siguiente manera:
  
  /usr/share/pandora_server/util/pwrd/install_pwrd.sh --install
+
  cd /usr/share/pandora_server/util/pwrd/
 +
./install_pwrd.sh --install
  
 
Una vez instalado tendremos que iniciar el servicio:
 
Una vez instalado tendremos que iniciar el servicio:
Line 122: Line 381:
 
  #!/bin/sh
 
  #!/bin/sh
 
  # Monitoring selenium process
 
  # Monitoring selenium process
  if [[ "`ps aux |grep selenium |grep -v grep |grep -v selenium.sh |wc -l `" != "0" ]]; then
+
  if [[ <nowiki>"`ps aux |grep selenium |grep -v grep |grep -v selenium.sh |wc -l `"</nowiki> != "0" ]]; then
 
     exit
 
     exit
 
  else
 
  else
     if [[ "`ps aux |grep Xvfb |grep -v grep | wc -l `" != "0" ]]; then
+
     if [[ <nowiki>"`ps aux |grep Xvfb |grep -v grep | wc -l `" != "0"</nowiki> ]]; then
 
       Xvfb :99 -ac &
 
       Xvfb :99 -ac &
 
       export DISPLAY=:99
 
       export DISPLAY=:99
Line 140: Line 399:
 
  $ java -jar  /usr/share/pandora_server/util/pwdr/selenium-server-standalone-2.53.1.jar -port 4444 &
 
  $ java -jar  /usr/share/pandora_server/util/pwdr/selenium-server-standalone-2.53.1.jar -port 4444 &
  
==== Qué es Pandora Web Robot Daemon (PWRD) ====
 
  
Pandora FMS Web Robot Daemon es un servicio que provee las herramientas necesarias para automatizar las sesiones de navegación web, utilizando un archivo que contiene una lista de las acciones necesarias para navegar por el portal web del usuario.
+
En la versión 730 y posteriores se ha introducido la posibilidad de realizar la instalación personalizada con un usuario y un directorio diferente de la instalación por defecto.
 +
 
 +
===== Modos de funcionamiento de PWRD =====
 +
 +
PWRD provee varios modos de funcionamiento:
 +
 
 +
* '''Standalone''': Modo estándar, iniciará una única instancia de PWRD. Cada una de estas instancias irá asociada a un servidor de Pandora FMS.
 +
* '''HUB''': Modo concentrador. En este modo el servicio PWRD no evaluará las sesiones de navegación directamente, sino que deberán registrarse "nodos" para ejecutar las tareas. Es el modo clúster del servicio PWRD. Cada HUB irá asignado a un servidor de Pandora FMS.
 +
 
 +
====== PWRD en modo standalone ======
 +
 
 +
PWRD en modo standalone iniciará el demonio y lo dejará listo para ejecutar las acciones indicadas por el usuario a través de WUX Server.
 +
 
 +
<br>
 +
[[File:wux_pwrd_standalone.png|center]]
 +
<br>
 +
 
 +
 
 +
# Iniciar
 +
/etc/init.d/pwrd start
 +
 
 +
# ver el estado
 +
/etc/init.d/pwrd status
 +
 
 +
# detener
 +
/etc/init.d/pwrd stop
 +
 
 +
 
 +
====== PWRD en modo "HUB"======
 +
 
 +
El modo concentrador (o HUB) iniciará el demonio como un balanceador de carga. En este modo de trabajo, el sistema irá balanceando la carga entre todos los nodos que se hayan registrado en él, asignando la ejecución de las sesiones de navegación a los nodos en función de su carga de trabajo.
 +
 
 +
Puede ver en todo momento el estado del HUB accediendo a la consola de administración del mismo:
 +
 
 +
http://hub:4444/grid/console
 +
 
 +
 
 +
<br>
 +
[[File:wux_pwrd_hub.png|center]]
 +
<br>
 +
 
 +
 
 +
# Iniciar
 +
/etc/init.d/pwrd start-hub
 +
 
 +
# ver el estado
 +
/etc/init.d/pwrd status-hub
 +
 
 +
# detener
 +
/etc/init.d/pwrd stop-hub
 +
 
 +
 
 +
======Agregar nodos de PWRD a nuestro HUB======
 +
 
 +
Para agregar un nuevo nodo PWRD necesitaremos:
 +
 
 +
* Un concentrador (PWRD en modo HUB).
 +
* Los archivos de PWRD, en la misma o una máquina diferente.
 +
* Conectividad TCP/4444 desde el equipo que aloja el nodo hacia el equipo que aloja el HUB.
 +
 
 +
En este modo de trabajo, el servicio procesará todas aquellas solicitudes encoladas <b>desde el concentrador (HUB)</b>, devolviendo a este los resultados de las ejecuciones. Será el HUB quien hable de manera exclusiva con el WUX Server, siendo transparente para este quién esté ejecutando las acciones del usuario.
 +
 
 +
# Iniciar y registrar en el HUB, sustituir "hub" por la IP del servidor PWRD HUB
 +
/etc/init.d/pwrd start-node http://hub:4444/grid/register
 +
 
 +
# ver el estado
 +
/etc/init.d/pwrd status-node
 +
 
 +
# detener
 +
/etc/init.d/pwrd stop-node
 +
 
 +
==== Configuración del servidor de Pandora ====
 +
 
 +
Para la utilización del modo centralizado (WUX) será necesario aplicar la siguiente configuración al servidor de Pandora FMS.
 +
 
 +
Independientemente del modo elegido, una vez iniciado podremos empezar a asignarle ejecuciones de nuestras sesiones de navegación, agregando los parámetros de configuración de WUX Server al fichero de configuración de nuestro servidor de Pandora FMS.
 +
 
 +
Suponiendo que hemos desplegado nuestro servidor PWRD en el mismo servidor en que corre nuestro servidor Pandora FMS, agregaríamos la siguiente configuración:
 +
 
 +
# agregar a /etc/pandora/pandora_server.conf
 +
wuxserver 1
 +
wux_host 127.0.0.1
 +
wux_port 4444
 +
 
 +
 
 +
==== Carga de certificados para Firefox ====
 +
 
 +
Es posible que algunos de los chequeos configurados se ejecuten contra páginas web que usen certificados autofirmados o firmados por una CA no incluida en las aceptadas por defecto en Firefox, por lo que en esos casos será necesario cargar el certificado en cuestión en el perfil de Firefox que se esté usando.
 +
 
 +
Para hacer esto, lo más sencillo es iniciar el navegador en un entorno gráfico, acceder a la URL y agregar el certificado SSL. A continuación explicaremos cómo hacerlo tanto en Windows como en Linux:
 +
 
 +
===== Con PWRD desplegado en sistemas Windows =====
 +
 
 +
En este caso, ya que contaremos con un entorno gráfico, solo tendremos que iniciar el navegador Firefox con el perfil que estemos usando para los chequeos:
 +
 
 +
[[File:Profile_01.png|center]]
 +
 
 +
[[File:Profile_02.png|center]]
 +
 
 +
Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:
 +
 
 +
[[File:Profile_03.png|center]]
 +
 
 +
[[File:Profile_04.png|center]]
 +
 
 +
Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a las opciones de Firefox, a la pestaña de "Privacidad & Seguridad", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":
 +
 
 +
[[File:Profile_05.png|center]]
 +
 
 +
[[File:Profile_06.png|center]]
 +
 
 +
===== Con PWRD desplegado en sistemas Linux =====
 +
 
 +
Por lo general, cuando se instala un servidor Linux, no se le incluye un entorno de escritorio gráfico, por lo que para poder seguir los mismos pasos que en el caso anterior tenemos que hacer una redirección de las X gráficas a un equipo donde sí tengamos un entorno de escritorio gráfico. Esto se hace de forma distinta si redirigimos las X a un escritorio gráfico en Linux o Windows.
 +
 
 +
====== Redirigiendo X11 a un escritorio en Linux ======
 +
 
 +
Hacer esto es muy sencillo, ya que bastará con establecer una conexión SSH al servidor PWRD con el parámetro "-X":
 +
 
 +
ssh -X [email protected]_ip_address
 +
 
 +
Hecho esto, si lanzamos el navegador Firefox, podremos ver cómo se nos muestra en nuestro escritorio:
 +
 
 +
firefox -p
 +
 
 +
En una instalación por defecto solo veremos el perfil "default", por lo que sería recomendable hacer como en la instalación en Windows y crear un nuevo perfil el cual utilizar:
 +
 
 +
[[File:Profile_07.png|center]]
 +
 
 +
[[File:Profile_08.png|center]]
 +
 
 +
[[File:Profile_09.png|center]]
 +
 
 +
En caso de guardar el perfil en una ruta distinta a '''/opt/firefox_profile''', será necesario editar el script de arrance del PWRD '''/etc/init.d/pwrd''' para indicarle la ruta al nuevo perfil:
 +
 
 +
PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"
 +
 
 +
Con el perfil creado, se puede iniciar el navegador:
 +
 
 +
[[File:Profile_10.png|center]]
 +
 
 +
Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:
 +
 
 +
[[File:Profile_11.png|center]]
 +
 
 +
[[File:Profile_12.png|center]]
 +
 
 +
Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a las opciones de Firefox, a la pestaña de "Avanzado > Certificados", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":
 +
 
 +
[[File:Profile_13.png|center]]
 +
 
 +
[[File:Profile_14.png|center]]
 +
 
 +
====== Redirigiendo X11 a un escritorio en Windows ======
 +
 
 +
En el caso de Windows, primero tendremos que instalar un servidor de X para poder hacer la redirección, como por ejemplo '''Xming'''. Una vez instalado e iniciado, podremos hacer la redirección de las X.
 +
 
 +
Usando el cliente SSH Putty, tendremos que ir a al apartado "Conection > SSH > X11" antes de hacer la conexión, y asegurarnos de que marcamos la opción "Enable X11 forwarding" así como de rellenar el campo "X display location" como "localhost:0":
 +
 
 +
[[File:Profile_15.png|center]]
 +
 
 +
Después volvemos al apartado "Session" y establecemos la conexión:
 +
 
 +
[[File:Profile_16.png|center]]
 +
 
 +
Una vez establecida la conexión, si lanzamos el navegador Firefox en el servidor PWRD, podremos visualizarlo en el escritorio de Windows.
 +
 
 +
firefox -p
 +
 
 +
En una instalación por defecto solo veremos el perfil "default", por lo que sería recomendable hacer como en la instalación en Windows y crear un nuevo perfil el cual utilizar:
 +
 
 +
[[File:Profile_17.png|center]]
 +
 
 +
[[File:Profile_18.png|center]]
 +
 
 +
[[File:Profile_19.png|center]]
 +
 
 +
En caso de guardar el perfil en una ruta distinta a '''/opt/firefox_profile''', será necesario editar el script de arrance del PWRD '''/etc/init.d/pwrd''' para indicarle la ruta al nuevo perfil:
 +
 
 +
PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"
 +
 
 +
Con el perfil creado, se puede iniciar el navegador:
 +
 
 +
[[File:Profile_20.png|center]]
 +
 
 +
Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:
 +
 
 +
[[File:Profile_21.png|center]]
 +
 
 +
[[File:Profile_22.png|center]]
 +
 
 +
Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a las opciones de Firefox, a la pestaña de "Avanzado > Certificados", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":
 +
 
 +
[[File:Profile_23.png|center]]
  
Viene integrado con el servidor de Pandora FMS y lo podemos encontrar en la carpeta /usr/share/pandora_server/util/pwrd al instalar el servidor Enterprise (Linux) o en la librería de módulos (Windows).
+
[[File:Profile_24.png|center]]
  
Para descargarlo vaya al siguiente enlace: ''https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/''
 
  
Contiene:
+
=== Grabador de sesiones (PWR) ===
  
* Binario del navegador Firefox versión 43.
+
{{Warning|La nueva versión de Selenium IDE será compatible a partir de la versión 745 de Pandora FMS, cuando se implemente Selenium 3. Las transacciones grabadas en Selenium 2 no se verán afectadas.}}
* Perfil preconstruido para la ejecución de sesiones de navegación web.
 
* Servidor de automatización de sesiones (Selenium server).
 
  
=== Grabar una sesión PWR ===
+
{{Warning|Las sesiones grabadas con Selenium 2 sólo podrán realizarse con Firefox.}}
  
 
Antes de monitorizar una experiencia de usuario debemos hacer la grabación. Dependiendo del tipo de tecnología que hayamos elegido utilizaremos un sistema de grabación u otro.
 
Antes de monitorizar una experiencia de usuario debemos hacer la grabación. Dependiendo del tipo de tecnología que hayamos elegido utilizaremos un sistema de grabación u otro.
Line 163: Line 611:
  
 
Contiene:
 
Contiene:
* Navegador web Firefox versión 43.0.1 (descargable en https://ftp.mozilla.org/pub/firefox/releases/43.0.1/).
+
* Navegador web Firefox versión 47.0.1 (descargable en https://ftp.mozilla.org/pub/firefox/releases/47.0.1/).
 
* Extensión Selenium IDE (descargable en: https://addons.mozilla.org/es/firefox/addon/selenium-ide/).
 
* Extensión Selenium IDE (descargable en: https://addons.mozilla.org/es/firefox/addon/selenium-ide/).
  
Line 213: Line 661:
 
Una vez verificada la validez de la secuencia de navegación, la guardaremos (Archivo -> Save Test Case) para ejecutarla posteriormente con Pandora FMS UX. El fichero resultante será un documento HTML que Pandora FMS UX interpretará.
 
Una vez verificada la validez de la secuencia de navegación, la guardaremos (Archivo -> Save Test Case) para ejecutarla posteriormente con Pandora FMS UX. El fichero resultante será un documento HTML que Pandora FMS UX interpretará.
  
==== Grabar una sesión transaccional con Pandora UX PWR ====
 
  
Pandora FMS UX en modo PWR (Pandora Web Robot) permite dividir la monitorización de la navegación de un sitio web en múltiples módulos, que representarán cada uno de los pasos realizados.
+
===== Grabar una sesión transaccional para Pandora WUX =====
 +
 
 +
Pandora FMS WUX permite dividir la monitorización de la navegación de un sitio web en múltiples módulos, que representarán cada uno de los pasos realizados.
  
 
Para insertar un nuevo punto de control y generar los módulos de fase (hasta ese punto) haga clic derecho en el punto donde desea identificar el comienzo de fase.
 
Para insertar un nuevo punto de control y generar los módulos de fase (hasta ese punto) haga clic derecho en el punto donde desea identificar el comienzo de fase.
  
 
<br>
 
<br>
[[File:ux16.JPG|center]]
+
[[File:pwrd_recorder_transaction.PNG|center]]
 
<br>
 
<br>
  
Line 233: Line 682:
 
Todos los comandos que se ejecuten entre una etiqueta phase_start y phase_end se englobarán dentro de esa fase.
 
Todos los comandos que se ejecuten entre una etiqueta phase_start y phase_end se englobarán dentro de esa fase.
  
=== Ejecución de sesiones PWR ===
+
<br>
 +
[[File:pwrd_recorder_transaction2.PNG|center]]
 +
<br>
 +
 
 +
{{Warning|Deberá tenerse en cuenta que las grabaciones realizadas en Selenium 3 pueden no funcionar correctamente.}}
 +
 
 +
== Ejecución de transacciones web ==
  
==== Ejecución estándar ====
+
=== Ejecución estándar ===
  
 
Para lanzar sesiones pregrabadas de PWR llamaremos al ejecutable ''pandora_ux_x64.exe'', el cual nos podemos descargar del siguiente enlace:''https://pandorafms.com/library/user-experience-pandora-ux''
 
Para lanzar sesiones pregrabadas de PWR llamaremos al ejecutable ''pandora_ux_x64.exe'', el cual nos podemos descargar del siguiente enlace:''https://pandorafms.com/library/user-experience-pandora-ux''
Line 241: Line 696:
 
Indicaremos que el modo de trabajo es PWR, y el archivo que contiene las directrices de la sesión. En la ruta indicada en el parámetro ''-folder'' se guardarán las capturas de pantalla a mostrar en caso de error, parámetro opcional. También se puede introducir el número de reintentos consecutivos en caso de fallo, parámetro opcional. Su ejecución en Windows es:
 
Indicaremos que el modo de trabajo es PWR, y el archivo que contiene las directrices de la sesión. En la ruta indicada en el parámetro ''-folder'' se guardarán las capturas de pantalla a mostrar en caso de error, parámetro opcional. También se puede introducir el número de reintentos consecutivos en caso de fallo, parámetro opcional. Su ejecución en Windows es:
  
  pandora_ux_x64.exe -exe PWR -script tests\std.html -retries 3
+
  pandora_ux_x64.exe -exe PWR -script C:\tests\std.html -retries 3
  
 
Se devolverán los siguientes módulos:
 
Se devolverán los siguientes módulos:
Line 253: Line 708:
 
     <name><![CDATA[UX_Status_std.html]]></name>
 
     <name><![CDATA[UX_Status_std.html]]></name>
 
     <type>generic_proc</type>
 
     <type>generic_proc</type>
     <data><![CDATA[1]]></data>
+
     <nowiki><data><![CDATA[1]]></data></nowiki>
 
     <description><![CDATA[Test OK]]></description>
 
     <description><![CDATA[Test OK]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 261: Line 716:
 
     <name><![CDATA[UX_Time_std.html]]></name>
 
     <name><![CDATA[UX_Time_std.html]]></name>
 
     <type>generic_data</type>
 
     <type>generic_data</type>
     <data><![CDATA[16.317]]></data>
+
     <nowiki><data><![CDATA[16.317]]></data></nowiki>
 
     <description><![CDATA[Test OK]]></description>
 
     <description><![CDATA[Test OK]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 273: Line 728:
 
     <name><![CDATA[UX_Status_std.html]]></name>
 
     <name><![CDATA[UX_Status_std.html]]></name>
 
     <type>generic_proc</type>
 
     <type>generic_proc</type>
     <data><![CDATA[0]]></data>
+
     <nowiki><data><![CDATA[0]]></data></nowiki>
 
     <description><![CDATA[Failed to execute verifyText]]></description>
 
     <description><![CDATA[Failed to execute verifyText]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 281: Line 736:
 
     <name><![CDATA[UX_Time_std.html]]></name>
 
     <name><![CDATA[UX_Time_std.html]]></name>
 
     <type>generic_data</type>
 
     <type>generic_data</type>
     <data><![CDATA[15.463]]></data>
+
     <nowiki><data><![CDATA[15.463]]></data></nowiki>
 
     <description><![CDATA[Failed to execute verifyText]]></description>
 
     <description><![CDATA[Failed to execute verifyText]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 291: Line 746:
 
     <name><![CDATA[UX_Snapshot_std.html]]></name>
 
     <name><![CDATA[UX_Snapshot_std.html]]></name>
 
     <type>async_string</type>
 
     <type>async_string</type>
     <data><![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]></data>
+
     <nowiki><data><![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]></data></nowiki>
 
     <description><![CDATA[Image (last error)]]></description>
 
     <description><![CDATA[Image (last error)]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 300: Line 755:
 
Si todo ha resultado correcto podemos añadir la línea de ejecución al agente de Pandora FMS instalado en la máquina que hayamos preparado para ejecutar los chequeos. La línea a añadir al fichero de configuración del agente tendrá un aspecto similar a este (en una sola línea):
 
Si todo ha resultado correcto podemos añadir la línea de ejecución al agente de Pandora FMS instalado en la máquina que hayamos preparado para ejecutar los chequeos. La línea a añadir al fichero de configuración del agente tendrá un aspecto similar a este (en una sola línea):
 
En Windows:
 
En Windows:
  module_plugin C:\Users\artica\Documents\Producto\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Producto\UX-Trans\PWR\sesion.html -folder C:\sondas
+
  module_plugin C:\Users\artica\Documents\Producto\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Producto\UX-Trans\PWR\sesion.html -folder <ruta screenshots>
 
En Linux:
 
En Linux:
 
  module_plugin /usr/share/pandora_server/util/pwrd/firefox/pandora_ux.64 -exe PWR -script /usr/share/pandora_server/util/pwrd/firefox/PruebaUX.html -pwr_port 4444
 
  module_plugin /usr/share/pandora_server/util/pwrd/firefox/pandora_ux.64 -exe PWR -script /usr/share/pandora_server/util/pwrd/firefox/PruebaUX.html -pwr_port 4444
Line 316: Line 771:
 
</center>
 
</center>
  
==== Ejecución basada en transacciones ====
+
=== Ejecución basada en fases ===
  
 
Si tenemos una grabación transaccional con Pandora FMS UX PWR, como se indicó en los apartados anteriores, será el propio sistema quien genere los módulos necesarios para identificar cada una de las fases indicadas, por lo que la ejecución no variará con respecto al caso anterior; únicamente indicaremos el fichero html correspondiente, que en este caso contendrá las diferentes fases. Ejemplo de ejecución en Windows:
 
Si tenemos una grabación transaccional con Pandora FMS UX PWR, como se indicó en los apartados anteriores, será el propio sistema quien genere los módulos necesarios para identificar cada una de las fases indicadas, por lo que la ejecución no variará con respecto al caso anterior; únicamente indicaremos el fichero html correspondiente, que en este caso contendrá las diferentes fases. Ejemplo de ejecución en Windows:
  
  pandora_ux_x64 -exe PWR -script tests\std.html –folder C:\sondas
+
  pandora_ux_x64 -exe PWR -script C:\tests\std.html –folder <ruta screenshots>
  
 
Se devolverán los siguientes módulos por fase:
 
Se devolverán los siguientes módulos por fase:
Line 354: Line 809:
 
<br>
 
<br>
  
 
+
=== Recuperación de valores ===
==== Recuperación de valores ====
 
  
 
Pandora FMS UX es capaz de recuperar datos directamente de la web durante la ejecución de los tests de experiencia de usuario.
 
Pandora FMS UX es capaz de recuperar datos directamente de la web durante la ejecución de los tests de experiencia de usuario.
Line 365: Line 819:
 
<br>
 
<br>
  
En el ejemplo adjunto, se recuperan dos valores después de realizar la navegación, y se representarán como módulos en Pandora FMS (numerito y resultado en texto).
+
En el ejemplo adjunto, se recuperan dos valores después de realizar la navegación, y se representarán como módulos en Pandora FMS (número y resultado en texto).
  
 
Los pasos para ordenar al plugin recoger datos son los siguientes:
 
Los pasos para ordenar al plugin recoger datos son los siguientes:
Line 401: Line 855:
 
</pre>
 
</pre>
  
== Experiencia de usuario de escritorio (PDR) ==
+
= Gestión y visualización de datos =
 +
 
 +
== Crear un módulo de análisis web en Pandora FMS Console ==
 +
 
 +
Una vez tenemos nuestra sesión de navegación grabada, es hora de desplegarlo como módulo en la consola de Pandora FMS.
 +
 
 +
Para ello accederemos a '''cualquier agente asociado a un servidor con la funcionalidad WUX habilitada''' y crearemos un módulo de tipo "Análisis web":
 +
 
 +
[[File:Wux_module.PNG|center|400px]]
 +
 
 +
 
 +
Una vez seleccionado "crear" deberemos rellenar todos los campos que nos presenta el formulario:
 +
 
 +
[[File:Wux_form.png|center]]
 +
 
 +
* Nombre del módulo: Módulo WUX (Padre); todos los sub-módulos con los resultados de la monitorización serán dependientes de este nuevo módulo.
 +
* Lanzar pruebas de rendimiento (Run performance tests): Indica que queremos monitorizar no solo la experiencia de navegación, sino también las estadísticas de rendimiento del acceso al sitio web objetivo.
 +
* Sitio web objetivo (target web site): Para la monitorización de estadísticas de rendimiento de sitio web.
 +
* Ejecutar prueba desde: Indicar el servidor WUX que ejecutara el chequeo.
 +
* Navegador: Navegador web con el que ejecutar el chequeo.
 +
 
 +
<br>
 +
{{Warning|El navegador indicado debe figurar en el grid o servidor de Selenium utilizado por el servidor WUX.}}
 +
 
 +
* Aceptar certificados inseguros: Si se habilita, se aceptará cualquier certificado no seguro (autofirmado, expirado, etc.) que forme parte de la navegación.
 +
 
 +
<br>
 +
{{Warning|Esta opción solo está disponible para los navegadores Google Chrome y Mozilla Firefox, y solo tendrá efecto si el chequeo es ejecutado por un servidor de Selenium 3.}}
 +
 
 +
* Histórico de datos: Guardar o no la información histórica de los módulos que monitorizan esta experiencia de usuario.
 +
* Sección ''textarea'': En este cuadro de texto deberemos copiar (o cargar) el contenido de los ficheros de la sesión de navegación que hemos grabado previamente.
 +
 
 +
 
 +
==== Macros personalizadas ====
 +
 
 +
El funcionamiento de las macros personalizadas implica la sustitución de determinadas cadenas de texto presentes en nuestro fichero de sesión de navegación por ciertos valores personalizables.
 +
 
 +
En el caso de módulos de análisis web, se ha mejorado esta funcionalidad, permitiendo '''macros dinámicas''' que permiten que estos valores se traduzcan en '''fechas y horas''' variables.
 +
 
 +
¿Por qué esta funcionalidad?
 +
 
 +
Supongamos que necesitamos monitorizar, mediante una sesión de navegación, el correcto funcionamiento de una aplicación web de reserva de salas de reuniones.
 +
 
 +
Si estableciéramos una fecha y hora fija a la hora de rellenar los datos del formulario, es posible que el sistema cancelara la reserva porque en algún momento quede en el pasado; por ejemplo, podríamos estar intentando reservar una sala para la semana pasada.
 +
 
 +
También es posible que nos encontremos con un máximo de tiempo para poder efectuar esa reserva, y que el sistema nos obligue a reservar la sala dentro de un período de tiempo concreto, por ejemplo no superior al mes vigente.
 +
 
 +
Para evitar tener que editar la macro cada pocos días, y despreocuparnos del apartado de configuración, podemos usar las macros dinámicas, diciendo al sistema que reserve la sala siempre para el día siguiente al momento de realizar el test.
 +
 
 +
Para poder usar esta funcionalidad, los valores deberán tener un formato específico, logrando las siguientes sustituciones posibles:
 +
 
 +
@DATE_FORMAT (fecha/hora actual con formato definido por el usuario)
 +
@DATE_FORMAT_nh (horas)
 +
@DATE_FORMAT_nm (minutos)
 +
@DATE_FORMAT_nd (días)
 +
@DATE_FORMAT_ns (segundos)
 +
@DATE_FORMAT_nM (mes)
 +
@DATE_FORMAT_nY (años)
 +
 
 +
 
 +
Donde “n” puede ser un número sin signo (positivo) o negativo.
 +
 
 +
Y FORMAT sigue el standard de [http://search.cpan.org/~dexter/POSIX-strftime-GNU-0.02/lib/POSIX/strftime/GNU.pm strftime de perl]
 +
 
 +
 
 +
Ejemplos:
 +
 
 +
@DATE_%Y-%m-%d %H:%M:%S
 +
@DATE_%H:%M:%S_300s
 +
@DATE_%H:%M:%S_-1h
 +
 
 +
== Visualización de los datos ==
 +
 
 +
La información generada por WUX se visualizará en forma de módulos de la siguiente forma. Habilitar la vista en ''modo jerárquico'', en la lista de módulos, nos ayudará a visualizar la información de forma mucho más clara:
 +
 
 +
<br>
 +
[[File:WUX_modules.PNG|center|800px]]
 +
<br>
 +
 
 +
Dentro de esta jerarquía encontraemos los siguientes módulos:
 +
 
 +
* ''módulo''_Global_Status: Indicará el estado '''global''' de la navegación completa.
 +
* ''módulo''_Global_Time: Indicará el tiempo '''global''' empleado en la navegación completa.
 +
* ''módulo''_Global_Screenshot: Contiene una imagen con el resultado del error de navegación, '''solo se generará en caso de error'''
 +
* ''módulo''_Phase X: ''Nombre de fase''_Status: Indicará el estado de la navegación durante la fase X.
 +
* ''módulo''_Phase X: ''Nombre de fase''_Time: Indicará el tiempo empleado en la fase X.
 +
 
 +
Ejemplo: Vista de captura de error.
 +
 
 +
<br>
 +
[[File:Wux_screenshot.png|center|800px]]
 +
<br>
 +
 
 +
{{warning|Atención: Si ha actualizado desde versiones anteriores a Pandora FMS 7.0NG 712 debe realizar un pequeño cambio.}}
 +
 
 +
Para poder almacenar las capturas de pantalla generadas por WUX Server, deberá lanzar las siguientes operaciones en su esquema de base de datos:
 +
 
 +
alter table tagente_estado modify column datos mediumtext;
 +
alter table tagente_datos_string modify column datos mediumtext;
 +
 
 +
Si no realiza estas acciones las capturas podrían verse cortadas.
 +
 
 +
Accediendo a la sección ''WUX'' del agente podemos ver detalles adicionales de la transacción y sus fases:
 +
 
 +
<center>
 +
[[File:Wux_nueva_imagen.png]]
 +
</center>
 +
 
 +
Las estadísticas del sitio web se resumen en los siguientes conceptos:
 +
 
 +
* '''Stats_TT''': Tiempo total en obtener el sitio web.
 +
* '''Stats_TDNS''': Tiempo total en resolver la dirección IP del objetivo.
 +
* '''Stats_TTCP''': Tiempo empleado en conectar vía TCP.
 +
* '''Stats_TSSL''': Tiempo empleado en establecer comunicación SSL.
 +
* '''Stats_TST''' : Tiempo transcurrido hasta que inició la transferencia de datos.
 +
* '''Stats_TTC''' : Tiempo transfiriendo datos; agrupará todos los tiempos de transferencia de recursos.
 +
* '''Stats_TTR''' : Tiempo empleado en transferir el contenido de la página.
 +
* '''Stats_TTR_main''': Tiempo empleado en transferir el código HTML.
 +
* '''Stats_TTR_image''':  Tiempo empleado en transferir los recursos de tipo imagen (png|jpg|jpeg|bmp|tiff|gif|webp|svg).
 +
* '''Stats_TTR_css''': Tiempo empleado en transferir las hojas de estilo.
 +
* '''Stats_TTR_js''': Tiempo empleado en transferir los ficheros JavaScript.
 +
 
 +
== Asignar alertas a un módulo de análisis web ==
 +
 
 +
Las alertas asociadas a los módulos de análisis web siguen la misma dinámica de funcionamiento que todo el sistema de alertas en Pandora FMS.
  
=== Despliegue del sistema PDR (sólo Windows) ===
+
Por compatibilidad se recomienda asignar las plantillas de alertas sobre los sub-elementos autogenerados por el módulo de análisis web, como por ejemplo:
 +
 
 +
* El estado de la navegación global.
 +
* Alertas sobre umbrales de tiempos.
 +
* Alertas con plantilla de aviso puesta en "siempre" para los módulos captura de imagen de resultados.
 +
 
 +
== Nuevos widgets para Dashboards ==
 +
 
 +
Para poder representar la información de la navegación de usuario, se han agregado dos nuevos tipos de widget:
 +
 
 +
Widget de estado de las fases de navegación:
 +
<br>
 +
[[File:widget_wux_fases.PNG|center]]
 +
<br>
 +
 
 +
Widget de estadísticas del sitio web:
 +
<br>
 +
[[File:widget_wux_stats.PNG|center]]
 +
<br>
 +
 
 +
= Experiencia de usuario de escritorio (PDR) =
 +
 
 +
== Despliegue del sistema PDR (sólo Windows) ==
  
 
El sistema PDR únicamente funciona en sistemas Windows, y una vez en ejecución por el agente de Pandora FMS este 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.
 
El sistema PDR únicamente funciona en sistemas Windows, y una vez en ejecución por el agente de Pandora FMS este 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.
Line 422: Line 1,022:
  
 
  C:\PDR
 
  C:\PDR
C:\sondas
 
  
Y descomprimiremos el fichero "PDR.zip" proporcionado en el siguiente enlace: ''https://pandorafms.com/library/pdr-cmd-for-ux-monitoring/'' en ''C:\PDR''.
+
Y descomprimiremos el fichero "PDR.rar" proporcionado en el siguiente enlace: ''https://pandorafms.com/library/pdr-cmd-for-ux-monitoring/'' en ''C:\PDR''.
  
Para iniciar el grabador ejecutaremos el siguiente script:
+
== Grabar una sesión PDR ==
 +
 
 +
Para iniciar el grabador ejecutaremos el siguiente script:  
  
 
  C:\PDR\pdr
 
  C:\PDR\pdr
 
=== Grabar una sesión PDR ===
 
 
Para grabar una sesión con PDR necesitaremos:
 
* Instalar el sistema de automatización (descomprimir pdr.zip en un directorio de su elección).
 
* Iniciar el sistema de grabación (pdr.cmd).
 
  
 
<br>
 
<br>
[[File:ux17.JPG|center]]
+
[[File:scriptwux22332.png|center]]
 
<br>
 
<br>
  
Line 524: Line 1,119:
 
<br><br>
 
<br><br>
  
==== Grabar una sesión transaccional con Pandora UX PDR ====
+
=== Grabar una sesión transaccional con Pandora FMS UX PDR ===
  
 
No es necesario grabar una sesión específica; simplemente grabe las sesiones que necesite en scripts diferentes. Será Pandora FMS UX quien gestione la devolución de resultados para organizarla como una transacción compleja. En el siguiente punto veremos cómo hacer la llamada de la ejecución para que funcione correctamente.
 
No es necesario grabar una sesión específica; simplemente grabe las sesiones que necesite en scripts diferentes. Será Pandora FMS UX quien gestione la devolución de resultados para organizarla como una transacción compleja. En el siguiente punto veremos cómo hacer la llamada de la ejecución para que funcione correctamente.
Line 542: Line 1,137:
 
<br>
 
<br>
  
=== Ejecución de sesiones PDR ===
+
== Ejecución de sesiones PDR ==
  
==== Ejecución estándar ====
+
=== Ejecución estándar ===
  
 
Para lanzar sesiones pregrabadas de PDR, indicaremos 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.
 
Para lanzar sesiones pregrabadas de PDR, indicaremos 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.
Line 567: Line 1,162:
 
     <name><![CDATA[UX_Status_calculadora.sikuli]]></name>
 
     <name><![CDATA[UX_Status_calculadora.sikuli]]></name>
 
     <type>generic_proc</type>
 
     <type>generic_proc</type>
     <data><![CDATA[1]]></data>
+
     <nowiki><data><![CDATA[1]]></data></nowiki>
 
     <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuild ]]></description>
 
     <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuild ]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 575: Line 1,170:
 
     <name><![CDATA[UX_Time_calculadora.sikuli]]></name>
 
     <name><![CDATA[UX_Time_calculadora.sikuli]]></name>
 
     <type>generic_data</type>
 
     <type>generic_data</type>
     <data><![CDATA[20.204]]></data>
+
     <nowiki><data><![CDATA[20.204]]></data></nowiki>
 
     <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuilt ]]></description>
 
     <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuilt ]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 584: Line 1,179:
 
     <name><![CDATA[UX_Control_Snapshot_calculadora.sikuli]]></name>
 
     <name><![CDATA[UX_Control_Snapshot_calculadora.sikuli]]></name>
 
     <type>async_string</type>
 
     <type>async_string</type>
     <data><![CDATA[data:image/png;base64, IBCAIAAAAOCnfhAAAAAXNSR…/4x79e/7757f8H2C00s1C73yMAAAAASUVORK5CYII=]]></data>
+
     <nowiki><data><![CDATA[data:image/png;base64, IBCAIAAAAOCnfhAAAAAXNSR…/4x79e/7757f8H2C00s1C73yMAAAAASUVORK5CYII=]]></data></nowiki>
 
     <description><![CDATA[Control image rebuilt]]></description>
 
     <description><![CDATA[Control image rebuilt]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
Line 596: Line 1,191:
 
     <name><![CDATA[UX_Status_std.html]]></name>
 
     <name><![CDATA[UX_Status_std.html]]></name>
 
     <type>generic_proc</type>
 
     <type>generic_proc</type>
     <data><![CDATA[0]]></data>
+
     <nowiki><data><![CDATA[0]]></data>
    <description><![CDATA[Failed to execute verifyText]]></description>
+
</nowiki>    <description><![CDATA[Failed to execute verifyText]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
 
     <module_group>UX</module_group>
 
     <module_group>UX</module_group>
Line 604: Line 1,199:
 
     <name><![CDATA[UX_Time_std.html]]></name>
 
     <name><![CDATA[UX_Time_std.html]]></name>
 
     <type>generic_data</type>
 
     <type>generic_data</type>
     <data><![CDATA[15.463]]></data>
+
     <nowiki><data><![CDATA[15.463]]></data>
    <description><![CDATA[Failed to execute verifyText]]></description>
+
</nowiki>    <description><![CDATA[Failed to execute verifyText]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
 
     <module_group>UX</module_group>
 
     <module_group>UX</module_group>
Line 613: Line 1,208:
 
     <name><![CDATA[UX_Snapshot_std.html]]></name>
 
     <name><![CDATA[UX_Snapshot_std.html]]></name>
 
     <type>async_string</type>
 
     <type>async_string</type>
     <data><![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]></data>
+
     <nowiki><data><![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]></data>
    <description><![CDATA[Image (last error)]]></description>
+
</nowiki>    <description><![CDATA[Image (last error)]]></description>
 
     <tags>UX</tags>
 
     <tags>UX</tags>
 
     <module_group>UX</module_group>
 
     <module_group>UX</module_group>
Line 622: Line 1,217:
 
Si todo ha resultado correcto podemos 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):
 
Si todo ha resultado correcto podemos 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.cmd -args -r -script C:\PDR\calc.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"
+
  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.
 
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.
Line 642: Line 1,237:
 
  pandora_ux.64 -exe <exe del sistema de automatización> -args <argumentos del sistema> -script <ruta ficheros de prueba>
 
  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 ====
+
=== 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:
 
Si tenemos grabados diferentes procesos con PDR y hemos probado que funcionan al reproducirlos de forma continuada, haremos la ejecución del siguiente modo:
Line 711: Line 1,306:
 
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.
 
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.
  
= Monitorización de Experiencia Web de Usuario (WUX) =
 
 
== Introducción ==
 
 
Pandora FMS WUX Server es un componente interno del servidor Pandora FMS, que permite a los usuarios automatizar sus sesiones de navegación web.
 
 
Para poder funcionar, WUX Server deberá conectarse a un servidor PWRD (Pandora Web Robot Daemon).
 
 
PWRD es un servicio que ejecuta, paso a paso, acciones pre-grabadas por el usuario en un portal web.
 
 
Para lograr esto, PWRD utiliza por debajo la tecnología de automatización web de Selenium.
 
 
Será por tanto imprescindible, que el usuario indique a Pandora WUXServer las acciones que se deben realizar para navegar por su portal web.
 
 
Con estos datos, Pandora WUXServer generará un informe con los resultados de las ejecuciones, tiempos empleados, y capturas con los posibles errores encontrados.
 
 
Pandora WUX Server es capaz de dividir las sesiones de navegación en fases, lo que simplificará la vista y nos ayudará a depurar posibles cuellos de botella.
 
 
<br>
 
[[File:wux_simple.png|center]]
 
<br>
 
 
== Configuración ==
 
 
Para poder habilitar WUX Server en nuestro servidor Pandora FMS deberemos configurar el servicio <b>Pandora Web Robot (PWRD)</b>
 
 
=== Qué es Pandora Web Robot Daemon (PWRD) ===
 
 
Pandora FMS Web Robot Daemon es un servicio que provee las herramientas necesarias para automatizar las sesiones de navegación web, utilizando un archivo que contiene una lista de las acciones necesarias para navegar por el portal web del usuario.
 
 
Viene integrado con el servidor de Pandora FMS y lo podemos encontrar en la carpeta /usr/share/pandora_server/util/pwrd al instalar el servidor Enterprise (Linux) o en la librería de módulos (Windows).
 
 
Contiene:
 
 
* Binario del navegador Firefox versión 46.
 
* Perfil preconstruido para la ejecución de sesiones de navegación web.
 
* Servidor de automatización de sesiones (Selenium server).
 
 
 
 
=== Despliegue de PWRD en Linux===
 
 
El componente Selenium del demonio PWRD requiere Java para funcionar; necesitaremos instalarlo:
 
 
yum install java
 
 
Para que PWRD sea capaz de lanzar Firefox en nuestro servidor Linux, será necesario instalar xorg-x11-server-Xvfb, gtk2 y gtk3 para poder virtualizar un entorno gráfico:
 
 
yum install xorg-x11-server-Xvfb gtk2 gtk3
 
 
Si no está disponible en sus repositorios puede encontrar los ficheros rpm en los siguiente enlaces:
 
ftp://rpmfind.net/linux/centos/6.6/os/x86_64/Packages/xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm
 
 
ftp://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/gtk2-2.24.31-1.el7.x86_64.rpm
 
 
Para realizar la instalación de los paquetes rpm de forma manual:
 
 
yum install xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm
 
yum install gtk2-2.24.31-1.el7.x86_64.rpm
 
 
Una vez cumplidas las dependencias, procederemos a instalar el demonio PWRD; lo podemos encontrar en la carpeta /usr/share/pandora_server/util/pwrd/ al instalar el servidor Enterprise:
 
 
sudo /bin/bash /usr/share/pandora_server/util/pwrd/install_pwrd.sh --install [usuario] [directorio]
 
 
En la versión 730 y posteriores se ha introducido la posibilidad de realizar la instalación personalizada con un usuario y un directorio diferente de la instalación por defecto.
 
 
Una vez instalado, deberemos iniciarlo.
 
 
PWRD provee varios modos de funcionamiento:
 
 
* '''Standalone''': Modo estándar, iniciará una única instancia de PWRD. Cada una de estas instancias irá asociada a un servidor de Pandora FMS.
 
* '''HUB''': Modo concentrador. En este modo el servicio PWRD no evaluará las sesiones de navegación directamente, sino que deberán registrarse "nodos" para ejecutar las tareas. Es el modo clúster del servicio PWRD. Cada HUB irá asignado a un servidor de Pandora FMS.
 
 
 
==== PWRD en modo standalone ====
 
 
PWRD en modo standalone iniciará el demonio y lo dejará listo para ejecutar las acciones indicadas por el usuario a través de WUX Server.
 
 
<br>
 
[[File:wux_pwrd_standalone.png|center]]
 
<br>
 
 
 
# Iniciar
 
/etc/init.d/pwrd start
 
 
# ver el estado
 
/etc/init.d/pwrd status
 
 
# detener
 
/etc/init.d/pwrd stop
 
 
 
 
==== PWRD en modo "HUB"====
 
 
El modo concentrador (o HUB) iniciará el demonio como un balanceador de carga. En este modo de trabajo, el sistema irá balanceando la carga entre todos los nodos que se hayan registrado en él, asignando la ejecución de las sesiones de navegación a los nodos en función de su carga de trabajo.
 
 
Puede ver en todo momento el estado del HUB accediendo a la consola de administración del mismo:
 
 
http://hub:4444/grid/console
 
 
 
<br>
 
[[File:wux_pwrd_hub.png|center]]
 
<br>
 
 
 
# Iniciar
 
/etc/init.d/pwrd start-hub
 
 
# ver el estado
 
/etc/init.d/pwrd status-hub
 
 
# detener
 
/etc/init.d/pwrd stop-hub
 
 
 
=====Agregar nodos de PWRD a nuestro HUB=====
 
 
Para agregar un nuevo nodo PWRD necesitaremos:
 
 
* Un concentrador (PWRD en modo HUB).
 
* Los archivos de PWRD, en la misma o una máquina diferente.
 
* Conectividad TCP/4444 desde el equipo que aloja el nodo hacia el equipo que aloja el HUB.
 
 
En este modo de trabajo, el servicio procesará todas aquellas solicitudes encoladas <b>desde el concentrador (HUB)</b>, devolviendo a este los resultados de las ejecuciones. Será el HUB quien hable de manera exclusiva con el WUX Server, siendo transparente para este quién esté ejecutando las acciones del usuario.
 
 
# Iniciar y registrar en el HUB, sustituir "hub" por la IP del servidor PWRD HUB
 
/etc/init.d/pwrd start-node http://hub:4444/grid/register
 
 
# ver el estado
 
/etc/init.d/pwrd status-node
 
 
# detener
 
/etc/init.d/pwrd stop-node
 
 
==== Configuración del servidor de Pandora====
 
 
Independientemente del modo elegido, una vez iniciado podremos empezar a asignarle ejecuciones de nuestras sesiones de navegación, agregando los parámetros de configuración de WUX Server al fichero de configuración de nuestro servidor de Pandora FMS.
 
 
Suponiendo que hemos desplegado nuestro servidor PWRD en el mismo servidor en que corre nuestro servidor Pandora FMS, agregaríamos la siguiente configuración:
 
 
# agregar a /etc/pandora/pandora_server.conf
 
wuxserver 1
 
wux_host 127.0.0.1
 
wux_port 4444
 
 
=== Despliegue en Windows ===
 
 
Pasos a seguir para preparar un entorno de trabajo para Pandora FMS WUX en Windows.
 
 
<b>Nota</b>: Recomendamos encarecidamente Linux para alojar el servicio PWRD.
 
 
==== Despliegue de PWRD en sistemas Windows ====
 
 
Prerrequisitos:
 
* Descargar [https://pandorafms.com/library/pwr-server-for-windows PWRD server ]
 
 
* Instalar Java 1.8 en la máquina que dará el servicio.
 
* Instalar Firefox 43.0.1 (descargable en https://ftp.mozilla.org/pub/firefox/releases/43.0.1/).
 
* Preparar un perfil de Firefox que se utilizará para probar las sesiones automatizadas (opcional): http://toolsqa.com/selenium-webdriver/custom-firefox-profile/
 
* Crearemos el directorio C:\PWR
 
 
Para descargar el PWR_Server.zip, vaya al siguiente enlace: ''https://pandorafms.com/library/pwr-server-for-ux-monitoring/''
 
 
Haremos la siguiente distribución de ficheros:
 
* Descompresión del fichero PWR_Server.zip a C:\PWR\
 
* Exportar el perfil de Firefox a C:\PWR\profile
 
 
El uso de un perfil para realizar los chequeos no es obligatorio; no obstante, se recomienda su uso sobre todo en caso de utilizar proxy o querer emplear autocompletado de contraseñas.
 
Para crear un perfil de Firefox seguiremos los pasos de las siguientes capturas:
 
 
<br>
 
[[File:ux1.JPG|center]]
 
<br>
 
[[File:ux2.JPG|center]]
 
<br>
 
 
Elección del directorio destino:
 
 
<br>
 
[[File:ux3.JPG|center]]
 
<br>
 
 
Debemos iniciar Firefox con el nuevo perfil para personalizar opciones como el proxy, mostrado de popups, etc.:
 
 
<br>
 
[[File:ux4.JPG|center]]
 
<br>
 
 
A continuación instalaremos el servicio ejecutando el fichero BAT ''service_installer.bat'' proporcionado. E iniciaremos el servicio:
 
 
net start PWRSRV
 
 
Desde este momento ya tenemos el servidor de Selenium corriendo en nuestra máquina. No obstante, podemos ejecutarlo a mano (parando el servicio previamente) en caso de que queramos realizar tareas de ''debugging'', mediante el siguiente comando:
 
 
java -jar selenium-server-standalone-2.53.1.jar -firefoxProfileTemplate C:\selenium\firefox_profile -port 4444 -v
 
 
== Grabar una sesión PWR ==
 
 
Antes de monitorizar una experiencia de usuario debemos grabar las acciones que queramos que el sistema realice, para navegar por nuestro portal web.
 
 
Para ello tenemos disponible la utilidad "PWR recorder" en la [https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/ librería de módulos].
 
 
Ejecute el archivo descargado para iniciar el entorno de grabación.
 
Una vez iniciado el entorno, podrá acceder al grabador pinchando en el botón siguiente:
 
 
<br>
 
[[File:iniciar_grabador.png|center]]
 
<br>
 
 
 
Deberá aparecer una ventana como la que aparece en la imagen:
 
 
<br>
 
[[File:ux10.JPG|center]]
 
<br>
 
 
 
Desde este momento podremos navegar por el sitio web que queramos monitorizar y las diferentes acciones de cada paso que avancemos irán apareciendo en el grabador.
 
 
Para detener la grabación utilizaremos el siguiente botón, situado en la parte superior derecha del grabador:
 
 
<br>
 
[[File:ux11.JPG|center]]
 
<br>
 
 
Una vez completadas las acciones, podemos realizar comprobaciones sobre la página; por ejemplo, verificar la existencia de un texto determinado para asegurarnos de que la página cargada es la correcta. Para ello, haremos click derecho sobre una sección de texto en la ventana del navegador mientras continuamos grabando, y seleccionamos la opción ''verifyText'':
 
 
<br>
 
[[File:ux13.JPG|center]]
 
<br>
 
 
Aparecerá un nuevo paso en el grabador indicando la acción de comprobación de texto indicada:
 
 
<br>
 
[[File:ux14.JPG|center]]
 
<br>
 
 
Podemos reproducir la secuencia completa mediante el botón ''Play entire test suite'' y comprobar que finaliza correctamente:
 
 
<br>
 
[[File:ux15.JPG|center|800px]]
 
<br>
 
 
 
Una vez verificada la validez de la secuencia de navegación, la guardaremos (Archivo -> Save Test Case). Este será el archivo que carguemos cuando creemos un nuevo módulo de analisis web en nuestra consola de Pandora FMS.
 
 
 
=== Grabar una sesión transaccional para Pandora WUX ===
 
 
Pandora FMS WUX permite dividir la monitorización de la navegación de un sitio web en múltiples módulos, que representarán cada uno de los pasos realizados.
 
 
Para insertar un nuevo punto de control y generar los módulos de fase (hasta ese punto) haga clic derecho en el punto donde desea identificar el comienzo de fase.
 
 
<br>
 
[[File:pwrd_recorder_transaction.PNG|center]]
 
<br>
 
 
Como comentario pondremos el siguiente texto:
 
 
phase_start:nombre_de_fase
 
 
La fase englobará el tiempo y resultado de todos los comandos que se encuentren hasta el siguiente comentario:
 
 
phase_end:nombre_de_fase
 
 
Todos los comandos que se ejecuten entre una etiqueta phase_start y phase_end se englobarán dentro de esa fase.
 
 
<br>
 
[[File:pwrd_recorder_transaction2.PNG|center]]
 
<br>
 
 
== Crear un módulo de análisis web en Pandora FMS Console ==
 
 
Una vez tenemos nuestra sesión de navegación grabada, es hora de desplegarlo como módulo en la consola de Pandora FMS.
 
 
Para ello accederemos a '''cualquier agente asociado a un servidor con la funcionalidad WUX habilitada''' y crearemos un módulo de tipo "Análisis web":
 
 
[[File:Wux_module.PNG|center|400px]]
 
 
 
Una vez seleccionado "crear" deberemos rellenar todos los campos que nos presenta el formulario:
 
 
[[File:Wux_new_module_form2.PNG|center]]
 
 
* Nombre del módulo: Módulo WUX (Padre); todos los sub-módulos con los resultados de la monitorización serán dependientes de este nuevo módulo.
 
* Sitio web objetivo (target web site): Para la monitorización de estadísticas de rendimiento de sitio web.
 
* Lanzar pruebas de rendimiento (Run performance tests): Indica que queremos monitorizar no solo la experiencia de navegación, sino también las estadísticas de rendimiento del acceso al sitio web objetivo.
 
* Histórico de datos: Guardar o no la información histórica de los módulos que monitorizan esta experiencia de usuario.
 
* Sección ''textarea'': En este cuadro de texto deberemos copiar (o cargar) el contenido de los ficheros de la sesión de navegación que hemos grabado previamente.
 
 
 
==== Macros personalizadas ====
 
 
El funcionamiento de las macros personalizadas implica la substitución de determinadas cadenas de texto presentes en nuestro fichero de sesión de navegación, por ciertos valores personalizables.
 
 
En el caso de módulos de análisis web, se ha mejorado esta funcionalidad, permitiendo '''macros dinámicas''' que permiten que estos valores se traduzcan en '''fechas y horas''' variables.
 
 
¿Por qué esta funcionalidad?
 
 
Supongamos que necesitamos monitorizar, mediante una sesión de navegación, el correcto funcionamiento de una aplicación web de reserva de salas de reuniones.
 
 
Si establecieramos una fecha y hora fija a la hora de rellenar los datos del formulario, es posible que el sistema cancele la reserva porque en algún momento quede en el pasado, por ejemplo podríamos estar intentando reservar una sala para la semana pasada.
 
 
También es posible que nos encontremos con un máximo de tiempo para poder efecturar esa reserva, y que el sistema nos obligue a reservar la sala dentro de un período de tiempo concreto, por ejemplo, no superior al mes vigente.
 
 
Para evitar tener que editar la macro cada pocos días, y despreocuparnos del apartado de configuración, podemos usar las macros dinámicas, diciendo al sistema que reserve la sala siempre para el día siguiente al momento de realizar el test.
 
 
 
Para poder usar esta funcionalidad, los valores deberán  tener un formato específico, logrando las siguientes sustituciones posibles:
 
 
@DATE_FORMAT (fecha/hora actual con formato definido por el usuario)
 
@DATE_FORMAT_nh (horas)
 
@DATE_FORMAT_nm (minutos)
 
@DATE_FORMAT_nd (días)
 
@DATE_FORMAT_ns (segundos)
 
@DATE_FORMAT_nM (mes)
 
@DATE_FORMAT_nY (años)
 
 
 
Donde “n” puede ser un numero sin signo (positivo) o negativo.
 
 
Y FORMAT sigue el standard de [http://search.cpan.org/~dexter/POSIX-strftime-GNU-0.02/lib/POSIX/strftime/GNU.pm strftime de perl]
 
 
 
Ejemplos:
 
 
@DATE_%Y-%m-%d %H:%M:%S
 
@DATE_%H:%M:%S_300s
 
@DATE_%H:%M:%S_-1h
 
 
== Carga de certificados al perfil de Firefox ==
 
 
Es posible que algunos de los chequeos configurados se ejecuten contra páginas web que usen certificados autofirmados o firmados por una CA no incluida en las aceptadas por defecto en Firefox, por lo que en esos casos será necesario cargar el certificado en cuestión en el perfil de Firefox que se esté usando.
 
 
Para hacer esto, lo más sencillo es iniciar el navegador en un entorno gráfico, acceder a la URL y agregar el certificado SSL. A continuación explicaremos como hacerlo tanto en Windows como en Linux:
 
 
=== Con PWRD desplegado en sistemas Windows ===
 
 
En este caso, ya que contaremos con un entorno gráfico, solo tendremos que iniciar el navegador Firefox con el perfil que estemos usando para los chequeos:
 
 
[[File:Profile_01.png|center]]
 
 
[[File:Profile_02.png|center]]
 
 
Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:
 
 
[[File:Profile_03.png|center]]
 
 
[[File:Profile_04.png|center]]
 
 
Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a la opciones de Firefox, a la pestaña de "Privacidad & Seguridad", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":
 
 
[[File:Profile_05.png|center]]
 
 
[[File:Profile_06.png|center]]
 
 
=== Con PWRD desplegado en sistemas Linux ===
 
 
Por lo general, cuando se instala un servidor Linux, no se le incluye un entorno de escritorio gráfico, por lo que para poder seguir los mismos pasos que en el caso anterior tenemos que hacer una redirección de las X gráficas a un equipo donde sí tengamos un entorno de escritorio gráfico. Esto se hace de forma distinta si redirigimos las X a un escritorio gráfico en Linux o Windows.
 
 
==== Redirigiendo X11 a un escritorio en Linux ====
 
 
Hacer esto es muy sencillo, ya que bastará con establecer una conexión SSH al servidor PWRD con el parámetro "-X":
 
 
ssh -X [email protected]_ip_address
 
 
Hecho esto, si lanzamos el navegador Firefox, podremos ver como se nos muestra en nuestro escritorio:
 
 
firefox -p
 
 
En una instalación por defecto solo veremos el perfil "default", por lo que sería recomendable hacer como en la instalación en Windows y crear un nuevo perfil el cual utilizar:
 
 
[[File:Profile_07.png|center]]
 
 
[[File:Profile_08.png|center]]
 
 
[[File:Profile_09.png|center]]
 
 
En caso de guardar el perfil en una ruta distinta a '''/opt/firefox_profile''', será necesario editar el script de arrance del PWRD '''/etc/init.d/pwrd''' para indicarle la ruta al nuevo perfil:
 
 
PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"
 
 
Con el perfil creado, se puede iniciar el navegador:
 
 
[[File:Profile_10.png|center]]
 
 
Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:
 
 
[[File:Profile_11.png|center]]
 
 
[[File:Profile_12.png|center]]
 
 
Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a la opciones de Firefox, a la pestaña de "Avanzado > Certificados", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":
 
 
[[File:Profile_13.png|center]]
 
 
[[File:Profile_14.png|center]]
 
 
==== Redirigiendo X11 a un escritorio en Windows ====
 
 
En el caso de Windows, primero tendremos que instalar un servidor de X para poder hacer la redirección, como por ejemplo '''Xming'''. Una vez instalado e iniciado, podremos hacer la redirección de las X.
 
 
Usando el cliente SSH Putty, tendremos que ir a al apartado "Conection > SSH > X11" antes de hacer la conexión, y asegurarnos de que marcamos la opción "Enable X11 forwarding" así como de rellenar el campo "X display location" como "localhost:0":
 
 
[[File:Profile_15.png|center]]
 
 
Después volvemos al apartado "Session" y establecemos la conexión:
 
 
[[File:Profile_16.png|center]]
 
 
Una vez establecida la conexión, si lanzamos el navegador Firefox en el servidor PWRD, podremos visualizarlo en el escritorio de Windows.
 
 
firefox -p
 
 
En una instalación por defecto solo veremos el perfil "default", por lo que sería recomendable hacer como en la instalación en Windows y crear un nuevo perfil el cual utilizar:
 
 
[[File:Profile_17.png|center]]
 
 
[[File:Profile_18.png|center]]
 
 
[[File:Profile_19.png|center]]
 
 
En caso de guardar el perfil en una ruta distinta a '''/opt/firefox_profile''', será necesario editar el script de arrance del PWRD '''/etc/init.d/pwrd''' para indicarle la ruta al nuevo perfil:
 
 
PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"
 
 
Con el perfil creado, se puede iniciar el navegador:
 
 
[[File:Profile_20.png|center]]
 
 
Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:
 
 
[[File:Profile_21.png|center]]
 
 
[[File:Profile_22.png|center]]
 
 
Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a la opciones de Firefox, a la pestaña de "Avanzado > Certificados", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":
 
 
[[File:Profile_23.png|center]]
 
 
[[File:Profile_24.png|center]]
 
 
 
 
 
== Visualización de los datos ==
 
 
La información generada por WUX se visualizará en forma de módulos de la siguiente forma. Habilitar la vista en ''modo jerárquico'', en la lista de módulos, nos ayudará a visualizar la información de forma mucho más clara:
 
 
<br>
 
[[File:WUX_modules.PNG|center|800px]]
 
<br>
 
 
 
Dentro de esta jerarquía encontraemos los siguientes módulos:
 
 
* ''módulo''_Global_Status: Indicará el estado '''global''' de la navegación completa.
 
* ''módulo''_Global_Time: Indicará el tiempo '''global''' empleado en la navegación completa.
 
* ''módulo''_Global_Screenshot: Contiene una imagen con el resultado del error de navegación, '''solo se generará en caso de error'''
 
* ''módulo''_Phase X: ''Nombre de fase''_Status: Indicará el estado de la navegación durante la fase X
 
* ''módulo''_Phase X: ''Nombre de fase''_Time: Indicará el tiempo empleado en la fase X
 
 
 
Ejemplo: Vista de captura de error.
 
 
<br>
 
[[File:Wux_screenshot.png|center|800px]]
 
<br>
 
 
 
{{warning|Atención: Si ha actualizado desde versiones anteriores a Pandora FMS 7.0NG 712 debe realizar un pequeño cambio.}}
 
 
Para poder almacenar las capturas de pantalla generadas por WUXServer, deberá lanzar las siguientes operaciones en su esquema de base de datos:
 
 
alter table tagente_estado modify column datos mediumtext;
 
alter table tagente_datos_string modify column datos mediumtext;
 
 
 
Si no realiza estas acciones las capturas podrían verse cortadas.
 
 
 
Accediendo a la sección ''WUX'' del agente podemos ver detalles adicionales de la transacción y sus fases:
 
 
<center>
 
[[File:Wux_nueva_imagen.png]]
 
</center>
 
 
 
Las estadísticas del sitio web se resumen en los siguientes conceptos:
 
 
* '''Stats_TT''': Tiempo total en obtener el sitio web.
 
* '''Stats_TDNS''': Tiempo total en resolver la dirección IP del objetivo.
 
* '''Stats_TTCP''': Tiempo empleado en conectar vía TCP.
 
* '''Stats_TSSL''': Tiempo empleado en establecer comunicación SSL.
 
* '''Stats_TST''' : Tiempo transcurrido hasta que inició la transferencia de datos.
 
* '''Stats_TTC''' : Tiempo transfiriendo datos, agrupará todos los tiempos de transferencia de recursos.
 
* '''Stats_TTR''' : Tiempo empleado en transferir el contenido de la página.
 
* '''Stats_TTR_main''': Tiempo empleado en transferir el código HTML.
 
* '''Stats_TTR_image''':  Tiempo empleado en transferir los recursos de tipo imagen (png|jpg|jpeg|bmp|tiff|gif|webp|svg).
 
* '''Stats_TTR_css''': Tiempo empleado en transferir las hojas de estilo.
 
* '''Stats_TTR_js''': Tiempo empleado en transferir los ficheros JavaScript.
 
 
== Asignar alertas a un módulo de análisis web ==
 
 
Las alertas asociadas a los módulos de análisis Web siguen la misma dinámica de funcionamiento que todo el sistema de alertas en Pandora FMS.
 
  
Por compatibilidad, se recomienda asignar las plantillas de alertas sobre los sub-elementos autogenerados por el módulo de análisis web, como por ejemplo:
+
[[Pandora:Documentation|Volver a Indice de Documentacion Pandora FMS]]
 
 
* El estado de la navegación global
 
* Alertas sobre umbrales de tiempos
 
* Alertas con plantilla de aviso puesta en "siempre" para los módulos captura de imagen de resultados
 
 
 
 
 
 
 
== Nuevos widgets para Dashboards ==
 
 
 
Para poder representar la información de la navegación de usuario, se han agregado dos nuevos tipos de widget:
 
 
 
 
 
Widget de estado de las fases de navegación
 
<br>
 
[[File:widget_wux_fases.PNG|center]]
 
<br>
 
 
 
 
 
Widget de estadísticas del sitio web
 
<br>
 
[[File:widget_wux_stats.PNG|center]]
 
<br>
 

Latest revision as of 15:41, 4 November 2020

Volver a Indice de Documentacion Pandora FMS


Contents

1 Introducción

La monitorización de experiencia de usuario consiste en realizar grabaciones de tareas automatizadas tanto de navegación web (PWR/WUX) como de interacción con el escritorio y las aplicaciones del sistema Windows (PDR). Estas grabaciones pueden consistir desde un clic de un ratón sobre un navegador, escribir un texto o realizar una búsqueda en navegación web, hasta abrir una aplicación en el escritorio. Esto nos permitirá realizar las funciones grabadas de manera automática y se ejecutarán para obtener resultados, como puede ser el tiempo transcurrido en realizar las tareas. Para ello, contamos con la monitorización de UX automatizada y la monitorización de experiencia web de usuario (WUX).

A partir de la versión 7.0NG.728 de Pandora FMS se han fusionado las monitorizaciones UX y WUX dentro de la consola de Pandora FMS, disponiendo de ambas funcionalidades en una sola pantalla.

Wux ux unifcado.png

A continuación veremos las diferencias entre los sistemas WUX y UX y la descripción de ambas funcionalidades con sus diferentes posibilidades.

2 Diferencias entre monitorización UX y WUX

Ambos sistemas de monitorización sirven para la ejecución de tareas automatizadas de navegación web mediante el sistema Pandora Web Robot Daemon (PWRD).

El sistema UX realiza estas monitorizaciones mediante el agente software instalado en una máquina, mientras que la monitorización WUX se basa en un servidor integrado dentro de Pandora FMS.

Pandora Web Robot Daemon (PWRD) es un servicio que provee las herramientas necesarias para automatizar las sesiones de navegación web. Para ello utiliza un archivo que contiene una lista de las acciones necesarias para navegar por el portal web del usuario.

Adicionalmente, la monitorización UX permite la ejecución de tareas automatizadas que interactúan con el escritorio y las aplicaciones del sistema Windows. Este tipo de tareas no se pueden realizar con WUX.

Pandora FMS UX es un sistema que ejecuta tareas automatizadas, entregando a Pandora FMS un informe con los resultados de las ejecuciones, tiempos empleados y capturas con los posibles errores encontrados.

La tecnología de Pandora FMS PWR para UX permite la navegación por sitios web, simulando las acciones de un usuario. Puede comprobar contenidos, textos, etc. Es la elección perfecta para monitorizar sitios y aplicaciones web no basadas en flash. Su ventaja: más rápido, con la posibilidad de ejecución en segundo plano.

Si dispone de un sistema de automatización de tareas, Pandora FMS UX también permite ejecutar los scripts que ya tenga y monitorizar su ejecución.

Es importante concretar el uso de este tipo de monitorización. Ambos métodos se basan en la ejecución de las monitorizaciones mediante plugin en los agentes software instalados en las máquinas correspondientes.


Info.png

Para la ejecución de transacciones web utilizamos Selenium Engine.

 



3 Experiencia de Usuario Web (WUX) con Selenium 3


Para el despliegue de Selenium en los servidores WUX se utilizará un stack basado en contenedores para un rápido despliegue y un fácil escalado.

3.1 Configuraciones previas

Será necesario tener instalado Docker y Docker Compose y recomendamos el uso de CentOS como sistema operativo base.

Para esta instalación recomendamos seguir la documentación de Docker en: https://docs.docker.com/engine/install/

Se utilizarán las imágenes oficiales de Selenium para la instalación y despliegue del stack. Podremos encontrarlas en: https://hub.docker.com/u/selenium

En el repositorio de Selenium están disponibles distintas imágenes con navegadores. Para Pandora FMS recomendamos contenedores de Firefox y Chrome.

3.2 Despliegue del stack de Selenium

Para desplegar el stack de Selenium será necesario crear primero un fichero YAML con la configuración necesaria:

# To execute this docker-compose yml file use `docker-compose -f <file_name> up`
# Add the `-d` flag at the end for detached execution
version: "3"
services:
  selenium-hub:
    image: selenium/hub:3.141.59-zinc
    container_name: selenium-hub
    ports:
      - "4444:4444"
    environment:
      - GRID_BROWSER_TIMEOUT=60000
      - GRID_TIMEOUT=60000
      - GRID_MAX_SESSION=50
      - GRID_CLEAN_UP_CYCLE=60000
      - GRID_UNREGISTER_IF_STILL_DOWN_AFTER=180000
      - GRID_NEW_SESSION_WAIT_TIMEOUT=60000
  chrome:
    image: selenium/node-chrome:3.141.59-zinc
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
  firefox:
    image: selenium/node-firefox:3.141.59-zinc
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444

Se podrá guardar como docker-compose.yml para hacer más fácil su identificación.

Para levantar el contenedor con la configuración que hemos definido, bastará con ejecutar el siguiente comando:

docker-compose -f <compose-file> up -d

Si se necesita comprobar los servicios corriendo en el contenedor usaremos el siguiente comando:

docker-compose -f <compose-file> ps

Para ver el estado y los logs de los servicios de Selenium usaremos el siguiente comando:

docker-compose -f <compose-file> logs

Una vez realizadas las comprobaciones pertinentes, para verificar que el grid está funcionando correctamente y los workers se han registrado tal y como hemos definido en el fichero de configuración será necesario acceder a la siguiente URL:

http://<ip_selenium_server>:4444/grid/console


Newux4.png

Si se necesita escalar el número de workers, bastará con ejecutar el siguiente comando:

docker-compose -f <compose-file> scale chrome=X firefox=Y

3.2.1 Cargar las imágenes de pwrd desde la ISO

Si no se dispone de acceso a Internet para poder conectar con los servidores de Docker Hub y descargar las imágenes, en la ISO de Pandora FMS se encontrará todo lo necesario.

Los pasos a seguir serán los siguientes:

  • Montar la ISO de pandora_enterprise en /mnt
  • Copiar el archivo pwrd.tar.gz (600M => 1,7G) a /root
  • Descomprimir.
  • Importar las imágenes.
$ mount /dev/cdrom0 /mnt
$ cp /mnt/Packages/pwrd.tar.gz /root/
$ cd /root
$ tar xvzf pwrd.tar.gz
$ docker load < chrome.node*.tar
$ docker load < firefox.node.*.tar
$ docker load < hub.3.*.tar

Para comprobar que las imágenes se han cargado correctamente, se lanzará el siguiente comando:

docker images

3.3 Infraestructura del servicio Selenium

Selenium funciona como un hub en el que se levanta un contenedor que actúa como grid o cuadrícula donde desplegar los contenedores worker que se necesiten.

Newux9.png

3.4 Configuración de Pandora FMS

Para la utilización del modo centralizado (WUX) será necesario aplicar la siguiente configuración al servidor de Pandora FMS.

Independientemente del modo elegido, una vez iniciado podremos empezar a asignarle ejecuciones de nuestras sesiones de navegación, agregando los parámetros de configuración de WUX Server al fichero de configuración de nuestro servidor de Pandora FMS.

Suponiendo que hemos desplegado nuestro servidor PWRD en el mismo servidor en que corre nuestro servidor Pandora FMS, agregaríamos la siguiente configuración:

# agregar a /etc/pandora/pandora_server.conf
wuxserver 1
wux_host 127.0.0.1
wux_port 4444

El fichero de configuración del servidor cuenta con un nuevo token para limpiar las sesiones que puedan estar encoladas cada vez que se inicia el servidor de Pandora FMS.

clean_wux_sessions 1 (default)

3.5 Anexo: Añadir workers para Internet Explorer y Microsoft Edge

En caso de ser necesario lanzar transacciones web contra navegadores de Microsoft, será necesario configurar una máquina (física o virtual) con la versión de Windows deseada y configurar el driver siguiendo la documentación oficial.

Documentación para la instalación del driver de Internet Explorer:

github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

Info.png

Recomendamos el uso del driver 3.141 en su versión de 32bit para evitar los problemas de rendimiento de la versión de 64bit.

 


Documentación para la instalación del driver de Microsoft Edge:

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Para la ejecución de Selenium, será necesario tener instalado Java en el dispositivo Windows.

Para comprobar si disponemos de Java, se podrá ejecutar el comando:

java -version

Deberíamos obtener una salida como la siguiente:

Newux1.png

Será necesario también el fichero JAR de Selenium para ejecutar el servidor localmente y registrarlo en nuestro grid.

Se puede obtener en:

https://www.selenium.dev/downloads/

Newux2.png

Para levantar el servidor Microsoft Edge se debe ejecutar en una terminal en el directorio donde tengamos el fichero JAR lo siguiente:

java -jar selenium-server-standalone-<VER>.jar -port 5555 -role node -hub 
http://<ip_selenium_server>:4444/grid/register -browser "browserName=MicrosoftEdge, 
platform=WINDOWS, maxInstances=1"

Para levantar el servidor Internet Explorer el comando es similar, pero se debe especificar la ruta del driver que hemos descargado:

java -Dwebdriver.ie.driver=<PATH>IEDriverServer.exe -jar selenium-server- 
standalone<VER>.jar -port 5555 -role node -hub 
http://ip_selenium_server:4444/grid/register -browser "browserName=internet 
explorer,platform=WINDOWS,maxInstances=1"

Newux3.png

Template warning.png

Se debe configurar el Firewall de Windows para permitir el tráfico en los puertos especificados en el comando de ejecución. En el caso de los ejemplos 5555 y 4444.

 


3.6 Grabación

Template warning.png

Deberá tenerse en cuenta que las grabaciones realizadas en Selenium 2 pueden no funcionar correctamente.

 


Para la versión 3 de Selenium serán compatibles tanto las grabaciones antiguas como las nuevas, aunque no se garantiza la compatibilidad total con versiones antiguas.

Para poder grabar una nueva sesión, se deberá instalar la extensión Selenium IDE en el navegador que se desee.

El icono siguiente será el que permita iniciar el entorno de grabación una vez instalada la extensión.

Newux10.png

Se abrirá un menú que nos permitirá iniciar nuevos proyectos de grabación.

Newux5.png

Una vez realizada la grabación se tendrá como resultado algo como lo que sigue:

Newux6.png

Aparte de la funcionalidad provista por Selenium, Pandora FMS dispone de comandos personalizados para extraer información del objetivo a monitorizar.

3.6.1 Comandos

La lista de comandos compatibles para usarlos en Pandora FMS se puede encontrar en el siguiente enlace .



3.6.2 Recomendaciones y sugerencias al realizar las grabaciones

A continuación detallamos una serie de recomendaciones y consejos a la hora tanto de realizar la grabación de las transacciones con Selenium IDE como para integrar con Pandora FMS los comandos más complejos:

  • Dividir la transacción en fases siempre que sea posible. De esta forma los módulos que se crearán tanto de estado como tiempos y screenshots estarán segmentados y será más sencillo localizar dónde ha fallado la transacción.
  • Utilizar el comando de selenium "set speed" y "wait for" para evitar falsos negativos. Al ejecutar una transacción, los comandos de selenium no tienen ningún delay por defecto desde que termina uno hasta que se ejecuta el siguiente, y algunos tampoco tienen tiempo de timeout. Esto hace que la transacción se ejecute muy rápidamente en el menor tiempo posible, pero al hacerlo tan rápidamente, si la web es algo lenta o tarda un segundo de más en cargar es posible que el chequeo termine en fallo. Por ejemplo, tras ejecutar un comando "click" y cambiar de página, si después tenemos un comando que interactúe con un elemento a la nueva página y la carga de esta se retrasa un segundo, no encontrará el elemento en la nueva página y el chequeo acabará en fallo.
    Para evitar estas situaciones, existe el comando "set speed", que añade un delay de la cantidad de milisegundos que le indiquemos en el Target entre cada comando. Recomendamos establecerlo al inicio de la transacción.
    También existen para los casos en los que sepamos que la carga de una página o aparición de un elemento se puedan demorar unos segundos, los comandos "wait for element present", "wait for visible" y "wait for text" en los que podemos establecer el tiempo en milisegundos que esperará para que el elemento aparezca en la página antes de marcar la transacción como fallo.
    Es importante destacar que el uso de estos comandos, si bien aumentan de sobremanera la fiabilidad del chequeo, también incrementarán el tiempo que se tarda en ejecutar la transacción.
  • Realizar comprobaciones de los elementos. Para esto se usarán comandos como "assert" y "verify", en sus distintas vertientes. Acabar una transacción con un click, por ejemplo, no nos garantiza que la nueva página que deba abrir el elemento en el que se hace click se abra, solo que es posible hacer click en el elemento. Si después del click introducimos un "verify text" a un texto que sepamos que solo se va a cargar después de realizar el click, sí sería una forma de comprobar que la página a la que nos manda el click está disponible.
  • Utilizar "store window handle" en transacciones en los que se vaya a cambiar de ventanas. El cambio de ventana (con un "select window") puede dar fallo si no se ha almacenado previamente un identificador a la ventana inicial.
  • Utilizar xpath cuando falle el Target por identificador de CSS o cuando queramos buscar contenido en la página. Por defecto, el grabador de Selenium IDE introduce en el Target del elemento el localizador del CSS, pero también graba el localizador por xpath, es posible ver todos los localizadores que guarda si pulsamos en el box del Target en el grabador:
    Recomendaciones ux1.png

    Además, utilizando rutas por xpath, es posible buscar textos dentro de las etiquetas de las páginas para realizar grabaciones mucho más dinámicas. En la captura anterior vemos que es posible usar un xpath que busque el texto "Innovadores de la monitorización" en todas las etiquetas span de la página, no en un locator en concreto.
  • Uso correcto del comando "execute script". El comando "execute script" ejecuta un fragmento de código de JavaScript en la ventana en la que está ubicado en la transacción. Recomendamos leer esta guía para conocer su uso y las diferentes opciones que ofrece: https://ui.vision/rpa/docs/selenium-ide/executescript
    No obstante, el uso de las variables almacenadas previamente (por un comando "store text" por ejemplo) debe ir entre comillas dobles para que el webdriver de Pandora FMS las interprete correctamente. Aquí hay un ejemplo de una variable almacenada con "store text" y su posterior uso en "execute script" de forma que el servidor de Pandora FMS la interpreta correctamente. Nótese que este uso de la variable entre comillas fallará al ejecutar el script en el grabador de Selenium IDE:
Recomendaciones ux2.png

4 Experiencia de Usuario Web (WUX) con Selenium 2

4.1 Configuraciones previas

4.1.1 Selenium

4.1.1.1 Despliegue con Pandora Web Robot Daemon (PWRD)

Pandora FMS Web Robot Daemon es un servicio que provee las herramientas necesarias para automatizar las sesiones de navegación web, utilizando un archivo que contiene una lista de las acciones necesarias para navegar por el portal web del usuario.

Viene integrado con el servidor de Pandora FMS y lo podemos encontrar en la carpeta /usr/share/pandora_server/util/pwrd al instalar el servidor Enterprise (Linux) o en la librería de módulos (Windows).

Para descargarlo vaya al siguiente enlace: https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/

Contiene:

  • Binario del navegador Firefox versión 47.
  • Perfil preconstruido para la ejecución de sesiones de navegación web.
  • Servidor de automatización de sesiones (Selenium server).

4.1.1.2 Despliegue del servidor Selenium en sistemas Windows

Prerrequisitos:

C:\PWR

Para descargar el PWR_Server.zip, vaya al siguiente enlace: https://pandorafms.com/library/pwr-server-for-ux-monitoring/

Haremos la siguiente distribución de ficheros:

  • Descompresión del fichero PWR_Server.zip a C:\PWR\
  • Exportar el perfil de Firefox a C:\PWR\profile

El uso de un perfil para realizar los chequeos no es obligatorio; no obstante, se recomienda su uso sobre todo en caso de utilizar proxy o querer emplear autocompletado de contraseñas. Para crear un perfil de Firefox seguiremos los pasos de las siguientes capturas:


Ux1.JPG


Ux2.JPG


Elección del directorio destino:


Ux3.JPG


Debemos iniciar Firefox con el nuevo perfil para personalizar opciones como el proxy, mostrado de popups, etc:


Ux4.JPG


A continuación instalaremos el servicio ejecutando el fichero BAT service_installer.bat proporcionado. Para un correcto funcionamiento del service_installer.bat tendremos que modificar el contenido, poniendo las rutas que existen en el fichero como las tengamos instaladas en nuestra máquina. Por ejemplo, en el caso de Java, podrá servir únicamente como Java si tenemos correctamente configurado el PATH del mismo; si no, tendremos que darle todo el PATH dentro del fichero. Finalmente, iniciaremos el servicio:

net start PWRSRV

Desde este momento ya tenemos el servidor de Selenium corriendo en nuestra máquina. No obstante, podemos ejecutarlo a mano (parando el servicio previamente) en caso de que queramos realizar tareas de debugging, mediante el siguiente comando:

java -jar C:\PWR\server\selenium-server-standalone-2.53.0.jar -firefoxProfileTemplate C:\PWR\profile -port 4444 -v

4.1.1.3 Despliegue del servidor Selenium en sistemas Linux

Prerrequisitos:

El componente Selenium del demonio PWRD requiere Java para funcionar; necesitaremos instalarlo:

yum install java 

Para que PWRD sea capaz de lanzar Firefox en nuestro servidor Linux, será necesario instalar xorg-x11-server-Xvfb, gtk2 y gtk3 para poder virtualizar un entorno gráfico:

yum install xorg-x11-server-Xvfb gtk2 gtk3

Si no está disponible en sus repositorios puede encontrar los ficheros rpm en los siguiente enlaces: ftp://rpmfind.net/linux/centos/6.6/os/x86_64/Packages/xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm

ftp://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/gtk2-2.24.31-1.el7.x86_64.rpm

Para realizar la instalación de los paquetes rpm de forma manual:

yum install xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm
yum install gtk2-2.24.31-1.el7.x86_64.rpm

Una vez instalados los prerrequisitos continuamos con la instalación del install_pwrd.sh. Dicho instalador se encuentra por defecto en la carpeta /usr/share/pandora_server/util/pwrd/install_pwrd.sh y se ejecuta de la siguiente manera:

cd /usr/share/pandora_server/util/pwrd/
./install_pwrd.sh --install

Una vez instalado tendremos que iniciar el servicio:

/etc/init.d/pwrd start

Podemos utilizar el siguiente script para iniciar el servidor Selenium:

#!/bin/sh
# Monitoring selenium process
if [[ "`ps aux |grep selenium |grep -v grep |grep -v selenium.sh |wc -l `" != "0" ]]; then
   exit
else
   if [[ "`ps aux |grep Xvfb |grep -v grep | wc -l `" != "0" ]]; then
      Xvfb :99 -ac &
      export DISPLAY=:99
   fi
   export DISPLAY=:99
   java -jar /usr/share/pandora_server/util/pwdr/selenium-server-standalone-2.53.1.jar &
fi

O bien manualmente con los siguientes comandos:

$ Xvfb :99 -ac &
-> Pulsar Enter para continuar
$ export DISPLAY=:99
$ java -jar  /usr/share/pandora_server/util/pwdr/selenium-server-standalone-2.53.1.jar -port 4444 &


En la versión 730 y posteriores se ha introducido la posibilidad de realizar la instalación personalizada con un usuario y un directorio diferente de la instalación por defecto.

4.1.1.3.1 Modos de funcionamiento de PWRD

PWRD provee varios modos de funcionamiento:

  • Standalone: Modo estándar, iniciará una única instancia de PWRD. Cada una de estas instancias irá asociada a un servidor de Pandora FMS.
  • HUB: Modo concentrador. En este modo el servicio PWRD no evaluará las sesiones de navegación directamente, sino que deberán registrarse "nodos" para ejecutar las tareas. Es el modo clúster del servicio PWRD. Cada HUB irá asignado a un servidor de Pandora FMS.
4.1.1.3.1.1 PWRD en modo standalone

PWRD en modo standalone iniciará el demonio y lo dejará listo para ejecutar las acciones indicadas por el usuario a través de WUX Server.


Wux pwrd standalone.png



# Iniciar
/etc/init.d/pwrd start
# ver el estado
/etc/init.d/pwrd status
# detener
/etc/init.d/pwrd stop


4.1.1.3.1.2 PWRD en modo "HUB"

El modo concentrador (o HUB) iniciará el demonio como un balanceador de carga. En este modo de trabajo, el sistema irá balanceando la carga entre todos los nodos que se hayan registrado en él, asignando la ejecución de las sesiones de navegación a los nodos en función de su carga de trabajo.

Puede ver en todo momento el estado del HUB accediendo a la consola de administración del mismo:

http://hub:4444/grid/console



Wux pwrd hub.png



# Iniciar
/etc/init.d/pwrd start-hub
# ver el estado
/etc/init.d/pwrd status-hub
# detener
/etc/init.d/pwrd stop-hub


4.1.1.3.1.3 Agregar nodos de PWRD a nuestro HUB

Para agregar un nuevo nodo PWRD necesitaremos:

  • Un concentrador (PWRD en modo HUB).
  • Los archivos de PWRD, en la misma o una máquina diferente.
  • Conectividad TCP/4444 desde el equipo que aloja el nodo hacia el equipo que aloja el HUB.

En este modo de trabajo, el servicio procesará todas aquellas solicitudes encoladas desde el concentrador (HUB), devolviendo a este los resultados de las ejecuciones. Será el HUB quien hable de manera exclusiva con el WUX Server, siendo transparente para este quién esté ejecutando las acciones del usuario.

# Iniciar y registrar en el HUB, sustituir "hub" por la IP del servidor PWRD HUB
/etc/init.d/pwrd start-node http://hub:4444/grid/register
# ver el estado
/etc/init.d/pwrd status-node
# detener
/etc/init.d/pwrd stop-node

4.1.1.4 Configuración del servidor de Pandora

Para la utilización del modo centralizado (WUX) será necesario aplicar la siguiente configuración al servidor de Pandora FMS.

Independientemente del modo elegido, una vez iniciado podremos empezar a asignarle ejecuciones de nuestras sesiones de navegación, agregando los parámetros de configuración de WUX Server al fichero de configuración de nuestro servidor de Pandora FMS.

Suponiendo que hemos desplegado nuestro servidor PWRD en el mismo servidor en que corre nuestro servidor Pandora FMS, agregaríamos la siguiente configuración:

# agregar a /etc/pandora/pandora_server.conf
wuxserver 1
wux_host 127.0.0.1
wux_port 4444


4.1.1.5 Carga de certificados para Firefox

Es posible que algunos de los chequeos configurados se ejecuten contra páginas web que usen certificados autofirmados o firmados por una CA no incluida en las aceptadas por defecto en Firefox, por lo que en esos casos será necesario cargar el certificado en cuestión en el perfil de Firefox que se esté usando.

Para hacer esto, lo más sencillo es iniciar el navegador en un entorno gráfico, acceder a la URL y agregar el certificado SSL. A continuación explicaremos cómo hacerlo tanto en Windows como en Linux:

4.1.1.5.1 Con PWRD desplegado en sistemas Windows

En este caso, ya que contaremos con un entorno gráfico, solo tendremos que iniciar el navegador Firefox con el perfil que estemos usando para los chequeos:

Profile 01.png
Profile 02.png

Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:

Profile 03.png
Profile 04.png

Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a las opciones de Firefox, a la pestaña de "Privacidad & Seguridad", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":

Profile 05.png
Profile 06.png
4.1.1.5.2 Con PWRD desplegado en sistemas Linux

Por lo general, cuando se instala un servidor Linux, no se le incluye un entorno de escritorio gráfico, por lo que para poder seguir los mismos pasos que en el caso anterior tenemos que hacer una redirección de las X gráficas a un equipo donde sí tengamos un entorno de escritorio gráfico. Esto se hace de forma distinta si redirigimos las X a un escritorio gráfico en Linux o Windows.

4.1.1.5.2.1 Redirigiendo X11 a un escritorio en Linux

Hacer esto es muy sencillo, ya que bastará con establecer una conexión SSH al servidor PWRD con el parámetro "-X":

ssh -X [email protected]_ip_address

Hecho esto, si lanzamos el navegador Firefox, podremos ver cómo se nos muestra en nuestro escritorio:

firefox -p

En una instalación por defecto solo veremos el perfil "default", por lo que sería recomendable hacer como en la instalación en Windows y crear un nuevo perfil el cual utilizar:

Profile 07.png
Profile 08.png
Profile 09.png

En caso de guardar el perfil en una ruta distinta a /opt/firefox_profile, será necesario editar el script de arrance del PWRD /etc/init.d/pwrd para indicarle la ruta al nuevo perfil:

PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"

Con el perfil creado, se puede iniciar el navegador:

Profile 10.png

Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:

Profile 11.png
Profile 12.png

Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a las opciones de Firefox, a la pestaña de "Avanzado > Certificados", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":

Profile 13.png
Profile 14.png
4.1.1.5.2.2 Redirigiendo X11 a un escritorio en Windows

En el caso de Windows, primero tendremos que instalar un servidor de X para poder hacer la redirección, como por ejemplo Xming. Una vez instalado e iniciado, podremos hacer la redirección de las X.

Usando el cliente SSH Putty, tendremos que ir a al apartado "Conection > SSH > X11" antes de hacer la conexión, y asegurarnos de que marcamos la opción "Enable X11 forwarding" así como de rellenar el campo "X display location" como "localhost:0":

Profile 15.png

Después volvemos al apartado "Session" y establecemos la conexión:

Profile 16.png

Una vez establecida la conexión, si lanzamos el navegador Firefox en el servidor PWRD, podremos visualizarlo en el escritorio de Windows.

firefox -p

En una instalación por defecto solo veremos el perfil "default", por lo que sería recomendable hacer como en la instalación en Windows y crear un nuevo perfil el cual utilizar:

Profile 17.png
Profile 18.png
Profile 19.png

En caso de guardar el perfil en una ruta distinta a /opt/firefox_profile, será necesario editar el script de arrance del PWRD /etc/init.d/pwrd para indicarle la ruta al nuevo perfil:

PWROPTS=" -firefoxProfileTemplate /path/to/profile/folder"

Con el perfil creado, se puede iniciar el navegador:

Profile 20.png

Una vez iniciado, habrá que acceder a la URL con el certificado que se quiera cargar y añadirlo como excepción para el navegador:

Profile 21.png
Profile 22.png

Otra posibilidad, si se quiere aceptar cualquier certificado SSL, sería acceder a las opciones de Firefox, a la pestaña de "Avanzado > Certificados", y desmarcar el campo "Consultar a los servidores respondedores OCSP para confirmar la validez actual de los certificados":

Profile 23.png
Profile 24.png


4.1.2 Grabador de sesiones (PWR)

Template warning.png

La nueva versión de Selenium IDE será compatible a partir de la versión 745 de Pandora FMS, cuando se implemente Selenium 3. Las transacciones grabadas en Selenium 2 no se verán afectadas.

 


Template warning.png

Las sesiones grabadas con Selenium 2 sólo podrán realizarse con Firefox.

 


Antes de monitorizar una experiencia de usuario debemos hacer la grabación. Dependiendo del tipo de tecnología que hayamos elegido utilizaremos un sistema de grabación u otro.

Para realizar la grabación de una navegación con PWR necesitaremos el grabador PWRD disponible en la librería de módulos:

https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/

Contiene:

Iniciamos el grabador PWR_recorder.exe:


PWR recorder.PNG


Automáticamente iniciará Firefox con el entorno preparado para grabar sesiones PWR:


PWR recorder main.png



Tras acceder al IDE de Selenium podremos iniciar la grabación de nuestra experiencia de usuario:


Ux10.JPG


Desde este momento podremos navegar por el sitio web que queramos monitorizar y las diferentes acciones de cada paso que avancemos irán apareciendo en el grabador.

Para detener la grabación utilizaremos el siguiente botón, situado en la parte superior derecha del grabador:


Ux11.JPG


Una vez completadas las acciones, podemos realizar comprobaciones sobre la página; por ejemplo, verificar la existencia de un texto determinado para asegurarnos de que la página cargada es la correcta. Para ello, haremos click derecho sobre una sección de texto en la ventana del navegador mientras continuamos grabando, y seleccionamos la opción verifyText:


Ux13.JPG


Aparecerá un nuevo paso en el grabador indicando la acción de comprobación de texto indicada:


Ux14.JPG


Podemos reproducir la secuencia completa mediante el botón Play entire test suite y comprobar que finaliza correctamente:


Ux15.JPG


Una vez verificada la validez de la secuencia de navegación, la guardaremos (Archivo -> Save Test Case) para ejecutarla posteriormente con Pandora FMS UX. El fichero resultante será un documento HTML que Pandora FMS UX interpretará.


4.1.2.1 Grabar una sesión transaccional para Pandora WUX

Pandora FMS WUX permite dividir la monitorización de la navegación de un sitio web en múltiples módulos, que representarán cada uno de los pasos realizados.

Para insertar un nuevo punto de control y generar los módulos de fase (hasta ese punto) haga clic derecho en el punto donde desea identificar el comienzo de fase.


Pwrd recorder transaction.PNG


Como comentario pondremos el siguiente texto:

phase_start:nombre_de_fase

La fase englobará el tiempo y resultado de todos los comandos que se encuentren hasta el siguiente comentario:

phase_end:nombre_de_fase

Todos los comandos que se ejecuten entre una etiqueta phase_start y phase_end se englobarán dentro de esa fase.


Pwrd recorder transaction2.PNG


Template warning.png

Deberá tenerse en cuenta que las grabaciones realizadas en Selenium 3 pueden no funcionar correctamente.

 


4.2 Ejecución de transacciones web

4.2.1 Ejecución estándar

Para lanzar sesiones pregrabadas de PWR llamaremos al ejecutable pandora_ux_x64.exe, el cual nos podemos descargar del siguiente enlace:https://pandorafms.com/library/user-experience-pandora-ux

Indicaremos que el modo de trabajo es PWR, y el archivo que contiene las directrices de la sesión. En la ruta indicada en el parámetro -folder se guardarán las capturas de pantalla a mostrar en caso de error, parámetro opcional. También se puede introducir el número de reintentos consecutivos en caso de fallo, parámetro opcional. Su ejecución en Windows es:

pandora_ux_x64.exe -exe PWR -script C:\tests\std.html -retries 3

Se devolverán los siguientes módulos:

  • UX_Status_nombre_proyecto: si la secuencia ha tenido éxito o ha fallado.
  • UX_Time_nombre_proyecto: tiempo empleado en completar la secuencia.
  • UX_Snapshot_nombre_proyecto: captura con el último punto antes del error, si lo hubiere.

Ejemplo de salida con ejecución correcta:

<module>
   <name><![CDATA[UX_Status_std.html]]></name>
   <type>generic_proc</type>
   <data><![CDATA[1]]></data>
   <description><![CDATA[Test OK]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_std.html]]></name>
   <type>generic_data</type>
   <data><![CDATA[16.317]]></data>
   <description><![CDATA[Test OK]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

Ejemplo de salida con ejecución incorrecta:

<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 podemos añadir la línea de ejecución al agente de Pandora FMS instalado en la máquina que hayamos preparado para ejecutar los chequeos. La línea a añadir al fichero de configuración del agente tendrá un aspecto similar a este (en una sola línea): En Windows:

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Producto\UX-Trans\PWR\sesion.html -folder <ruta screenshots>

En Linux:

module_plugin /usr/share/pandora_server/util/pwrd/firefox/pandora_ux.64 -exe PWR -script /usr/share/pandora_server/util/pwrd/firefox/PruebaUX.html -pwr_port 4444	

Una vez que se encuentre reportando la información al servidor de Pandora FMS veremos cómo aparecen los módulos correspondientes. Podemos habilitar la vista en modo jerárquico para ver la relación entre ellos:


Ux33.JPG


Como indicamos anteriormente, vemos el resultado de la ejecución (si ha tenido éxito o no) en el módulo UX_Status_sesion.html, el tiempo empleado (en segundos) en el módulo UX_Time_sesion.html, y otro con la captura del último error en UX_Snapshot_sesion.html, que en este caso se encuentra vacío. Será sobre estos módulos sobre los que podremos crear alertas y mostrar las gráficas individuales de cada módulo.

Imagen nueva ux.png

4.2.2 Ejecución basada en fases

Si tenemos una grabación transaccional con Pandora FMS UX PWR, como se indicó en los apartados anteriores, será el propio sistema quien genere los módulos necesarios para identificar cada una de las fases indicadas, por lo que la ejecución no variará con respecto al caso anterior; únicamente indicaremos el fichero html correspondiente, que en este caso contendrá las diferentes fases. Ejemplo de ejecución en Windows:

pandora_ux_x64 -exe PWR -script C:\tests\std.html –folder <ruta screenshots>

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

Mostrará una imagen de la web en el momento del error.

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

Y se mostrará una imagen de la web en el momento del error.

La línea de ejecución del agente sería la misma que en el caso anterior, pero con el fichero html que contiene las fases estipuladas.

Y cuando la información esté llegando correctamente al servidor de Pandora FMS, se visualizará en forma de módulos de esta forma. Habilitar la vista en modo jerárquico en la lista de módulos nos ayudará a visualizar la información de forma mucho más clara:


Ux34.JPG


Accediendo a la sección WUX del agente podemos ver detalles adicionales de la transacción y sus fases:

El ejemplo a continuación representa un proceso de navegación por nuestro sitio web y compra de varios artículos, dividido en 5 fases para medir con exactitud los tiempos empleados y saber dónde hacen falta mejoras o se produce un cuello de botella:


Ux44.JPG


4.2.3 Recuperación de valores

Pandora FMS UX es capaz de recuperar datos directamente de la web durante la ejecución de los tests de experiencia de usuario.

Para utilizar esta nueva característica, lo único que hay que agregar es la orden de captura como comentario en el test de Selenium:


PWR recorder getValue.png


En el ejemplo adjunto, se recuperan dos valores después de realizar la navegación, y se representarán como módulos en Pandora FMS (número y resultado en texto).

Los pasos para ordenar al plugin recoger datos son los siguientes:

  • Agregar un nuevo comentario a nuestro fichero de pruebas con el grabador Selenium.
  • Agregar la directiva al comentario.

Directiva de captura de datos

getValue;nombre del módulo;tipo de dato del módulo;expresión regular para la captura de datos

¿Qué representa cada campo separado por punto y comas?

  • getValue: Instrucción para el sistema UX.
  • Nombre del módulo: el nombre del módulo tal y como aparecerá en Pandora FMS.
  • Tipo de dato del módulo: Qué tipo se utilizará; puede ser cualquiera de los tipos de datos soportados por Pandora FMS (generic_proc,generic_data,generic_data_string,async_proc,async_data,async_string...)
  • Expresión regular Perl a utilizar para la captura de datos: Debe ser una expresión regular Perl, con la orden de captura de información entre paréntesis.

Por ejemplo, en el texto:

 <p>La temperatura de la placa solar es de: <span class="temperatura">54º C</span></p>

Si queremos recuperar la temperatura para llevar un seguimiento del valor, especificaremos la expresión regular como sigue:

<span class="temperatura">(\d+\.*\,*\d*).*</span>

De tal manera que recuperará el valor 54 del ejemplo, o posibles valores con posiciones decimales.

La directiva de captura completa quedaría como sigue:

getValue;temperatura placa solar;generic_data;<span class="temperatura">(\d+\.*\,*\d*).*</span>

5 Gestión y visualización de datos

5.1 Crear un módulo de análisis web en Pandora FMS Console

Una vez tenemos nuestra sesión de navegación grabada, es hora de desplegarlo como módulo en la consola de Pandora FMS.

Para ello accederemos a cualquier agente asociado a un servidor con la funcionalidad WUX habilitada y crearemos un módulo de tipo "Análisis web":

Wux module.PNG


Una vez seleccionado "crear" deberemos rellenar todos los campos que nos presenta el formulario:

Wux form.png
  • Nombre del módulo: Módulo WUX (Padre); todos los sub-módulos con los resultados de la monitorización serán dependientes de este nuevo módulo.
  • Lanzar pruebas de rendimiento (Run performance tests): Indica que queremos monitorizar no solo la experiencia de navegación, sino también las estadísticas de rendimiento del acceso al sitio web objetivo.
  • Sitio web objetivo (target web site): Para la monitorización de estadísticas de rendimiento de sitio web.
  • Ejecutar prueba desde: Indicar el servidor WUX que ejecutara el chequeo.
  • Navegador: Navegador web con el que ejecutar el chequeo.


Template warning.png

El navegador indicado debe figurar en el grid o servidor de Selenium utilizado por el servidor WUX.

 


  • Aceptar certificados inseguros: Si se habilita, se aceptará cualquier certificado no seguro (autofirmado, expirado, etc.) que forme parte de la navegación.


Template warning.png

Esta opción solo está disponible para los navegadores Google Chrome y Mozilla Firefox, y solo tendrá efecto si el chequeo es ejecutado por un servidor de Selenium 3.

 


  • Histórico de datos: Guardar o no la información histórica de los módulos que monitorizan esta experiencia de usuario.
  • Sección textarea: En este cuadro de texto deberemos copiar (o cargar) el contenido de los ficheros de la sesión de navegación que hemos grabado previamente.


5.1.1 Macros personalizadas

El funcionamiento de las macros personalizadas implica la sustitución de determinadas cadenas de texto presentes en nuestro fichero de sesión de navegación por ciertos valores personalizables.

En el caso de módulos de análisis web, se ha mejorado esta funcionalidad, permitiendo macros dinámicas que permiten que estos valores se traduzcan en fechas y horas variables.

¿Por qué esta funcionalidad?

Supongamos que necesitamos monitorizar, mediante una sesión de navegación, el correcto funcionamiento de una aplicación web de reserva de salas de reuniones.

Si estableciéramos una fecha y hora fija a la hora de rellenar los datos del formulario, es posible que el sistema cancelara la reserva porque en algún momento quede en el pasado; por ejemplo, podríamos estar intentando reservar una sala para la semana pasada.

También es posible que nos encontremos con un máximo de tiempo para poder efectuar esa reserva, y que el sistema nos obligue a reservar la sala dentro de un período de tiempo concreto, por ejemplo no superior al mes vigente.

Para evitar tener que editar la macro cada pocos días, y despreocuparnos del apartado de configuración, podemos usar las macros dinámicas, diciendo al sistema que reserve la sala siempre para el día siguiente al momento de realizar el test.

Para poder usar esta funcionalidad, los valores deberán tener un formato específico, logrando las siguientes sustituciones posibles:

@DATE_FORMAT (fecha/hora actual con formato definido por el usuario)
@DATE_FORMAT_nh (horas)
@DATE_FORMAT_nm (minutos)
@DATE_FORMAT_nd (días)
@DATE_FORMAT_ns (segundos)
@DATE_FORMAT_nM (mes)
@DATE_FORMAT_nY (años)


Donde “n” puede ser un número sin signo (positivo) o negativo.

Y FORMAT sigue el standard de strftime de perl


Ejemplos:

@DATE_%Y-%m-%d %H:%M:%S
@DATE_%H:%M:%S_300s
@DATE_%H:%M:%S_-1h

5.2 Visualización de los datos

La información generada por WUX se visualizará en forma de módulos de la siguiente forma. Habilitar la vista en modo jerárquico, en la lista de módulos, nos ayudará a visualizar la información de forma mucho más clara:


WUX modules.PNG


Dentro de esta jerarquía encontraemos los siguientes módulos:

  • módulo_Global_Status: Indicará el estado global de la navegación completa.
  • módulo_Global_Time: Indicará el tiempo global empleado en la navegación completa.
  • módulo_Global_Screenshot: Contiene una imagen con el resultado del error de navegación, solo se generará en caso de error
  • módulo_Phase X: Nombre de fase_Status: Indicará el estado de la navegación durante la fase X.
  • módulo_Phase X: Nombre de fase_Time: Indicará el tiempo empleado en la fase X.

Ejemplo: Vista de captura de error.


Wux screenshot.png


Template warning.png

Atención: Si ha actualizado desde versiones anteriores a Pandora FMS 7.0NG 712 debe realizar un pequeño cambio.

 


Para poder almacenar las capturas de pantalla generadas por WUX Server, deberá lanzar las siguientes operaciones en su esquema de base de datos:

alter table tagente_estado modify column datos mediumtext;
alter table tagente_datos_string modify column datos mediumtext;

Si no realiza estas acciones las capturas podrían verse cortadas.

Accediendo a la sección WUX del agente podemos ver detalles adicionales de la transacción y sus fases:

Wux nueva imagen.png

Las estadísticas del sitio web se resumen en los siguientes conceptos:

  • Stats_TT: Tiempo total en obtener el sitio web.
  • Stats_TDNS: Tiempo total en resolver la dirección IP del objetivo.
  • Stats_TTCP: Tiempo empleado en conectar vía TCP.
  • Stats_TSSL: Tiempo empleado en establecer comunicación SSL.
  • Stats_TST : Tiempo transcurrido hasta que inició la transferencia de datos.
  • Stats_TTC : Tiempo transfiriendo datos; agrupará todos los tiempos de transferencia de recursos.
  • Stats_TTR : Tiempo empleado en transferir el contenido de la página.
  • Stats_TTR_main: Tiempo empleado en transferir el código HTML.
  • Stats_TTR_image: Tiempo empleado en transferir los recursos de tipo imagen (png|jpg|jpeg|bmp|tiff|gif|webp|svg).
  • Stats_TTR_css: Tiempo empleado en transferir las hojas de estilo.
  • Stats_TTR_js: Tiempo empleado en transferir los ficheros JavaScript.

5.3 Asignar alertas a un módulo de análisis web

Las alertas asociadas a los módulos de análisis web siguen la misma dinámica de funcionamiento que todo el sistema de alertas en Pandora FMS.

Por compatibilidad se recomienda asignar las plantillas de alertas sobre los sub-elementos autogenerados por el módulo de análisis web, como por ejemplo:

  • El estado de la navegación global.
  • Alertas sobre umbrales de tiempos.
  • Alertas con plantilla de aviso puesta en "siempre" para los módulos captura de imagen de resultados.

5.4 Nuevos widgets para Dashboards

Para poder representar la información de la navegación de usuario, se han agregado dos nuevos tipos de widget:

Widget de estado de las fases de navegación:

Widget wux fases.PNG


Widget de estadísticas del sitio web:

Widget wux stats.PNG


6 Experiencia de usuario de escritorio (PDR)

6.1 Despliegue del sistema PDR (sólo Windows)

El sistema PDR únicamente funciona en sistemas Windows, y una vez en ejecución por el agente de Pandora FMS este 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 ejecutaremos:

control userpasswords2

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


Ux5.JPG


Para preparar el entorno crearemos los siguientes directorios:

C:\PDR

Y descomprimiremos el fichero "PDR.rar" proporcionado en el siguiente enlace: https://pandorafms.com/library/pdr-cmd-for-ux-monitoring/ en C:\PDR.

6.2 Grabar una sesión PDR

Para iniciar el grabador ejecutaremos el siguiente script:

C:\PDR\pdr


Scriptwux22332.png


Tras un proceso de carga entraremos en el entorno de grabación:


Ux18.JPG


Seleccione las acciones que desea realizar y capture la zona donde quiera aplicarlas. A continuación puede encontrar un listado con las más comunes.

Acciones generales:


Ux19.JPG


Acciones de control de flujo:


Ux20.JPG


Más ayuda acerca del lenguaje: http://sikulix-2014.readthedocs.io/en/latest/index.html

Al grabar el proyecto se creará una carpeta que contendrá los siguientes elementos:

  • Fichero .py con el código del script de automatización.
  • Imágenes para controlar la navegación.

Un ejemplo sencillo de ejecución podría ser monitorizar que nuestra calculadora de Windows funciona correctamente. Vamos a mostrar todo el proceso en capturas de pantalla.

1. Elegimos la acción "click" y el área donde queremos aplicar la acción; la pantalla cambiará a modo "selección de área":


Ux21.JPG


Ux22.JPG


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:


Ux23.JPG


3. Después haremos click en los botones correspondientes, seleccionando las áreas igual que en los pasos anteriores.

4. Finalmente podremos guardar el proceso y reproducirlo mediante el botón Run.

Notas importantes:

  • Si hacemos doble clic 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 al estar el botón situado encima (por ejemplo, los botones de la calculadora cambian a color naranja cuando el ratón se encuentra sobre ellos).

En la carpeta donde hemos almacenado la grabación podemos ver los archivos de las imágenes y el fichero Python.


Ux24.JPG


Nota: Puede personalizar la captura realizada desde el motor de grabación del PDR usando el siguiente código:

## OPTIONAL ##capture file names
import shutil
file = "C:\probes\screenshot_prueba.sikuli.png"
focusWindow = App.focusedWindow()
regionImage = capture(focusWindow)
shutil.move(regionImage, file)


Esto creará una imagen de la ventana activa en el destino indicado por file, con lo que podremos realizar la captura en el momento específico que queramos. Podemos personalizar esta captura utilizando coordenadas; para ello, especificaremos la siguiente sintaxis:

capture(x, y, w, h)

Donde:

X: posición X del rectángulo a capturar.

Y: Posición Y del rectángulo a capturar.

W: Anchura de la captura.

H: Altura de la captura.



6.2.1 Grabar una sesión transaccional con Pandora FMS UX PDR

No es necesario grabar una sesión específica; simplemente grabe las sesiones que necesite en scripts diferentes. Será Pandora FMS UX quien gestione la devolución de resultados para organizarla como una transacción compleja. En el siguiente punto veremos cómo hacer la llamada de la ejecución para que funcione correctamente.

Si vamos a realizar varias grabaciones para crear un proceso transaccional debemos tener cuidado, al realizar la grabación, de que los elementos que buscamos estén presentes. Se recomienda la ejecución manual de las grabaciones que queramos utilizar en un único proceso transaccional de forma seguida, para asegurarnos de que las acciones transcurren según lo esperado.

En el siguiente ejemplo hemos realizado un proceso de grabación que constituirá la segunda fase del proceso empleado en el ejemplo anterior. Vamos a coger el resultado devuelto por la calculadora y pegarlo en un bloc de notas. La grabación presenta el siguiente aspecto:


Ux40.JPG


Y hemos incluido otra secuencia que consistirá en guardar el archivo de texto en una ubicación determinada, sobreescribiendo el anterior. Esto nos otorga gran flexibilidad, ya que abre la posibilidad de monitorizar paralelamente estos ficheros reflejando la información que necesitemos en todo tipo de variedad de chequeos de aplicaciones pesadas de escritorio. Esta tercera secuencia consiste en los siguientes pasos:


Ux43.JPG


6.3 Ejecución de sesiones PDR

6.3.1 Ejecución estándar

Para lanzar sesiones pregrabadas de PDR, indicaremos 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 podemos 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 nuestro agente tiene la línea de ejecución module_plugin lista, debemos lanzarlo en modo proceso, ejecutando lo siguiente desde línea de comando como administrador:

"C:\Program Files\pandora_agent\PandoraAgent.exe" --process

Obviamente la ruta completa al ejecutable PandoraAgent.exe debe ser la correspondiente a nuestra instalación.

Al lanzarlo veremos cómo se ejecutan las acciones de forma automática conforme a nuestra 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 quedarse sin manipular, por esta razón es por la que se recomienda su uso en máquinas virtuales.

Imagen nueva pdr.png

Info.png

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>

6.3.2 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 utilizaremos el parámetro -t con el nombre de la transacción que englobará las diferentes fases. Si tuviesemos un proceso con más fases seguiríamos 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 podremos 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:


Ux41.JPG


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 podremos crear alertas y visualizar el histórico para construir gráficas y mostrar la evolución en el tiempo de nuestros sistemas.

Se recomienda la creación de una tarea programada que arranque el agente de Pandora FMS en modo proceso cuando el equipo se inicie; así no se interrumpirán las ejecuciones aunque el sistema tenga un reinicio forzoso y, 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


Ux27.JPG


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.


Volver a Indice de Documentacion Pandora FMS