Cómo monitorizar y administrar Apache Tomcat
- Esta guía explica paso a paso cómo añadir Apache Tomcat a Verax NMS, configurar sensores JMX y HTTP, crear contadores de rendimiento y ajustar alarmas y notificaciones.
- Incluye buenas prácticas de seguridad, listas de verificación por rol, un playbook operativo y criterios de aceptación para la implantación.
Introducción
Este documento ofrece una guía completa para monitorizar y gestionar el servidor de aplicaciones Apache Tomcat usando Verax NMS. Cubre desde la incorporación de una instancia al inventario hasta la configuración de sensores, contadores, alarmas y medidas de seguridad.
Definiciones rápidas
- JMX: protocolo Java para gestión y monitorización.
- MBean: objeto gestionado expuesto por JMX que representa métricas o operaciones.
Importante
- No invente credenciales en entornos de producción.
- Compruebe la compatibilidad de versiones entre Tomcat, la JVM y Verax NMS.
Objetivos de la guía
- Añadir una instancia de Apache Tomcat al inventario de Verax NMS.
- Configurar sensores (JMX / HTTP) y contadores de rendimiento.
- Crear políticas de alarma y notificación.
- Implementar buenas prácticas de seguridad para JMX.
Requisitos previos
- Acceso administrativo a Verax NMS.
- Acceso a la máquina o contenedor donde corre Tomcat.
- Permisos para modificar la línea de arranque de la JVM o las variables de entorno.
- Puertos de JMX y HTTP abiertos entre Verax NMS y el host Tomcat (según diseño de red).
1. Añadir Apache Tomcat al inventario de dispositivos
- Acceda a Verax NMS e inicie sesión.
- En el menú principal, seleccione Home.
- En la vista de aspectos (aspect tree) a la izquierda, seleccione el dispositivo que ejecuta la instancia de Tomcat.

- En la ficha Summary, seleccione Manage applications desde la sección de acciones.

- En el menú contextual, elija Add application y haga clic en Go. Aparecerá un diálogo.

- Seleccione Add application en el contexto y, en el diálogo, elija Apache Tomcat dentro de Application types.

Parámetros específicos que le pedirá el sistema:
- Instance name: nombre descriptivo para la instancia.
- Host: dirección IP o nombre del host donde corre Tomcat.
- Port: puerto del servidor de aplicaciones (puede ser HTTP o JMX según el sensor).
- User / Password: credenciales si la conexión lo requiere.
- JMX Connection / JMX User / JMX Password: URL y credenciales para JMX si se usa.
- Rellene los campos y haga clic en Save changes.
- El sistema preguntará si desea añadir un conjunto por defecto de sensores; en esta guía los añadiremos manualmente, así que seleccione No.
- La nueva instancia de Apache Tomcat aparecerá en la categoría Managed Applications dentro del nodo del host en el aspecto árbol.

Consejos rápidos
- Cree nombres de instancia que indiquen el entorno (por ejemplo: tomcat-app-prd-01).
- Si tiene múltiples aplicaciones Tomcat en el mismo host, cree una instancia por aplicación para métricas separadas.
2. Configuración de JMX en Tomcat
Para recopilar métricas desde Tomcat por JMX, active JMX en la JVM de Tomcat. En Windows se suele configurar con la variable CATALINA_OPTS; en Linux puede añadirse en setenv.sh o en el servicio systemd.
Ejemplo de opciones JVM (ajuste el puerto según su entorno):
set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=%my.jmx.port% \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=falseNota técnica
- En producción, no deje authenticate=false ni ssl=false. Use autenticación y/o túneles seguros (VPN o SSH) o habilite SSL para JMX.
- Consulte la documentación oficial de Tomcat para detalles: http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
3. Tipos de sensores disponibles para Apache Tomcat
Los sensores en Verax NMS son monitores activos que consultan servicios y validan respuestas. Para Tomcat, por defecto encontrará:
- JMX Operation: invoca una operación en un MBean y valida que devuelva resultado.
- JMX Attribute: lee un atributo de un MBean y valida su valor.
- HTTP: consulta una URL HTTP/HTTPS y valida el código de respuesta y/o el contenido con una expresión regular.
Cuándo elegir cada sensor
- Use JMX Attribute para métricas numéricas (threads, pool sizes, conexiones).
- Use JMX Operation para verificar acciones (por ejemplo, forzar garbage collection) o comprobar métodos expuestos.
- Use HTTP para comprobar la disponibilidad de aplicaciones web y experiencia de usuario (response time, cadenas en HTML).
4. Añadir sensores para Apache Tomcat en Verax NMS
- Seleccione el dispositivo en el aspecto árbol en Home.
- Vaya a la pestaña Monitors y haga clic en Sensor list para ver la lista de sensores.

- Seleccione Add en el menú de acciones y haga clic en Go. Aparecerá el asistente.
- Elija el tipo de sensor y haga clic en Next.

