Cuando se instala Apache Tomcat, además del servidor web y contenedor de servlets, se incluyen varias aplicaciones de administración que permiten gestionar el entorno desde una interfaz web. Estas herramientas facilitan tareas como desplegar aplicaciones, monitorear el servidor, revisar sesiones activas y administrar recursos sin necesidad de modificar archivos manualmente.
El administrador de Apache Tomcat está compuesto principalmente por dos aplicaciones:
- Manager App (Administrador de aplicaciones).
- Host Manager App (Administrador de hosts virtuales).
Ambas herramientas se encuentran protegidas mediante autenticación y utilizan los usuarios definidos en el archivo tomcat-users.xml.
¿Qué es el Tomcat Manager?
Tomcat Manager es una aplicación web incluida por defecto en Apache Tomcat que permite administrar aplicaciones desplegadas dentro del servidor.
Desde esta herramienta es posible:
- Desplegar aplicaciones WAR.
- Iniciar aplicaciones.
- Detener aplicaciones.
- Recargar aplicaciones.
- Eliminar aplicaciones.
- Consultar sesiones activas.
- Revisar información del servidor.
- Monitorear el consumo de memoria.
Normalmente se accede mediante la siguiente URL: http://localhost:8080/manager/html
Roles del Tomcat Manager
Apache Tomcat utiliza un sistema basado en roles para controlar qué acciones puede realizar cada usuario.
Los roles más importantes son:
manager-gui
Permite acceder a la interfaz gráfica web del administrador.
<role rolename="manager-gui"/>
manager-script
Permite administrar Tomcat mediante scripts y herramientas automatizadas utilizando peticiones HTTP.
<role rolename="manager-script"/>
manager-jmx
Permite acceder a operaciones JMX para monitoreo y administración avanzada.
<role rolename="manager-jmx"/>
manager-status
Permite consultar el estado del servidor sin permisos administrativos.
<role rolename="manager-status"/>
Crear un Usuario para el Administrador
Para utilizar el Manager es necesario crear un usuario dentro del archivo:
$CATALINA_HOME/conf/tomcat-users.xml
Ejemplo de configuración:
<tomcat-users>
<role rolename="manager-gui"/>
<user
username="admin"
password="MiPasswordSegura"
roles="manager-gui"/>
</tomcat-users>
Después de realizar los cambios se debe reiniciar Tomcat.
sudo systemctl restart tomcat
Interfaz Principal del Manager
Al iniciar sesión se muestra un panel dividido en varias secciones.
Lista de Aplicaciones
Muestra todas las aplicaciones desplegadas en Tomcat.
Algunas aplicaciones predeterminadas suelen ser:
- /
- /docs
- /examples
- /host-manager
- /manager
Para cada aplicación se muestran opciones como:
- Start
- Stop
- Reload
- Undeploy
Información de Sesiones
Permite visualizar la cantidad de sesiones activas en una aplicación determinada.
Esta información es útil para:
- Aplicaciones empresariales.
- Sistemas ERP.
- Portales web.
- Aplicaciones con autenticación.
Despliegue de Archivos WAR
Una de las funcionalidades más utilizadas es la instalación de aplicaciones Java empaquetadas en formato WAR.
Desde la sección "Deploy" se puede:
- Seleccionar un archivo WAR local.
- Subirlo al servidor.
- Desplegarlo automáticamente.
Ejemplo: mi-aplicacion.war
Una vez desplegado, Tomcat crea automáticamente el contexto correspondiente.
La aplicación podría quedar disponible en: http://localhost:8080/mi-aplicacion
Información del Servidor
El Manager proporciona información detallada sobre el entorno de ejecución.
Entre los datos disponibles encontramos:
- Versión de Apache Tomcat.
- Versión de Java.
- Sistema operativo.
- Arquitectura del procesador.
- Tiempo de actividad del servidor.
- Consumo de memoria JVM.
Esta información resulta muy útil para tareas de soporte y diagnóstico.
Estado del Servidor (Server Status)
La sección Server Status permite monitorear en tiempo real distintos componentes internos del servidor.
Hilos de Ejecución
Tomcat trabaja mediante un conjunto de hilos (threads) que procesan solicitudes HTTP.
El administrador permite visualizar:
- Hilos ocupados.
- Hilos disponibles.
- Máximo de conexiones.
- Solicitudes procesadas.
Memoria JVM
También se puede monitorear el uso de memoria de la Máquina Virtual Java.
Entre los indicadores disponibles encontramos:
- Heap Memory.
- Non-Heap Memory.
- Memoria utilizada.
- Memoria disponible.
- Garbage Collection.
¿Qué es Host Manager?
Host Manager es otra aplicación administrativa incluida en Tomcat.
Su objetivo es administrar Hosts Virtuales.
La URL de acceso suele ser:
http://localhost:8080/host-manager/html
Permite:
- Crear hosts virtuales.
- Eliminar hosts.
- Modificar configuraciones.
- Gestionar múltiples dominios.
Roles para Host Manager
Para acceder al Host Manager es necesario asignar el rol correspondiente.
<role rolename="admin-gui"/>
<user
username="hostadmin"
password="MiPasswordSegura"
roles="admin-gui"/>
Buenas Prácticas de Seguridad
Una de las configuraciones más importantes en producción es proteger las aplicaciones administrativas.
Nunca se recomienda exponer Manager o Host Manager directamente a Internet.
Las mejores prácticas incluyen:
- Restringir acceso por IP.
- Utilizar HTTPS.
- Crear usuarios con contraseñas fuertes.
- Eliminar aplicaciones de ejemplo.
- Asignar únicamente los roles necesarios.
- Usar VPN para acceso administrativo.
- Implementar autenticación adicional mediante proxy inverso.
Administración Mediante Scripts
Tomcat también permite realizar operaciones mediante comandos HTTP.
Por ejemplo, desplegar una aplicación usando curl:
curl -u admin:password \
-T mi-aplicacion.war \
"http://localhost:8080/manager/text/deploy?path=/miapp"
Esta funcionalidad es ampliamente utilizada en procesos CI/CD con herramientas como Jenkins, GitLab CI, GitHub Actions o Azure DevOps.
Resumen
El Administrador de Apache Tomcat es una herramienta fundamental para cualquier administrador o desarrollador Java. Permite desplegar aplicaciones, monitorear recursos, gestionar sesiones y administrar hosts virtuales desde una interfaz web sencilla.
Comprender el funcionamiento del Manager y Host Manager es uno de los primeros pasos para dominar la administración de servidores Tomcat, ya que estas herramientas son utilizadas diariamente en entornos de desarrollo, pruebas y producción para gestionar aplicaciones Java empresariales.