Wildfly

Plugin con el que monitorizar Wildfly (Jboss) y poder visualizar los datos en PandoraFMS.

Introducción

Este plugin tiene como finalidad poder monitorizar Jboss/Wildfly, en base a metricas relacionadas con su consumo, aplicaciones, threadpools y datasources.

El plugin el plugin conecta con el server y realiza toda la extracción de datos, que luego vuelca en Pandora.

Matriz de compatibilidad

Sistemas donde se ha probado Rocky linux, Fedora 34
Sistemas donde funciona Cualquier sistema linux


Pre requisitos

Parámetros

Parámetros de conectividad

-i, --host
Dirección IP del entorno
-u, --user
Usuario
-p, --password Contraseña

Parámetros configuración Pandora

--agent_name
Nombre del agente global y prefijo para todos los demás agentes creados
--module_prefix Prefijo para todos los módulos creados por el plugin
--interval Intervalo de monitorización del agente
--temporal Directorio temporal de PandoraFMS
--data_dir
Directorio de datos de PandoraFMS
--group
Grupo de destino de PandoraFMS
--transfer_mode
Modo de transferencia de datos, local o tentacle
--tentacle_client
Ruta del cliente de tentacle, por defecto "tentacle_client"
--tentacle_opts
Opciones adicionales de tentacle
--tentacle_port
Puerto de tentacle
--tentacle_address
IP de tentacle

Parametros para habilitar/deshabilitar chequeos

--scan_deployments Activar con 1 para habilitar el escaneo de aplicaciones, por defecto habilitado.
--scan_datasources Activar con 1 para habilitar el escaneo de datasources, por defecto habilitado.
--scan_threadpools Activar con 1 para habilitar el escaneo de threadpools, por defecto habilitado.

Parámetros extra

--log
Comando para ver el log del entorno

Ejecución manual

El formato de ejecución del plugin es el siguiente:

./pandora_jboss  --host < host > --user < user > --password <password> --agent_name < agent name > --module_prefix < prefix >
--scan_deployments < 1 or 0 > --scan_threadpools < 1 or 0 > --scan_datasources < 1 or 0 >
[ --transfer_mode < local o tentacle > ] [ --tentacle_port < tentacle_port > ] [ --tentacle_address < tentacle_address > ] [ --tentacle_client < tentacle client path ] [ --tentacle_opts < tentacle extra options ]
[ -g < group > ] [ --data_dir < data dir > ] [ --temporal < temporary directory path > ] [ --interval < interval agent monitorings in seconds > ] [ --log < 1 or 0 > ]

 

Configuracion en PandoraFMS

Para configurar el plugin en PandoraFMS, se deben seguir los siguientes pasos :

1. Subir el plugin a PandoraFMS, por ejemplo en la siguiente ruta:

/etc/pandora/plugin

2. Dirigirse al apartado plugins y crear uno nuevo:

imagen.png

    3. Se le añade nombre, descripción y timeout:

image.png

4. Se añade la ruta del plugin en el comando y los parámetros necesarios para la ejecución de este.

Para cada parámetro se debe configurar una macro, siendo la sintaxis de esta macro la siguiente : _fieldx_, siendo x el numero posicional del parámetro, por ejemplo en la siguiente imagen vemos los parámetros que son obligatorios, los de conexion, ya que todos los demás se pueden usar con los valores default.

image.png

5. Se configurar las macros anteriores, añadiendo en cada una el valor del parámetro:

image.png

6. Una vez configurado se debe crear un módulo en un agente que ejecute el plugin. En el menu de módulos de un agente creamos un módulo de tipo plugin nuevo:

imagen.png

7. En el menú de configuración del módulo, le ponemos un nombre, seleccionamos el plugin antes configurado y se le debe dar a "crear".

image.png

8. Se crearan los agentes en la siguiente ejecución del plugin :

image.png

Agentes y módulos generados por el plugin

<Prefijo módulo>.Datasources 
<Prefijo módulo>.Datasources count
<Prefijo módulo>.Deployments 
<Prefijo módulo>.Deployments count
<Prefijo módulo>.Threadpools 
<Prefijo módulo>.Threadpools count
<Prefijo módulo>.committed.heap-memory-usage
<Prefijo módulo>.committed.non-heap-memory-usage
<Prefijo módulo>.committed.init.heap-memory-usage
<Prefijo módulo>.committed.init.non-heap-memory-usage
<Prefijo módulo>.max.heap-memory-usage
<Prefijo módulo>.max.non-heap-memory-usage
<Prefijo módulo>.used.heap-memory-usage
<Prefijo módulo>.used.non-heap-memory-usage
<Prefijo módulo>.committed.server.log

A su vez, si está habilitada la monitorización de estos, creara un agente por cada :

<Prefijo modulo>.context-root
<Prefijo modulo>.active-sessions
<Prefijo modulo>.expired-sessions
<Prefijo modulo>.highest-session-count
<Prefijo modulo>.max-active-sessions
<Prefijo modulo>.rejected-sessions
<Prefijo modulo>.server
<Prefijo modulo>.servlet
<Prefijo modulo>.session-avg-alive-time
<Prefijo modulo>.session-max-alive-time
<Prefijo modulo>.sessions-created
<Prefijo modulo>.virtual-host
<Prefijo modulo>.websocket
<Prefijo modulo>.<name thread>.active-count
<Prefijo modulo>.<name thread>.completed-task-count
<Prefijo modulo>.<name thread>.current-thread-count
<Prefijo modulo>.<name thread>.keepalive-time
<Prefijo modulo>.<name thread>.largest-thread-count
<Prefijo modulo>.<name thread>.max-threads
<Prefijo modulo>.<name thread>.queue-size
<Prefijo modulo>.<name thread>.rejected-count
<Prefijo modulo>.<name thread>.task-count

Creará un módulo booleano, para cada servicio, que mostrará si es True o False.