JMX (Java Management Extension) es una tecnología muy potente, que le permite administrar, monitorizar y configurar los MBeans de Tomcat.
Si usted es un administrador de Tomcat, entonces usted debe estar familiarizado con la forma de habilitar JMX en tomcat para monitorear la Memoria Heap, Hilos, Uso de CPU, Clases, y configurar varios MBsignifica.
En este artículo, hablaré de cómo habilitar y conectarse a Tomcat con JConsole.
Asumo que tiene Tomcat instalado si no es así; puede consultar la guía de instalación.
- Vaya a la ruta donde tiene instalado Tomcat
- Vaya a la carpeta bin
- Cree un archivo como "setenv.sh"
- Modifique el archivo usando el editor vi y añada lo siguiente
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- Guarde el archivo con ":w“
- Cambie el permiso del archivo como ejecutable
chmod 755 setenv.sh
Antes de iniciar Tomcat para verificar JMX, echemos un vistazo a la configuración anterior.
- Dcom.sun.management.jmxremote.port=9000 - puede modificar el número de puerto si lo desea.
- Dcom.sun.management.jmxremote.ssl=false - esto significa conectar sin SSL
- Dcom.sun.management.jmxremote.authenticate=false - esto significa que no se necesita autenticación cuando se utilice el cliente JMX para conectarse a la instancia Tomcat.
Vamos a iniciar el Tomcat mediante el archivo de script inicio.sh. Una vez iniciado, puede verificar utilizando el comando netstat o ps -ef grep.
Para verificar usando netstat
netstat -anlp | grep 9000
[root@localhost ~]# netstat -anlp |grep 9000 tcp6 0 0 :::9000 :::* LISTEN 9372/java [root@localhost ~]#
Para verificar usando el comando ps
ps -ef |grep jmx
[root@localhost ~]# ps -ef|grep jmx
root 9372 1 0 21:30 pts/0 00:00:04 java -Djava.util.logging.config.file=/home/chandan/Downloads/apache-tomcat-8.0.28/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.endorsed.dirs=/home/chandan/Downloads/apache-tomcat-8.0.28/endorsed -classpath /home/chandan/Downloads/apache-tomcat-8.0.28/bin/bootstrap.jar:/home/chandan/Downloads/apache-tomcat-8.0.28/bin/tomcat-juli.jar -Dcatalina.base=/home/chandan/Downloads/apache-tomcat-8.0.28 -Dcatalina.home=/home/chandan/Downloads/apache-tomcat-8.0.28 -Djava.io.tmpdir=/home/chandan/Downloads/apache-tomcat-8.0.28/temp org.apache.catalina.startup.Bootstrap start root 9816 9781 0 21:46 pts/0 00:00:00 grep --color=auto jmx [root@localhost ~]#
Esto concluye que jmx está habilitado en Tomcat y es hora de conectarse utilizando el cliente JMX.
Puede utilizar cualquier cliente, sin embargo, para mostrarle utilizaré jconsoleque viene con java.
Conectar Tomcat JMX usando Jconsole
- Vaya a la ruta donde tiene jconsole
Consejo: puede utilizar el encontrar comando para buscar si no está seguro.
- Ejecutar jconsole
./jconsole
Aparecerá la consola de supervisión y gestión de Java.
- Seleccione "Proceso remoto"
- Introduzca los datos del servidor y del puerto
- Haga clic en "Conectar"
Esto se conectará a Tomcat y le mostrará gráficos muy agradables del uso de CPU, Memoria e Hilos. Esto resulta muy útil durante la resolución de problemas.
También puede realizar GC desde la consola.
- Haga clic en la pestaña Memoria, y verá el botón "Realizar GC
Como se mencionó al principio del artículo, también puede configurar MBeans para las clases.
Esto se utiliza a menudo si tiene que cambiar el registro o parámetros específicos en tiempo de ejecución.
Así que adelante y juegue con Jconsole y JMX. Es una herramienta maravillosa para la resolución de problemas y la monitorización.
Si está interesado en aprender más sobre Tomcat, consulte este tutorial.