Plugin pandora UX

Plugin que permite la ejecución estándar de sesiones pregrabadas:
- PDR, herramienta compleja de chequeos de escritorio
- PWR, herramienta compleja de chequeos web (con Selenium)

Introducción

Ver. 28-04-2022

Plugin que permite la ejecución estándar de sesiones pregrabadas PDR y PWR.

Mediante el uso del plugin, se pueden realizar chequeos de una manera más parametrizada, lo que hace que se pueda crear una ejecución más personalizada que con wux server.

Además se pueden crear tantas ejecuciones independientes  como sean necesarias, en máquinas totalmente independientes en ubicaciones geográficas distantes y no sincronizadas en modo alguno.

Matriz de compatibilidad

 

Sistemas donde se ha probado

Rocky Linux 8.5 

Sistemas donde debería funcionar

Cualquier sistema linux 

Pre requisitos

Parámetros

Parámetros

Nombre  Descripción
-exe Directorio al binario de tu utilidad de automatización o herramienta de test.
También es posible seleccionar el modo interno:
** Solo Windows:
PDR - herramienta compleja de chequeos de escritorio
** windows & linux:
PWR - herramienta compleja de chequeos web (con Selenium)
** requiere curl en el PATH:
stats - monitorización rápida del rendimiento del web server
** solo linux:
goliat – chequeos web basadas en Pandora Webserver
-args (opcional) Argumentos para la herramienta de automatización
-script

Script(s) a ejecutar.


Se pueden definir tantos como se necesiten. Por ejemplo:
-script script1,script2,script3

-folder (opcional) Directorio en el que se almacenarán los screenshots
-name (opcional) * PWR: define el nombre de la transacción
* PWD: nombre de la fase, se pueden definir tantas como se necesiten
ejemplo: -name phase1,phase2,phase3
deberían coincidir con los scripts definidos
-pwr_port(opcional) Puerto de escucha del servidor PWR
4444 por defecto, requiere -exe PWR
-pwr_host(opcional) Host en el que se encuentra el servidor PWR
Localhost por defecto, requiere -exe PWR
-pwr_browser(opcional) Navegador en el que se ejecutarán los chequeos PWR
*Firefox por defecto, requiere -exe PWR
-pwr_classic(opcional) Usa las librerías antiguas
Test::WWW::Selenium
PandoraFMS::WebDriver, requiere -exe PWR, 0 por defecto
-pwr_override_global_phase_time (opcional)

Sustituye el valor del modulo global time, por la sumatoria de todas las phases.

Si el token está a 1, se usara como valor del módulo la suma de todas las fases.

-retries (opcional) Número máximo de reintentos en caso de error
-ss_config (opcional) Configuración de los screenshots: X,Y,Ancho,Altura
ejemplo: -ss_config 0,0,100,100
obtendrá una imagen de 100x100 desde las coordenadas 0,0
[solo Windows]: activa el parámetro -ss_config para capturar la ventana activa
-checkpoint (opcional) Crea un nuevo screenshot de control
-s(opcional) Macro de sustitución, Sustituye cada instancia de _texto_ por el valor configurado. Es posible usar now+1 como valor para insertar el día actual. Se pueden configurar tantas macros (-s) como se necesiten, seguidas con el formato (-f) en caso de que
sea necesario:
-s macro1=value1 -f format1 -s macro2=value2 -f format2
-f(opcional) Formato para las macros de tipo fecha
usa notación std:
ejemplo: -f "%y%m%d" con fecha 2016, Sep 13 para obtener 160913
-k(opcional) Usa la salida de errorlevel para los chequeos en caso de fallo. Se comprueba por
defecto en caso de que el plugin devuelva alguna fase de ‘[error]’
-max_differences(opcional) Especifica el porcentaje máximo de diferencia entre la imagen de control y las obtenidas como resultado del test. Por defecto está configurado con el valor numérico 0.5

 

Configuración de email

-to (opcional) Dirección de email de destino que se enviará en caso de error
-from (opcional) Remitente del email
-subject (opcional) Asunto del email
-content (opcional) Contenido del email
-smtp_gw (opcional) Gateway del servidor smtp, 127.0.0.1 por defecto
-smtp_port (opcional) Puerto del servidor smtp. 25 por defecto

 

Configuración de los módulos de PandoraFMS

