JMX (Java Management Extension) é uma tecnologia muito poderosa, que permite administrar, monitorar e configurar Tomcat MBeans.
Se você for um administrador do Tomcat, deve estar familiarizado com como habilitar o JMX no tomcat para monitorar Heap Memory, Threads, CPU Usage, Classes e configure vários MBeans.
Neste artigo, falarei sobre como habilitar e conectar ao Tomcat com o JConsole.
Presumo que você tenha o Tomcat instalado, caso contrário; você pode se referir Guia de instalação .
- Vá para o caminho onde você instalou o Tomcat
- Ir para a pasta bin
- Crie um arquivo como “setenv.sh”
- Modifique o arquivo usando o editor vi e adicione o seguinte
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- Salve o arquivo com “:c “
- Altere a permissão do arquivo como executável
chmod 755 setenv.sh
Antes de iniciar o Tomcat para verificar o JMX, vamos dar uma olhada na configuração acima.
- Dcom.sun.management.jmxremote.port=9000 – você pode modificar o número da porta, se desejar.
- Dcom.sun.management.jmxremote.ssl=false – isso significa conectar sem SSL
- Dcom.sun.management.jmxremote.authenticate=false – isso significa que nenhuma autenticação é necessária quando você usa o cliente JMX para conectar-se à instância do Tomcat.
Vamos iniciar o tomcat por inicialização.sh Arquivo de script. Depois de iniciado, você pode verificar usando netstat ou comando 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 o 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 ~)#
Isso conclui que jmx é habilitado no Tomcat e é hora de conectar usando o cliente JMX.
Você pode usar qualquer cliente, no entanto, para mostrar que usarei jconsole que vem com java.
Conectar Tomcat JMX usando Jconsole
- Vá para o caminho onde você tem jconsole
Dica: você pode usar o encontrar comando para pesquisar se você não tem certeza.
- Executar jconsole
./jconsole
Isso exibirá o Console de gerenciamento e monitoramento Java.
- Selecione “Processo Remoto”
- Digite o host do servidor e os detalhes da porta
- Clique em “Conectar”
Isso se conectará ao Tomcat e mostrará gráficos muito bons de uso de CPU, memória e thread. Isso se torna muito útil durante a solução de problemas.
Você também pode executar GC a partir do console.
- Clique na guia Memory e você verá o botão “Perform GC”
Conforme mencionado no início do artigo, você também pode configurar MBeans para as classes.
Isso geralmente é usado se você precisar alterar o log ou parâmetros específicos em tempo de execução.
Então vá em frente e brinque com Jconsole e JMX. É uma ferramenta maravilhosa para solução de problemas e monitoramento.
Se você estiver interessado em aprender mais sobre o Tomcat, então confira este tutorial .