# Pandora FMS Plugin JMX

# Introducción

**Ver**.   
  
Plugin para la monitorización de servidores de aplicaciones basadas en tecnología JMX.

<div id="bkmrk-tipo%3A-plug-in-de-ser"><div>**Tipo**: Plug-in de servidor</div></div>

# Matriz de compatibilidad

Desarrollado utilizando IBM WebSphere 8.5.5.13, y Weblogic 12.1.3.0.0 utilizando el agente  
WAR Jolokia 1.5.0  
  
Compatible con:

<table border="1" id="bkmrk-websphere-weblogic-t" style="border-collapse: collapse; width: 100.003%;"><tbody><tr><td style="width: 100%;">Websphere</td></tr><tr><td style="width: 100%;">Weblogic</td></tr><tr><td style="width: 100%;">Tomcat</td></tr><tr><td style="width: 100%;">WebSphere</td></tr><tr><td style="width: 100%;">JBoss</td></tr><tr><td style="width: 100%;">Kafka</td></tr></tbody></table>

# Pre requisitos

Se requiere desplegar la aplicación Jolokia en el servidor de aplicaciones que queramos  
monitorizar.  
  
En el equipo que ejecutará el plugin, se requiere la instalación de las librerías jmx4perl .  
  
Se realizan una serie de chequeos básicos “por defecto”, aunque se pueden  
suprimir o personalizar.  
  
Se dispone de una interfaz “abierta” para especificar consultas a Mbeans,  
permitiendo gestionar la monitorización de los recursos Java.  
  
Se requiere conexión con el servicio Tentacle asociado a su servidor de Pandora FMS (para  
ejecuciones locales del plugin) bajo las siguientes condiciones:  
  
● Si tiene as\_server\_plugin habilitado.  
● Si tiene agent\_per\_instance habilitado.  
  
El despliegue de este plugin por binarios no requiere ningún requisito especial.  
  
Requiere la librería PandoraFMS::PluginTools.pm  
  
Esta librería está disponible con la instalación del paquete Pandora FMS OpenSource.  
  
Puede descargar la última versión de:  
  