-t name (opcional) (solo modo PDR) habilita y configura un nombre para la transacción “global”. De
esta manera todos los módulos de los chequeos irán asociados al módulo de transacción
global, llamado ‘UX XXXX nombre’
-interval (opcional) Configura un module interval para los módulos resultantes del chequeo
-g (opcional) Configura un module group para los módulos resultantes del chequeo
-post (opcional) Comando que se ejecutará al acabar el chequeo, por ejemplo, matar firefox:
-post "taskkill /F /IM firefox.exe"
-post "killall firefox"
-tag_list x (opcional) Añade x (separados por comas) tags a los módulos generados, ejemplo:
tag1,tag2,...

 

Campos extra

-exit_on_fail (opcional) Termina inmediatamente la transacción si no es posible conectar con el servidor
PWR. 0 por defecto
-phase_snapshot (opcional) Genera un screenshot por fase. 0 por defecto
-classic_mode (opcional) El token a 0 siempre actualiza la latencia. El token a 1 solo actualiza la latencia si
la comprobación ha resultado exitosa. 0 por defecto
-v (opcional) Activa el modo verbose
-agent (opcional) Define la ejecución como plugin de servidor, configura el nombre del agente en
el que se almacenarán los módulos de salida
-agent_group (opcional) Si se define el token “agent” y crea un agente nuevo, configura el grupo al que pertenecerá.
-interval (opcional) Si se define el token “agent” y crea un agente nuevo, configura el intervalo que
tendrá. 300 por defecto
-tentacle_ip (opcional) ip del servidor tentacle. 127.0.0.1 por defecto
-tentacle_port (opcional) Puerto del servidor tentacle. 41121 por defecto
-tentacle_opts (opcional) Opciones extra del servidor tentacle
-local_folder (opcional) Directorio local de tentacle. /var/spool/pandora/data_in por defecto
-mode (opcional) [local|tentacle] modo de transferencia, “local por defecto”

Grabaciones web

Grabación de una transacción sencilla


Para poder realizar una grabación Selenium dispone de un amigable IDE que permite realizar esta tarea fácilmente.

La extensión de Selenium IDE puede utilizarse tanto en Google Chrome como en Mozilla Firefox, para poder añadir la extensión en cualquiera de estos navegadores haremos lo siguiente.

Chrome

Desde el siguiente link puedes añadir la extensión Selenium IDE de chrome

https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd

image-1647615158382.png

Mozilla firefox

Inicie Firefox y navegue hasta https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/  

Haga clic en Agregar a Firefox

image-1647615376058.png

Empezar a grabar con selenium

 

Para empezar a grabar en Selenium, se debe crear un proyecto nuevo:
 

image-1647615424535.png

Se le debe asignar un nombre:

image-1647615442320.png

Para iniciar la grabación, se debe dar al boton de "rec".

image-1647615457303.png

En "Base url" se deberá introducir la url  que se quiere grabar.

image-1647615466914.png

Se abrirá una nueva ventana de la url que hemos introducido, en la que podremos ver un icono como el de la imagen de abajo, situado en la esquina izquierda derecha de la pantalla, que indicará que Selenium esta grabando.

image-1647968996685.png

Para parar la grabacción se puede utilizar el siguiente botón:

image-1647969029458.png

Una vez parada la grabación, las acciones realizadas en esta quedarán grabadas como una secuencia de comandos, con un aspecto similar al siguiente:

image-1647948607058.png

Una vez terminada la grabación podemos guardar el fichero .side resultante dando al botón "save project" , que será la grabación que usemos en PandoraFMS.

Sugerencias para las grabaciones de Selenium

Es recomendable el uso de algunos comandos en nuestra grabación de selenium para un mejor tratado de estas desde PandoraFMS. Algunos de estos son :

 

Grabaciones complejas

Selenium tiene muchos  elementos y opciones que se pueden utilizar para personalizar la transacción.

Ejemplo de una transacción compleja

image-1647453195349.png

En este caso vemos una grabación que entra en sourceforge y comprueba que existen los archivos de la ultima release y que esos archivos se han generado en este mes.

Comando store test

image-1647453342142.png

Guarda en una variable el valor de un elemento. Con la opcion "find target" podemos ver seleccionado cual es el elemento.
image-1647453618326.png


Comando execute script

Con este comando se pueden ejecutar scripts

Ejemplo:

image-1647454256443.png

