# Tomcat enterprise plugin # Introducción **Ver**. Julio 2021 Con este plug-in podremos ver los stats de Tomcast
En este documento se explica cómo monitorizar un servidor Tomcat a través del plugin de PandoraFMS. 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/12TomasPrimera versión del pluginv1r1
21/12/12TomasCorregido bugv1r2
14/01/12TomasCorregido bugv1r3
12/02/15MarioPNuevas featuresv1r5
14/04/16BorjaAdaptación a nuevo esquemav2r1
# Preparación del entorno de ejecución La documentación que tiene que entregar el área que solicita la monitorización es: • host: Servidor que aloja el servicio Tomcat. • port: Puerto en el que Tomcat está escuchando. • user: usuario para autenticarse en Tomcat. • pass: contraseña para autenticarse en Tomcat. • https: modo https (1) o http (0). • Disponer de los permisos necesarios para que desde la propia máquina se pueda hacer un curl a la página 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. ``` ``` Quedando esta parte del fichero tomcat-users.xml asi: ``` ``` • 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:** \- Disponer de curl en cada uno de los servidores a monitorizar. Con la instalación del agente de PandoraFMS se incluye esta utilidad \- Disponer de los permisos necesarios para que desde la propia máquina se pueda hacer un curl a la página 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. ``` ``` \- 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:///manager/status?XML=true http:///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/server.xml ``` [![image-1643036449902.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/scaled-1680-/image-1643036449902.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-01/image-1643036449902.png) Ejemplo de fichero de configuración: ``` ## User grants needed: ## v6 - manager-script ## v7 - manager-script ## v8 - manager-script ## v9 - manager-script host=ahorcado.lab.artica.es port=8080 user=admin pass=pandora ## set to 1 if you use https instead of http https=0 ## if you want to ignore host:port config default, you could define a custom url: #custom_url=http://myserver:myport/mymap/ ## Module personalization MODULE_GROUP=Tomcat MODULE_TAGS=Network,Application MODULE_INTERVAL=1 ## Extra identifier (identifies the modules of current instance) instance=T6 ####### Personalize execution ## values 1 (tomcat version <= 6.X) or 0 (tomcat version > 6.X) #compatibility_mode=1 #--------------------- #- monitoring status - #--------------------- enable_application_scan=1 enable_status_monitoring=1 #personalize each section enable_thread_monitoring=1 enable_requestInfo_monitoring=1 enable_workers_monitoring=1 #---------- #- vminfo - #---------- enable_vminfo_memory_information=1 #JVM enable_jvm_memory_monitoring=1 enable_jvm_memorypool_monitoring=1 ``` 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 perl /path/to/file/pandora_tomcat.pl /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 /pandora_tomcat_x86.exe username userpassword http://: ``` # Módulos generados por el plugin Los módulos que devuelven la ejecución de este plugin son los siguientes: Donde \[T6\] es una etiqueta a elección del usuario (instance) ``` [T6][] Status] [T6][] Sessions] [T6]["http-nio-1009"] maxThreads [T6]["http-nio-1009"] currentThreadsBusy [T6]["http-nio-1009"] currentThreadCount [T6]["http-nio-1009"] Threading usage [T6]["http-nio-1009"] bytesReceived [T6]["http-nio-1009"] bytesSent [T6]["http-nio-1009"] processingTime [T6]["http-nio-1009"] maxTime [T6]["http-nio-1009"] errorCount [T6]["http-nio-1009"] requestCount [T6][workers] Current requests [T6][workers] Current BytesReceived [T6][workers] Current BytesSent [T6]["ajp-nio-8909"] maxThreads [T6]["ajp-nio-8909"] currentThreadsBusy [T6]["ajp-nio-8909"] currentThreadCount [T6]["ajp-nio-8909"] Threading usage [T6]["ajp-nio-8909"] bytesReceived [T6]["ajp-nio-8909"] bytesSent [T6]["ajp-nio-8909"] errorCount [T6]["ajp-nio-8909"] requestCount [T6]["ajp-nio-8909"] processingTime [T6]["ajp-nio-8909"] maxTime [T6][workers] Current requests [T6][workers] Current BytesReceived [T6][workers] Current BytesSent [T6][Memory] Heap usage [T6][Memory] Heap committed [T6][Memory] Non-Heap used [T6][Memory] Non-Heap committed [T6][Memory] Non-Heap max [T6][Code Cache] Pool usage [T6][Code Cache] Pool commited [T6][Metaspace] Pool usage [T6][Metaspace] Pool commited [T6][Compressed Class Space] Pool usage [T6][Compressed Class Space] Pool commited [T6][PS Eden Space] Pool usage [T6][PS Eden Space] Pool commited [T6][PS Survivor Space] Pool usage [T6][PS Survivor Space] Pool commited [T6][PS Old Gen] Pool usage [T6][PS Old Gen] Pool commited ```