Tomcat enterprise plugin
Recibe datos del Tomcat Server
- Introducción
- Histórico de cambios
- Preparación del entorno de ejecución
- Instalación
- Módulos generados por el plugin
Introducción
Ver. Julio 2021
Con este plug-in podremos ver los stats de Tomcast
La matriz de compatibilidad para el plugin se muestra a continuación:
| Sistemas donde se ha probado |
| Tomcat 6 |
| Tomcat 7 |
| Tomcat 8 |
| Tomcat 9 |
| Sistemas donde debería funcionar |
| Tomcat 6.x y superiores |
Histórico de cambios
| Fecha | Autor | Cambio | Versión |
| 09/05/12 | Tomas | Primera versión del plugin | v1r1 |
| 21/12/12 | Tomas | Corregido bug | v1r2 |
| 14/01/12 | Tomas | Corregido bug | v1r3 |
| 12/02/15 | MarioP | Nuevas features | v1r5 |
| 14/04/16 | Borja | Adaptación a nuevo esquema | v2r1 |
| 11/05/16 | Alejandro S | Adaptación a nueva tecnología | v3r1 |
Preparación del entorno de ejecución
Parámetros
| --conf | Ruta al archivo de configuración |
Archivo de configuración (--conf)
[CONF]
host= < host del entorno de tomcat >
port= < puerto del entorno de tomcat >
user = < usuario de tomcat>
password = < contraseña de tomcat>
https= < habilitar para usar https >
enable_status_monitoring = < Activar para habilitar la monitorizacion de metricas de status >
enable_vminfo_monitoring = < Activar para habilitar la monitorizacion de metricas de vm >
module_prefix = < Prefijo para los módulos >
agent_name = < Nombre para el agente >
agents_group_name = < nombre de grupo para el agente >
interval = < intervalo de creación del agente >
threads = < número de hilos >
temporal = < ruta de directorios temporales >
transfer_mode = < modo de transferencia >
tentacle_ip = < ruta de tentacle >
tentacle_port = < puerto de tentacle >
tentacle_opts = < opciones de tentacle >
data_dir = < ruta de ficheros .data >
allow_regexp = < Patron de regexp. Las métricas que coincidan con el patron se monitorizaran >
deny_regexp = < Patron de regexp. Las métricas que coincidan con el patron se descartaran >
Ejemplo
[CONF]
host=localhost
port=8080
user=admin
password=admin
https=0
enable_status_monitoring=1
enable_vminfo_monitoring=1
module_prefix = tc01
agent_name = Tomcat server
agents_group_name = tomcat
interval = 300
temporal = /tmp
transfer_mode = tentacle
tentacle_ip = 127.0.0.1
tentacle_port = 41121
tentacle_opts =
data_dir = /var/spool/pandora/data_in
allow_regexp = .*
deny_regexp =
• Disponer de los permisos necesarios para que desde la propia máquina se pueda hacer las llamadas en cuestión, un usuario y contraseña en tomcat-users.xml habilitado para acceder al contenido de dicha
página).
Se ha de configurar el usuario para que tenga el rol manager-script, que pueda ver también el listado de instancias.
<user username="user" password="password" roles="manager-script" />
Quedando esta parte del fichero tomcat-users.xml asi:
<tomcat-users>
<!-- otros roles -->
<role rolename="manager-script"/>
<!-- otros usuarios -->
<user username="username" password="password" roles="manager-script" />
</tomcat-users>
• Habilitar el acceso a dicha página así como roles que asignar a usuarios para que puedan obtener su
contenido.
• Conocer versión de Tomcat para conocer el alcance de la monitorización (modo de compatibilidad, para
versiones <= 6.X).
Instalación
Para la extracción de estos datos es necesario:
Se ha de configurar el usuario para que tenga el rol manager-script, que pueda ver también el listado de
instancias.
<user username="user" password="password" roles="manager-script" />
- Habilitar el acceso a dicha página así como roles que asignar a usuarios para que puedan obtener su contenido.
En nuestro caso usamos un Turnkey Apache Tomcat en el cual encontramos dicha página en:
http://<Tomcat-IP-Address><Puerto>/manager/status?XML=true
http://<Tomcat-IP-Address><Puerto>/manager/text/list
Nota: puerto por defecto de Tomcat es 8080
Dicho script va a almacenar ésta página en un archivo temporal y va a extraer los valores correspondientes para cada dato que queramos monitorizar y los va a presentar en formato XML listo para ser introducido en Pandora.
En caso de tener algún problema, puede considerar agregar un conector más del que ya tiene por defecto el servidor Apache Tomcat. Por ejemplo esta configuración:
/etc/tomcat<version>/server.xml
Ejemplo de fichero de configuración:
[CONF]
host=localhost
port=8080
user=admin
password=admin
https=0
enable_status_monitoring=1
enable_vminfo_monitoring=1
module_prefix = tc01
agent_name = Tomcat server
agents_group_name = tomcat
interval = 300
temporal = /tmp
transfer_mode = tentacle
tentacle_ip = 127.0.0.1
tentacle_port = 41121
tentacle_opts =
data_dir = /var/spool/pandora/data_in
allow_regexp = .*
deny_regexp =
Una vez tenemos el script con los valores que queremos monitorizar, lo incluímos en el pandora_agent.conf como un plugin agente. Dicho plugin introducira un módulo para cada uno de esos valores, visible en la interfaz web del servidor Pandora.
Nota: Considere cambiar los permisos del plugin y darle permiso de ejecución.
Ejecución del plugin:
module_plugin /path/to/plugin/pandora_tomcat --conf /path/to/file/pandora_tomcat.conf
Se distribuyen también binarios para su ejecución en Windows, ( pandora_tomcat_x86.exe y pandora_tomcat_x64.exe ) configurándose de la misma forma:
module_plugin <ruta-plugin>/pandora_tomcat_x86.exe --conf <ruta-conf>/pandora_tomcat.conf
Módulos generados por el plugin
Los módulos que devuelven la ejecución de este plugin son los siguientes (se les puede añadir un prefijo utilizando el parámetro module_prefix:
memory_free
memory_total
memory_max
["http-nio-8080"] maxThreads
["http-nio-8080"] currentThreadsBusy
["http-nio-8080"] currentThreadCount
["http-nio-8080"] Threading usage
["http-nio-8080"] maxTime
["http-nio-8080"] processingTime
["http-nio-8080"] requestCount
["http-nio-8080"] errorCount
["http-nio-8080"] bytesReceived
["http-nio-8080"] bytesSent
[workers] Current requests
[workers] Current BytesReceived
[workers] Current BytesSent
vmname
vmversion
vmvendor
uptime
availableprocessors
systemloadaverage
iscurrentthreadcputimesupported
isthreadcputimesupported
isthreadcputimeenabled
isthreadcontentionmonitoringsupported
isthreadcontentionmonitoringenabled
peak
loaded
unloaded
totalloaded
totalcompilationtime
iscompilationtimemonitoringsupported
getcollectioncount
getcollectiontime
heap_init
heap_used
heap_committed
heap_max
non-heap_init
non-heap_used
non-heap_committed
non-heap_max
[CodeHeap 'non-nmethods'] Pool usage
[CodeHeap 'non-nmethods'] Pool commited
[CodeHeap 'profiled nmethods'] Pool usage
[CodeHeap 'profiled nmethods'] Pool commited
[CodeHeap 'non-profiled nmethods'] Pool usage
[CodeHeap 'non-profiled nmethods'] Pool commited
[Compressed Class Space] Pool usage
[Compressed Class Space] Pool commited
[G1 Old Gen] Pool usage
[G1 Old Gen] Pool commited
[Memory] Heap usage
[Memory] Heap committed
[Memory] Non-Heap used
[Memory] Non-Heap committed
[Memory] Non-Heap max