Este pequeño script concretamente comprueba si el texto que tiene dentro coincide con un patron.

Ese valor quedaría guardado en una variable y luego comprobando el valor de la variable se puede hacer que la grabación haga una cosa o otra, pudiendo pillar distintos caminos dependiendo del resultado de la transacción.

image-1647454100212.png

Después de esto entra en el enlace comprueba que existen ciertos elementos y termina.

image-1647454366084.png

 

Recuperación de valores de una página web

Esto nos permite recoger información de un dato en un momento de la transacción para guardar dicho valor en un módulo normal de datos de Pandora FMS. Para ello usaremos el siguiente comando avanzado en nuestra grabación: getValue.

Comando getValue

Este comando es muy interesante ya que permite crear un módulo en PandoraFMS

image-1647454580988.png

La sintaxis para su uso es la siguiente :

//getValue;<nombre_modulo>;<tipo_de_dato>;<valor del modulo o expresión regular>


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

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 quiere recuperar la temperatura para llevar un seguimiento del valor, especifique 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>

Los comandos que generan módulos son:

  • getValue: Extrae un valor.
getValue;nombre_modulo;tipo_modulo;REGEX_de_captura
  • getVariable: (Versión NG 753 o superior ) Extrae un valor específico de una variable.
getVariable;nombre_modulo;tipo_modulo;nombre_variable
  • getScreenshot: Extrae una captura de pantalla.
getScreenshot;nombre_modulo


getValue es un comando que pertenece al tipo que generan los módulos PFMS. Visita el enlace anterior para saber más sobre ellos.

Todos los comandos propios deben aparecer en el fichero de test (.side) como comentarios. En caso contrario, fallará a la hora de probar el test en la extensión de Selenium.

Lista de Comandos

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

Macros personalizadas

El funcionamiento de las macros personalizadas implica la sustitución de determinadas cadenas de texto presentes en el 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?

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

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

También es posible que 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 periodo de tiempo concreto, por ejemplo no superior al mes vigente.

Para evitar tener que editar la macro cada pocos días, y despreocuparse del apartado de configuración, puede usar las macros dinámicas, indicando 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:

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

Y FORMAT sigue el estándar de strftime de Perl

Ejemplos:

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

 

Grabaciones de escritorio

 Grabaciones con sikulix

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

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

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

 

image-1647878287968.JPG

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

image-1647878323009.JPG

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

image-1647878337424.JPG

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

image-1647878357831.JPG


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

image-1647878376422.jpg

6. Y quedará representado en el programa.

image-1647878398540.JPG

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

image-1647878418007.JPG

 

Ejemplo de grabación

image-1647880053931.png

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

Ejecución manual PWR (chequeos web)