[https://github.com/pandorafms/pandorafms/blob/develop/pandora\_server/lib/PandoraFMS/PluginTools.pm](https://github.com/pandorafms/pandorafms/blob/develop/pandora_server/lib/PandoraFMS/PluginTools.pm)

# Configuración

**INSTALACIÓN DE JOLOKIA**  
  
Descargue el agente Jolokia de la web oficial: [https://jolokia.org/download.html](https://jolokia.org/download.html)  
  
**Securización del agente Jolokia (WAR)** Puede asignar políticas de seguridad para restringir tanto el acceso como el uso de las opciones disponibles en el agente Jolokia.  
  
Estas restricciones pueden especificarse en un fichero XML de políticas. Este fichero está dividido en secciones con las que podrá controlar varios parámetros:  
  
<span style="text-decoration: underline;">Restricciones basadas en IP</span>  
El acceso general puede ser permitido basándose en la dirección IP de un cliente HTTP. Esta restricción se especifica en la sección&lt;remote&gt; , contendrá elementos &lt;host&gt; . El origen puede ser una dirección IP, un nombre de host, o una red en formato CIDR.  
  
El ejemplo siguiente permite el acceso desde localhost y todos los clientes de la red  
10.0.0.0/16:

```
<remote>
<host>localhost</host>
<host>10.0.0.0/16</host>
</remote>
```

<span style="text-decoration: underline;">Restricciones de comandos  
</span>  
Puede restringir los comandos que se permitirán ejecutar de manera general, indicando aquellos que se permitan. Para ello se utilizará la sección &lt;commands&gt; especificando cada comando con un elemento &lt;command&gt; .  
  
El ejemplo siguiente habilita los comandos READ, LIST, SEARCH y VERSION . El resto de comandos ( WRITE, EXEC ) no estarían disponibles:

```
<commands>
<command>read</command>
<command>list</command>
<command>version</command>
<command>search</command>
</commands>
```

Existen restricciones de consultas de mbeans y orígenes de peticiones. Puede consultar la ayuda completa en el siguiente enlace: [https://jolokia.org/reference/html/security.html](https://jolokia.org/reference/html/security.html)

**Ejemplo de política de seguridad**  
  
En este ejemplo se permite la conexión desde localhost y la red 10.0.0.0/16. También se limitan los comandos disponibles a READ,LIST,VERSION y SEARCH

```
<?xml version="1.0" encoding="UTF-8"?>
<restrict>
<remote>
<host>127.0.0.1</host>
<host>localhost</host>
<host>10.0.0.0/16</host>
</remote>
<commands>
<command>read</command>
<command>list</command>
<command>version</command>
<command>search</command>
</commands>
<http>
<method>post</method>
</http>
</restrict>
```

**Inclusión de una política de seguridad**  
  
Para reempaquetar una política en el archivo WAR del agente Jolokia deberá seguir los  
siguientes pasos:

```
# Descargue el agente WAR
$ jolokia
```

Nota: Puede descargarlo manualmente de: [http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-war/1.5.0/jolokiawar-1.5.0.war](http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-war/1.5.0/jolokiawar-1.5.0.war)

```
# Descargue la plantilla de política de ejemplo
# en el directorio local como “jolokia-access.xml”
$ jolokia download --policy
```

Nota : Si ha recibido errores al ejecutar los pasos previos, puede descargar la política de ejemplo desde [http://www.jolokia.org/templates/jolokia-access.xml](http://www.jolokia.org/templates/jolokia-access.xml)  
  
Edite la política y coloque el archivo jolokia-war-VERSION.war y el archivo jolokia-access.xml en el mismo directorio.

```
# Repack the to add the policy file 'jolokia-access.xml' form the cwd
$ jolokia repack --policy jolokia.war
```

Deberá recibir una salida similar a lo siguiente:

```
$ jolokia repack --policy jolokia-war-1.5.0.war
* Adding policy WEB-INF/classes/jolokia-access.xml to
jolokia-war-1.5.0.war
```

[![image-1626084627819.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084627819.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084627819.png)

Puede realizar una verificación del contenido del fichero WAR con el siguiente comando:

```
# Show current state (policy file include: yes/no)
$ jolokia jolokia.war
```

**Jolokia en WebSphere**  
  
Para instalar el proxy en IBM Websphere. Realizar los siguientes pasos:  
Seleccione en el menú lateral:  
Aplicaciones &gt; Nueva aplicación

[![image-1626084718348.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084718348.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084718348.png)

Seleccione el fichero WAR de Jolokia.

[![image-1626084740556.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084740556.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084740556.png)

Pulse siguiente .

[![image-1626084759321.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084759321.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084759321.png)

Mantenga las opciones por defecto y pulse siguiente.

[![image-1626084781286.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084781286.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084781286.png)

Modifique el nombre de la aplicación por “jolokia”, no es necesario realizar más cambios en esta pantalla. Presione siguiente.

[![image-1626084805919.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084805919.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084805919.png)

Active la casilla de verificación para mapear la nueva aplicación con el servidor deseado. Pulse siguiente.

[![image-1626084841984.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084841984.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084841984.png)

Active la casilla de verificación para mapear el host virtual por defecto. Pulse siguiente.

[![image-1626084874603.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084874603.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084874603.png)

Ajuste el contexto raíz de la aplicación a /jolokia  
Pulse siguiente.  
Verifique el resumen. Pulse finalizar.

[![image-1626084906736.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084906736.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084906736.png)

Verifique en el log presentado que la aplicación se ha instalado satisfactoriamente. Si es así presione “Guardar directamente a la configuración master”.  
  
La aplicación ya está desplegada. Deberemos iniciarla para poder interactuar con ella desde el plugin de JMX.   
  
Navegue a la lista de aplicaciones y seleccione “Jolokia”.

[![image-1626084957590.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084957590.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084957590.png)

Deberá recibir un mensaje indicando que la aplicación se inició correctamente:

[![image-1626084988980.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626084988980.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626084988980.png)

Puede validar la instalación de Jolokia en el enlace siguiente:  
  
[https://localhost:9443/jolokia](https://localhost:9443/jolokia)  
  
Debe recibir una salida en formato JSON con información general del agente Jolokia.

[![image-1626085035783.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085035783.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085035783.png)

**Jolokia en WebSphere con seguridad habilitada**   
Para utilizar el plugin JMX para la extracción de datos de entornos IBM WebSphere con  
seguridad habilitada, será necesario realizar modificaciones en la aplicación Jolokia (archivo  
WAR).  
  
<span style="text-decoration: underline;">Habilitar mapeo de seguridad para rol específico</span>  
  
Este paso agrega la información para el mapeo de roles al fichero jolokia.war, que  
posteriormente desplegaremos en nuestro servidor de aplicaciones.

[![image-1626085239095.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085239095.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085239095.png)

<span style="text-decoration: underline;">Configuración del servidor de aplicaciones IBM WebSphere  
</span>  
Será necesario crear un usuario con permisos para supervisión (monitor). Usuarios y grupos &gt; Administrar usuarios &gt; Crear usuario

[![image-1626085281629.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085281629.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085281629.png)

Y asignarle el rol específico “Monitor”: Usuarios y grupos &gt; Administrar roles de usuario &gt; Agregar

[![image-1626085305510.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085305510.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085305510.png)  
  
  
Una vez creado el usuario y asignado el rol correcto, realizamos el mapeo en la configuración de la aplicación Jolokia:  
Aplicaciones &gt; Aplicaciones de empresa &gt; Jolokia &gt; Mapeo rol de seguridad a usuario/grupo

[![image-1626085336431.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085336431.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085336431.png)

Una vez realizada la configuración, guarde los cambios y reinicie la aplicación Jolokia.  
  
NOTA : Se ha confirmado que en versiones antiguas de IBM WebSphere, existe la necesidad  
de realizar el mapeo de usuarios agregando el grupo TODOS al mapeo con rol supervisor:

Los cambios a realizar son:  
  
Activar “todos” y “todos autenticados” en el mapeo JMX – usuario en la configuración de  
Jolokia:

[![image-1626085387520.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085387520.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085387520.png)  
  
  
Enlazar las peticiones del grupo “Todos” en gestión de grupos:

[![image-1626085418644.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085418644.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085418644.png)  
  
  
**Jolokia en Weblogic**   
<span style="text-decoration: underline;">Pasos previos  
</span>  
Para garantizar la funcionalidad completa del plugin JMX en Weblogic, deberá verificar una serie de configuraciones previas. Si decide omitir estos pasos la monitorización podría estar limitada.  
  
<span style="text-decoration: underline;">Nota :</span> Si sus necesidades de monitorización se limitan al listado de aplicaciones, estado, número de invocaciones, consumo de recursos y estado general del servidor de aplicaciones, puede ignorar esta sección.  
  
Acceda a la pantalla de configuración de servidores en:  
  
Dominio base &gt; Entorno &gt; Servidores

[![image-1626085520438.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085520438.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085520438.png)  
  
  
Presione Bloquear y editar para habilitar la edición de la configuración:

[![image-1626085563865.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085563865.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085563865.png)  
  
  
Haga clic sobre el servidor donde se desplegará la aplicación Jolokia:

[![image-1626085587237.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085587237.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085587237.png)  
  
  
Habilite IIOP

[![image-1626085613273.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085613273.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085613273.png)  
  
  
Presione guardar .  
Seleccione Dominio base en el menú

[![image-1626085644466.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085644466.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085644466.png)  
  
  
En la pestaña de Seguridad, habilitar Anonymous Admin Lookup:

[![image-1626085680332.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085680332.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085680332.png)  
  
  
<span style="text-decoration: underline;">Despliegue de Jolokia  
</span>  
Acceda al apartado del menú  
Estructura de dominio &gt; Despliegues

[![image-1626085731601.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085731601.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085731601.png)  
  
  
En la pantalla que se le presenta, seleccione la opción Instalar

[![image-1626085769184.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085769184.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085769184.png)  
  
  
Seleccione el enlace upload your file(s) para mostrar el formulario de subida de ficheros:

[![image-1626085796012.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085796012.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085796012.png)  
  
  
Seleccione el archivo WAR de Jolokia de su equipo y pulse siguiente :

[![image-1626085822702.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085822702.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085822702.png)  
  
La ubicación se habrá completado con la ruta de subida del fichero WAR. Presione siguiente  
para iniciar el proceso de instalación.

[![image-1626085854145.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085854145.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085854145.png)  
  
  
Seleccione el modelo de seguridad de roles personalizados y pulse siguiente .

[![image-1626085884993.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085884993.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085884993.png)

Actualice el nombre del despliegue y mantenga la configuración propuesta.  
Pulse siguiente .

[![image-1626085909696.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085909696.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085909696.png)  
  
  
Pulse Finalizar .  
En este paso, la aplicación se encuentra desplegada en el servidor de aplicaciones JMX. En  
la pestaña Configuración , seleccione el punto de entrada desde donde se atenderá el  
servicio, configurando el “contexto raíz”:

[![image-1626085938347.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085938347.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085938347.png)

[![image-1626085949006.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085949006.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085949006.png)  
  
  
Pulse guardar para salvar los cambios.

Presione Activar cambios para aplicar los cambios.

[![image-1626085985386.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626085985386.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626085985386.png)  
  
  
Una vez aplicados los cambios, se mostrará la aplicación Jolokia preparada para ser  
iniciada:

[![image-1626086010612.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626086010612.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626086010612.png)  
  
  
Seleccione la casilla de verificación y pulse iniciar &gt; Iniciar todas las peticiones

[![image-1626086042869.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626086042869.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626086042869.png)  
  
  
Tras el proceso de arranque, la aplicación aparecerá como Activa .

[![image-1626086069241.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626086069241.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626086069241.png)  
  
  
Edite el rol de seguridad de la aplicación para agregar las condiciones de acceso que desee (permitir grupos, usuarios, etc.)

[![image-1626086096261.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626086096261.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626086096261.png)

[![image-1626086107619.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626086107619.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626086107619.png)  
  
  
Puede validar la instalación de Jolokia en el enlace siguiente:  
  
[https://localhost:7001/jolokia](https://localhost:7001/jolokia)  
  
Debe recibir una salida en formato JSON con información general del agente Jolokia.

[![image-1626086146811.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626086146811.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626086146811.png)  
  
**Jolokia en Apache Kafka**  
  
Para monitorizar un servidor Apache Kafka se requiere el agente JVM Jolokia en vez del agente WAR. Basta con descargarlo de la página oficial:  
  
[https://jolokia.org/download.html](https://jolokia.org/download.html)  
  
Sacamos el PID del servidor Apache Kafka:

[![image-1626086227024.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/scaled-1680-/image-1626086227024.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-07/image-1626086227024.png)  
  
  
Y relacionamos el agente JVM con el servidor mediante éste con

```
$ java –jar agente.jar start pid
```

Puede validar la instalación de Jolokia en el enlace siguiente:  
  
[http://localhost:8778/jolokia/](http://localhost:8778/jolokia/)  
  
**INSTALACIÓN DE JMX4PERL**

En el equipo donde ejecutará el plugin JMX deberá instalar las librerías Perl necesarias:

```
JMX::Jmx4Perl
JMX::Jmx4Perl::Alias
JMX::Jmx4Perl::Request
```

Para instalar las librerías necesita conexión a internet y CPAN.

```
# cpan install JMX::Jmx4Perl
```

Aunque las aplicaciones siguientes son extremadamente útiles para explorar los mbean de nuestros servidores de aplicaciones, es posible que den conflicto por librerías o paquetes pendientes de instalar.

```
jmx4perl
check_jmx4perl
j4psh
```

En un entorno de producción recomendamos ignorar las sugerencias de aplicaciones adicionales e instalar únicamente la librería JMX::Jmx4Perl.  
  
Responda no a todas las peticiones de instalación de componentes adicionales:

```
Install 'jmx4perl' ? (y/n) [y ]n
Install 'check_jmx4perl' ? (y/n) [y ]n
Install 'cacti_jmx4perl' ? (y/n) [y ]n
Install 'j4psh' ? (y/n) [y ]n
```

# Ejecución manual

Para ejecutar el plugin configure el archivo de configuración según las instrucciones  
precedentes.  
  
Ejecución del plugin:  
  
Versión código sin librerías desplegadas:

```
perl -I PandoraFMS pandora_plugin_jmx.pl jmx.conf
```

Donde, PandoraFMS es un directorio que contiene la librería PluginTools.pm  
  
Nota: Si tiene desplegadas las librerías de PandoraFMS (opensource), no es necesario incluir el argumento -I PandoraFMS .

# Configuración en Pandora

<span style="text-decoration: underline;">CONFIGURACIÓN  
</span>  
El fichero de configuración del plugin para monitorización de JMX se divide en bloques:

**Datos de conexión**

```
########################################################################
## Connection data
########################################################################
## URL endpoint of the target server
## Tomcat (example)
#server_url http://localhost:8080/jolokia
## Websphere (example)
#server_url http://localhost:49163/jolokia
## Weblogic (example)
#server_url http://192.168.70.237:7001/jolokia
## Product; product id of an specific technology
## (tomcat, jboss, weblogic, websphere, etc). By default the plugin uses autodetection
#product weblogic
## Timeout in seconds for an HTTP request (By default 180)
# timeout 180
```

*server\_url*   
Indica la dirección url donde está desplegada la aplicación Jolokia .

*product*   
Se recomienda definir este campo, ya que el proceso de autodetección puede llevartiempo. Indique el producto que se va a monitorizar: tomcat, jboss, weblogic, websphere,etc.

**Debug**

```
########################################################################
## Others
########################################################################
## Plugin log output will be fully verbose (with debug information)
#debug 1
```

*debug*   
Establezca el valor de este campo a 1 para ver información detallada en el log de ejecución del plugin. Por defecto en /tmp/pandora\_jmx\_plugin.log

**Alcance de la monitorización**

```
########################################################################
## Monitoring checks
########################################################################
## Server info checks
server_info
## OS info checks
os_info
## Monitor deployed web applications
webapp_info
## Include also monitoring for internal applications (console, consolehelp,...)
#include_internal_webapps 0
## This list will be used later by "servlets_list_info"
## check like a white list (only the following servlets will be checked)
## Tomcat monitoring
#use_only_servlets_begin
#WebModule=//localhost/examples,name=HelloWorldExample
#WebModule=//localhost/host-manager,name=HTMLHostManager
#WebModule=//localhost/examples,name=wsSnake
#use_only_servlets_end
## Websphere monitoring
#use_only_servlets_begin
#WebModule=DefaultCell01,name=jolokia_war
#WebModule=DefaultCell01,name=Helloworld_war
#use_only_servlets_end
## Weblogic monitoring
#use_only_servlets_begin
#WebModule=WL_PROXY,name=JspServlet
#use_only_servlets_end
# Servlets info
# (by default all Servlets deployed in the App server; will use use_only_servlets list
to restrict target Servlets checked)
#servlets_list_info
## Servlet monitoring, retrieve attributes from detected servlets
#servlet_attributes startTime loadTime,servletClass,requestCount,loadOnStartup
```

Puede configurar el plugin para reportar la información que necesite:  
  
*server\_info*  
  
Generar módulos con información del servidor JMX (1) o no (0).  
  
*os\_info*  
  
Agregar los módulos de monitorización del sistema operativo (1) o no (0).  
  
*webapp\_info*  
  
Monitorizar las aplicaciones desplegadas en el servidor JMX (1) o no (0). Si combina este parámetro con agent\_per\_instance , se crearán tantos agentes como aplicaciones tenga desplegadas. Esta funcionalidad se ha comprobado con Weblogic únicamente, su  
comportamiento puede no ser el esperado con otros servidores de aplicaciones.  
  
*include\_internal\_webapps*  
  
Incluir en la lista de aplicaciones web monitorizadas, las aplicaciones internas del servidor JMX (1) o no (0).  
  
*servlets\_list\_info*  
  
La monitorización basada en servlets nos permite recibir información de la disponibilidad de los mismos. Puede configurar servlets específicos a monitorizar especificando:  
  
*use\_only\_servlets\_begin*  
  
Se restringirá la monitorización de servlets a los especificados línea a línea tras esta etiqueta.  
  
*use\_only\_servlets\_end*  
  
Indica el final de la definición de servlets.  
  
Nota: Si utiliza servlets\_list\_info y no define el bloque use\_only\_servlets se analizarán todos los servlets disponibles.

**Inclusión de mbeans personalizados**

```
########################################################################
## Request of specifics attributes
########################################################################
# Example 1: Get an specific parameter ("used") from "HeapMemoryUsage" attribute from
the MBean "java.lang:type=Memory"
mbean_check_begin
mbean_check_name MemoryUsed
mbean_check_type generic_data
mbean_check_module_group Module group
mbean_check_description In Bytes
mbean java.lang:type=Memory
attribute HeapMemoryUsage
path used
mbean_check_end
# Tomcat server specific checks
#include jmx.tomcat.conf
# Websphere server specific checks
#include jmx.websphere.conf
# Weblogic server specific checks
#include jmx.weblogic.conf
# Kafka server specific checks
#include jmx.kafka.conf
```

Puede definir sus propios chequeos para recuperar información específica de mbeans. Para ello, defina tantos bloques de chequeo como necesite:

*mbean\_check\_begin*   
Especifica el inicio de un bloque de definición de chequeo de mbean específico.  
  
*mbean\_check\_name*  
  
Es el nombre del módulo tal y como aparecerá en Pandora FMS.  
  
*mbean\_check\_type*  
  
Indica el tipo de dato que se asignará al módulo en Pandora FMS.  
  
*mbean\_check\_module\_group*  
  
Puede personalizar el grupo de módulo que se aplicará a los monitores generados por la extracción de datos del mbean.  
  
*mbean\_check\_description*  
  
Es la descripción del módulo tal y como aparecerá en Pandora FMS.  
  
*mbean*  
  
Configure aquí el mbean a consultar.  
  
*path*  
  
Indique el path donde se aloja el mbean que desea consultar.  
  
*mbean\_check\_wmin*  
  
Indica el límite inferior del umbral Warning para el módulo.  
  
*mbean\_check\_wmax*  
  
Indica el límite superior del umbral Warning para el módulo.  
  
*mbean\_check\_wstr*  
  
Indica el texto como umbral de Warning para módulos de tipo string.  
  
*mbean\_check\_winv*  
  
Invierte la dirección de los umbrales Warning del módulo.  
  
*mbean\_check\_cmin*  
  
Indica el límite inferior del umbral Critical para el módulo.  
  
*mbean\_check\_cmax*  
  
Indica el límite superior del umbral Critical para el módulo.  
  
*mbean\_check\_cstr*  
  
Indica el texto como umbral de Critical para módulos de tipo string.  
  
*mbean\_check\_cinv*  
  
Invierte la dirección de los umbrales Critical del módulo.  
  
*mbean\_check\_end*  
  
Especifica el final de un bloque de definición de chequeo de mbean específico.

**Macro de detección dinámica de mbean \_jokeritem\_**  
Para poder monitorizar mbeans complejos, puede utilizar la macro \_jokeritem\_ de tal  
manera que se generen tantos módulos como datos provea el mbean:  
  
Ejemplo de configuración.

```
mbean_check_begin
mbean_check_name jms.messagescurrentcount._jokeritem_
mbean_check_module_group jvm.jms
mbean_check_type generic_data
mbean_check_description The current number of messages stored on this JMS server. This
number does not include the pending messages.
mbean com.bea:Name=_jokeritem_,ServerRuntime=_serverruntime_,Type=JMSServerRuntime
attribute MessagesCurrentCount
mbean_check_end
```

**Macro para la selección de server runtime**  
Ahora es posible seleccionar el servidor de runtime objetivo dinámicamente utilizando la macro \_serverruntime\_ .  
  
Ejemplo de configuración:

```
mbean
com.bea:Name=ThreadPoolRuntime,ServerRuntime=_serverruntime_,Type=ThreadPoolRuntime
```

*include*  
Puede especificar tantos archivos de configuración extra como necesite.

**Configuración de entrega de datos**

```
########################################################################
## Request of all list of JMX information
## (Warning!!! this output is very very verbose, so use this check carefully)
########################################################################
#list_all_mbeans
## Report style
as_agent_plugin 0
agent_per_instance 1
## Custom header
module_header jmx_check_
## agent configuration
#agent_name custom_agent_name
#agent_interval 300
#agent_group JMX
## Pandora Server configuration
transfer_mode tentacle
tentacle_ip your.pandora.server.ip
tentacle_port 41121
tentacle_opts
tentacle_client "tentacle_client"
temp /tmp
local_folder /var/spool/pandora/data_in
```

Puede configurar la entrega de los datos en Pandora FMS de varias formas:  
  
*list\_all\_mbeans*  
  
Generará un módulo con una lista en texto con todos los mbeans disponibles.  
  
*as\_agent\_plugin*  
  
Si está activo (1), volcará toda la información de módulos por pantalla en formato  
XML para ser ejecutado desde un agente. Si no lo está (0), entregará la información  
transfiriendo XML completos al servidor configurado como destino.  
  
*agent\_per\_instance*  
  
Si está activo (1), enviará la información de instancias como agentes individuales a  
Pandora FMS.  
  
● Si la monitorización está basada exclusivamente en mbeans, se agruparán por  
servlet.  
  
● Si la monitorización se basa en aplicaciones web (webapp\_info), se crearán tantos  
agentes como aplicaciones web tenga desplegadas.  
  
● Siempre se creará un agente que representa el propio servidor de aplicaciones.  
Si está desactivado (0), se enviará toda la información de módulos en un único  
agente (nombre del servidor de aplicaciones o el especificado en agent\_name ).  
  
*module\_header*  
  
Especifica una cabecera personalizada para los módulos generados por el plugin.  
  
*mode*  
  
Modo de transferencia de ficheros XML, puede ser:  
  
● local: copia los ficheros a local\_folder  
  
● tentacle: transfiere los ficheros a tentacle\_ip por tentacle\_port  
  
*tentacle\_ip*  
  
Dirección IP o FQDN donde Pandora FMS está trabajando.  
  
*tentacle\_port*  
  
Puerto donde el servicio Tentacle asociado a su servidor Pandora FMS está  
escuchando.  
  
*tentacle\_opts*  
  
Opciones extra para el cliente Tentacle.  
  
*tentacle\_client*  
  
Path donde encontrar el binario del cliente Tentacle.  
  
*local\_folder*  
  
Ubicación donde mover los archivos en el modo local.  
  
*temp*  
  
Ubicación temporal donde almacenar los archivos antes de enviarlos.

# Modulos generados por el plugin

La ejecución estándar de este plugin devolverá los siguientes módulos por defecto (con  
todos los bloques opcionales habilitados):  
  
**Monitorización clásica:**   
<span style="text-decoration: underline;">Tomcat :  
</span>

<table border="1" id="bkmrk-active-sessions-max-" style="border-collapse: collapse; width: 100.005%;"><tbody><tr><td style="width: 100%;">Active Sessions</td></tr><tr><td style="width: 100%;">Max Sessions Allowed</td></tr><tr><td style="width: 100%;">Configuración connector SSL</td></tr><tr><td style="width: 100%;">Connector State</td></tr><tr><td style="width: 100%;">JSP Count</td></tr></tbody></table>

<table border="1" id="bkmrk-class-load-time-serv" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">Class Load Time</td></tr><tr><td style="width: 100%;">Servlet count allocated</td></tr><tr><td style="width: 100%;">Servlet load tim</td></tr><tr><td style="width: 100%;">Servlet class</td></tr><tr><td style="width: 100%;">Servlet request count</td></tr></tbody></table>

<table border="1" id="bkmrk-servlet-load-on-star" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">Servlet load on startup</td></tr><tr><td style="width: 100%;">Webmodule configured</td></tr><tr><td style="width: 100%;">Webmodule start time</td></tr><tr><td style="width: 100%;">Webmodule request count</td></tr><tr><td style="width: 100%;">Webmodule state name</td></tr></tbody></table>

  
<span style="text-decoration: underline;">Websphere :  
</span>

<table border="1" id="bkmrk-active-sessions-inva" style="border-collapse: collapse; width: 100.003%; height: 290px;"><tbody><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Active sessions</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Invalid Sessions</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Create count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Close count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Allocate count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Fault count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Percent used</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Uso medio de CPU por componente web</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Cache size</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Directorio home de Websphere</td></tr></tbody></table>

<table border="1" id="bkmrk-m%C3%B3dulos-j2ee-de-un-c" style="border-collapse: collapse; width: 100.004%; height: 290px;"><tbody><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Módulos j2EE de un cierto componente web</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Prevent Jre Memory Leaks</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Detect App CLLeaks</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Bootstrap port</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">ORB Request timeout</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">ORB Request Retries Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Nivel de traza</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Tamaño del buffer de trazas</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Tamaño máximo del pool de hilos</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Tamaño mínimo del pool de hilos</td></tr></tbody></table>

<table border="1" id="bkmrk-inactivity-timeout" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">Inactivity Timeout</td></tr></tbody></table>

  
  
  
<span style="text-decoration: underline;">Weblogic :  
</span>

<table border="1" id="bkmrk-locked-users-current" style="border-collapse: collapse; width: 100.003%;"><tbody><tr><td style="width: 100%;">Locked Users Current Count</td></tr><tr><td style="width: 100%;">Lockout Duration</td></tr><tr><td style="width: 100%;">Lockout Enabled</td></tr><tr><td style="width: 100%;">Invalid Login Attempts Total Count</td></tr><tr><td style="width: 100%;">Pool Max Capacity</td></tr><tr><td style="width: 100%;">Execution Time Average</td></tr><tr><td style="width: 100%;">Invocation Total Count</td></tr><tr><td style="width: 100%;">Diagnostics Read Count</td></tr></tbody></table>

<table border="1" id="bkmrk-diagnostics-delete-c" style="border-collapse: collapse; width: 100.003%; height: 232px;"><tbody><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Diagnostics Delete Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Diagnostics Update Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Diagnostics Create Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Completed Requests</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Bytes Received Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Bytes Sent Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Connections Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Public URL</td></tr></tbody></table>

<table border="1" id="bkmrk-mbean-messages-sent-" style="border-collapse: collapse; width: 100%; height: 232px;"><tbody><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Messages Sent Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Messages Received Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Execution Time Average</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Execution Time Total</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Mbean Invocation Total Count</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Servlet State</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Servlet Server Startup Time</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Servlet Execution Time Average</td></tr></tbody></table>

<table border="1" id="bkmrk-servlet-reload-total" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">Servlet Reload Total Count</td></tr><tr><td style="width: 100%;">Servlet Execution Time High</td></tr><tr><td style="width: 100%;">Servlet Invocation Total Count</td></tr><tr><td style="width: 100%;">Webmodule status</td></tr><tr><td style="width: 100%;">Webmodule Open Sessions High Count</td></tr><tr><td style="width: 100%;">Webmodule Session Invalidation Interval Secs</td></tr><tr><td style="width: 100%;">Webmodule Sessions Opened Total Count</td></tr><tr><td style="width: 100%;">Webmodule Module Id</td></tr></tbody></table>

<span style="text-decoration: underline;">Kafka :</span>

<table border="1" id="bkmrk-active-controller-br" style="border-collapse: collapse; width: 100%; height: 290px;"><tbody><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Active Controller Brokers</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Broker leaders</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Incoming Bytes per second</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Incoming Messages per second</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">ISR expansion Rate</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">ISR shrink rate</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Network processors avg idle time</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Number of disputed leader elections rate</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Offline Controller Brokers</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">Outgoing Bytes per second</td></tr></tbody></table>

<table border="1" id="bkmrk-request-handlers-avg" style="border-collapse: collapse; width: 100.003%;"><tbody><tr><td style="width: 100%;">Request handlers avg idle time</td></tr><tr><td style="width: 100%;">Requests in fetch API purgatory</td></tr><tr><td style="width: 100%;">Requests in producer API purgatory</td></tr><tr><td style="width: 100%;">System’s partitions</td></tr><tr><td style="width: 100%;">Total time to serve a specified request (fetch API consumer)</td></tr><tr><td style="width: 100%;">Total time to serve a specified request (fetch API follower)</td></tr><tr><td style="width: 100%;">Total time to serve a specified request  
(producer API)</td></tr><tr><td style="width: 100%;">Unclear leader election rate</td></tr><tr><td style="width: 100%;">Under-replicated partitions</td></tr></tbody></table>

  
**Ejemplo de monitorización de aplicaciones web** Esta monitorización específica es únicamente compatible con Weblogic en la versión 723  
del plugin.  
  
Con la siguiente configuración básica:  
<textarea style="display: none;">\## Weblogic server\_url http://10.1.2.3:7001/jolokia ## product product weblogic # checks server\_info os\_info webapp\_info include\_internal\_webapps 0 # Specific beans mbean\_check\_begin mbean\_check\_name MemoryUsed mbean\_check\_type generic\_data mbean\_check\_description In Bytes mbean java.lang:type=Memory attribute HeapMemoryUsage path used mbean\_check\_end ## Report style as\_agent\_plugin 0 agent\_per\_instance 1 ## Agent personalization agent\_name my JMX appserver agent\_interval 300 agent\_group JMX ## Pandora Server configuration transfer\_mode tentacle tentacle\_ip your.pandora.server.ip tentacle\_port 41121 tentacle\_opts tentacle\_client "tentacle\_client" temp /tmp local\_folder /var/spool/pandora/data\_in</textarea>

```
## Weblogic
server_url http://10.1.2.3:7001/jolokia
## product
product weblogic
# checks
server_info
os_info
webapp_info
include_internal_webapps 0
# Specific beans
mbean_check_begin
mbean_check_name MemoryUsed
mbean_check_type generic_data
mbean_check_description In Bytes
mbean java.lang:type=Memory
attribute HeapMemoryUsage
path used
mbean_check_end
## Report style
as_agent_plugin 0
agent_per_instance 1
## Agent personalization
agent_name my JMX appserver
agent_interval 300
agent_group JMX
## Pandora Server configuration
transfer_mode tentacle
tentacle_ip your.pandora.server.ip
tentacle_port 41121
tentacle_opts
tentacle_client "tentacle_client"
temp /tmp
local_folder /var/spool/pandora/data_in
```

Esta configuración devolverá los siguientes módulos (recuerde que se creará un agente por cada aplicación web que tenga desplegada en su servidor de aplicaciones).

<span style="text-decoration: underline;">Lista de módulos  
</span>  
Módulos asignados al agente principal (representa el propio servidor de aplicaciones)

<table border="1" id="bkmrk-check_jmx_server_nam" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">check\_jmx\_server\_name</td></tr><tr><td style="width: 100%;">check\_jmx\_server\_vendor</td></tr><tr><td style="width: 100%;">check\_jmx\_memory\_used</td></tr><tr><td style="width: 100%;">check\_jmx\_memory\_alloc</td></tr><tr><td style="width: 100%;">check\_jmx\_memory\_max</td></tr><tr><td style="width: 100%;">check\_jmx\_classes\_loaded</td></tr><tr><td style="width: 100%;">check\_jmx\_classes\_total</td></tr><tr><td style="width: 100%;">check\_jmx\_threads\_current</td></tr></tbody></table>

<table border="1" id="bkmrk-check_jmx_threads_pe" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">check\_jmx\_threads\_peak</td></tr><tr><td style="width: 100%;">check\_jmx\_runtime\_name</td></tr><tr><td style="width: 100%;">check\_jmx\_jvm</td></tr><tr><td style="width: 100%;">check\_jmx\_jvm\_startup</td></tr><tr><td style="width: 100%;">check\_jmx\_max\_file\_desc</td></tr><tr><td style="width: 100%;">check\_jmx\_file\_desc\_open</td></tr><tr><td style="width: 100%;">check\_jmx\_memory\_used</td></tr><tr><td style="width: 100%;">check\_jmx\_MemoryUsed</td></tr></tbody></table>

Módulos asignados a cada uno de los agentes que representan las aplicaciones web  
desplegadas:

<table border="1" id="bkmrk-app_name-state-app_n" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">APP\_NAME State</td></tr><tr><td style="width: 100%;">APP\_NAME InvocationTotalCount</td></tr><tr><td style="width: 100%;">APP\_NAME ReloadTotalCount</td></tr><tr><td style="width: 100%;">APP\_NAME Executiontimetotal</td></tr><tr><td style="width: 100%;">APP\_NAME ExecutionTimeAverage</td></tr><tr><td style="width: 100%;">APP\_NAME Status</td></tr></tbody></table>