- Rellene los parámetros específicos del sensor (MBean, atributo, URL, código de respuesta, expresión regular, intervalos, timeouts) y haga clic en Finish.
- Los sensores añadidos aparecerán en la lista bajo Monitors.
Ejemplo práctico: sensor JMX Attribute
- MBean: Catalina:type=ThreadPool,name=”http-bio-8080”
- Attribute: currentThreadsBusy
- Umbral: advertencia > 50, crítico > 80
Ejemplo práctico: sensor HTTP
- URL: http://{host}:8080/miapp/health
- Response code: 200
- Body regex: “\bUP\b” (valida que la respuesta contenga la palabra UP)
5. Plantillas y contadores de rendimiento recomendados
Métricas clave a monitorizar
- Uso de threads (currentThreadsBusy / maxThreads)
- Pool de conexiones JDBC (active, idle)
- Latencia de solicitudes (si se expone vía MBeans o APM)
- Uso de heap y GC (desde la JVM vía JMX)
- Número de sesiones activas por webapp
Plantillas
- Cree plantillas para cada tipo de aplicación (API, frontend, batch) y reutilícelas.
- Use contadores basados en JMX para gráficos históricos y alertas por tendencia.
Mini metodología para definir contadores
- Identifique KPIs de la aplicación (latencia, error rate, throughput).
- Correlacione esos KPIs con MBeans disponibles.
- Defina umbrales basados en líneas base (baseline) y picos esperados.
- Revise umbrales tras 2–4 semanas de datos reales.
6. Alarma y políticas de notificación
Buenas prácticas
- Defina niveles: warning, critical, recovery.
- Evite alertas por fluctuaciones breves configurando retardo o número de violaciones consecutivas.
- Envíe notificaciones por roles: operaciones, desarrolladores, SRE.
Ejemplo de política
- Alerta warning si currentThreadsBusy > 50 durante 3 muestras consecutivas.
- Escale a critical si persiste 10 minutos.
- Notificar canal de soporte y abrir ticket automático si critical.
7. Tomcat plugin — visión general
El plugin de Tomcat en Verax NMS actúa como adaptador entre JMX y el sistema de monitorización. Extrae MBeans y los mapea a contadores y sensores.
Consejos
- Mantenga el plugin actualizado.
- Verifique compatibilidad con la versión de Tomcat y JVM.
8. Playbook operativo para incidentes críticos
Pasos rápidos (Playbook)
- Detectar: recibir alerta desde Verax NMS.
- Correlacionar: identificar sensores afectados y revisar gráficos de los últimos 30 minutos.
- Contener: si es posible, reiniciar la aplicación de forma controlada o activar el modo mantenimiento.
- Mitigar: aumentar recursos temporales (p. ej. añadir instancias) o aplicar rollback de despliegue reciente.
- Resolver: aplicar corrección definitiva con equipo de desarrollo.
- Postmortem: registrar causa raíz, acciones y medidas preventivas.
Criterios de aceptación
- Las métricas críticas (latencia, error rate) vuelven a valores normales en 30 minutos.
- No hay pérdida de datos de usuario.
- Se registra un informe de incidentes con causa raíz y plan de mitigación.
9. Listas de verificación por rol
SRE / Operaciones
- Verificar conectividad JMX y HTTP desde Verax NMS.
- Revisar GC y uso de heap.
- Comprobar colas y pool de conexiones.
Desarrollo
- Validar cambios de configuración y pruebas de carga.
- Revisar logs de aplicación correlacionados con timestamps de la alerta.
Seguridad
- Asegurar que JMX no está expuesto sin autenticación.
- Revisar controles de acceso y cifrado entre Verax NMS y Tomcat.
10. Seguridad y endurecimiento para JMX
Recomendaciones
- Habilite autenticación JMX y defina usuarios con permisos mínimos.
- Active SSL/TLS para JMX o conecte mediante túnel SSH/VPN.
- Restrinja el puerto de JMX por firewall a las IPs de Verax NMS.
- No use com.sun.management.jmxremote.authenticate=false en producción.
Alternativas
- Proxy JMX o agente que reexponga métricas por HTTP(s) con autenticación.
11. Resolución de problemas comunes
Conectividad JMX fallida
- Verifique que el puerto JMX está escuchando en el host.
- Confirme que no hay firewall entre Verax NMS y Tomcat.
- Compruebe los logs de la JVM para errores de JMX.
Sensores HTTP fallan intermitentemente
- Revise timeouts y latencias de red.
- Compruebe que la aplicación responde bajo carga con una prueba de carga ligera.
Métricas inconsistentes
- Asegúrese de que el agente JMX no está cacheando valores antiguos.
- Verifique que las MBeans consultadas sean las correctas para la versión de Tomcat.
12. Decision tree para elegir sensor
flowchart TD
A[¿Necesita comprobar una URL pública?] -->|Sí| B[Sensor HTTP]
A -->|No| C[¿Métrica expuesta por JMX?]
C -->|Sí| D[JMX Attribute]
C -->|No| E[JMX Operation o plugin personalizado]
D --> F{¿Valor numérico?}
F -->|Sí| G[Crear contador + alarmas]
F -->|No| H[Monitoreo de estado/texto]13. Mantenimiento y evolución
- Revise plantillas y umbrales cada trimestre.
- Automatice despliegues de sensores para nuevos hosts usando IaC cuando sea posible.
- Añada pruebas de aceptación que verifiquen que los sensores críticos se disparan en entornos de staging.
14. Glosario breve
- KPI: métrica clave de rendimiento.
- SRE: ingeniería de fiabilidad del sitio.
- IaC: infraestructura como código.
Resumen final
Monitorizar Tomcat con Verax NMS requiere: añadir la instancia al inventario, configurar JMX y/o HTTP, definir contadores y políticas de alarma, y aplicar endurecimiento de seguridad. Use las listas de verificación y el playbook para manejar incidentes y revise umbrales tras observar datos reales.
Notas importantes
- No exponga JMX sin asegurar la comunicación.
- Ajuste umbrales en función de la línea base del servicio.
Materiales similares
Podman en Debian 11: instalación y uso
Apt-pinning en Debian: guía práctica
OptiScaler: inyectar FSR 4 en casi cualquier juego
Dansguardian + Squid NTLM en Debian Etch
Arreglar error de instalación Android en SD