Si se ejecuta el plugin por terminal se mostrará un xml ( si no se usa el parámetro agent, que es el que hay que utilizar para usar el plugin en modo servidor.

Si algo falla en la transacción, se creara un modulo extra de nombre "Ux_Snapshot_<file transaction>" que mostrará la imagen de la parte donde ha fallado la transacción. Con el parámetro -folder se puede elegir la carpeta en la que se guardara la imagen.

Ejecución manual básica

./pandora_ux.64 -exe pwr -script <path .side file> 

Se devolverán los siguientes módulos:

UX_Time_nombre_proyecto
UX_Status_nombre_proyecto

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

UX_Snapshot_nombre_proyecto

Mostrará una imagen de la web en el momento del error siempre y cuando se esté ejecutando en el mismo equipo en el que está corriendo el servidor de Selenium.

Ejemplo XML ejecución correcta del plugin

image-1660820632761.png

Ejemplo XML ejecución fallida del plugin

image-1660819707854.png

Ejemplo, ejecución basada en transacciones

Si se ha realizado la grabación del chequeo con la información adicional basada en transacciones, será el propio sistema quien genere los módulos necesarios para identificar cada una de las fases indicadas.

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

- UX_Time_nombre_phase<orden><fichero><acción>:
- UX_Status_nombre_phase<orden><fichero><acción>

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

- UX_Snapshot_nombre_phase<orden><fichero><acción>

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

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

Ejemplo ejecución basada en transacciones.

image-1660823035852.png

Se mostraría el xml de la transacción

Módulos de fases

image-1660821852335.png

   Módulos de resúmenes globales

image-1660821812383.png

 

 

 

 

Ejecución manual PDR (chequeos de escritorio)

Configuraciones previas

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

Prerrequisitos:

Para lograr dicha configuración ejecute:

Para versiones anteriores a Windows 10®:

control userpasswords2

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

ux5.jpg

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

Para Windows 10®:

Usando Netplwiz:

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

image-1647878223815.png

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

image-1647878797825.PNG



Usando Autologon :

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

autologon_enable_-_sysinternals.png

Para preparar el entorno cree el siguiente directorio:

C:\PDR

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

Ejecución de sesiones PDR

Ejecución estándar

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

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

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

Se devolverán los siguientes módulos:

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

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

Ejemplo de salida con ejecución correcta:

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

Ejemplo de salida con ejecución fallida:

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

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

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

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

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

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

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

imagen_nueva_pdr.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>

Ejecución basada en transacción

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

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

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

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

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

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

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

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

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

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:

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

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

ux26.jpg

ux27.jpg

ux28.jpg

ux29.jpg

ux30.jpg

ux31.jpg

ux32.jpg

De este modo garantizaremos que en este sistema MS 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.

Configuración en PandoraFMS

Ejemplo ejecutar el plugin como plugin de agente

Para usar este plugin en modo agente, se debe llamar al plugin con un comando con los parámetros que se estén usando, esto se puede hacer desde el archivo pandora_agent.conf situado en "/etc/pandora". Aunque si esta habilitada la configuración remota se puede hacer desde la consola.

image-1647356034558.png

Para llamar al plugin se usará el parámetro module_plugin seguido del comando al final del archivo:

Ejemplo:

module_plugin /pandora_ux.64 -exe pwr -script login_pandora.side -pwr_port 4444 -pwr_host 172.42.42.1

En el siguiente intervalo que se actualice el agente aparecerán los módulos dentro del agente software en el que lo estamos llamando.

image-1660823361674.png

Ejemplo ejecutar el plugin como plugin de servidor

Se debe ir a servidores > plugins:

image-1647441477355.png

Pinchar en añadir:

image-1647441559604.png

Se le pone el nombre y la descripción que se prefiera:

image-1660833282899.png



Abajo en "comando del plugin" se debe introducir la ruta en la que tenemos el plugin de UX. En parámetros del plugin se introducirán todos los que queramos usar para customizar la ejecución del plugin seguido de la macro _field_ que nos permitirá almacenar los valores de estos parámetros más abajo.

* Si se va a usar el plugin como plugin de servidor, se debe usar el parámetro agent, ya que este hace que la ejecución del plugin muestre un valor básico con el que podremos ver el estado de la ejecución en vez de un xml que es lo que usaríamos si queremos usar el plugin en modo agente.

image-1660833394065.png



Se le puede añadir una descripción a cada macro para identificarlas seguido de un valor.

Macro _field1_

image-1647349972507.png

Macro _field2_

image-1647350000362.png

Macro _field3_

image-1647350034720.png

Macro _field4_

image-1647350051952.png

Macro _field5_

image-1647350070959.png

Una vez hecho esto se puede ver en la vista previa del comando este, y ejecutándolo por terminal se puede ver si los datos introducidos son correctos.

image-1660833583797.png



Si se introduce por terminal debería mostrar un 1 si todo ha ido correcto con la transacción.

Una vez realizados estos pasos y configurado el plugin al antojo del usuario, se debe crear un módulo, que mostrará el estado de la ejecución del plugin, para ello es requerido ir a un agente y crear un nuevo módulo de servidor de complementos.

image-1647441796782.png

Se le pondrá al módulo el nombre que queramos.

image-1660833682879.png



Y en la etiqueta de plugin se seleccionará el que se acaba de crear, se puede ver como aparecen los parámetros que hemos metido por las macros abajo.

image-1660833700342.png



Una vez hecho esto se debe crear el módulo y aparecerá en la vista de módulos con 1 si la ejecución del plugin no esta teniendo problemas.

image-1647350259697.png

Se puede ver que se ha creado un agente con el nombre que se le puso por parámetro.

image-1647350286122.png

Y dentro de este se pueden ver los módulos con el estado de la transacción.

image-1647350330558.png

Módulos generados por el plugin

Con grabación de solo una fase

Se devolverán los siguientes módulos:

Con grabación del chequeo con la información adicional basada en transacciones

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