JMX (Java Management Extension) est une technologie très puissante qui vous permet d’administrer, de surveiller et de configurer les MBeans de Tomcat.
Si vous êtes un administrateur Tomcat, vous devez savoir comment activer JMX dans Tomcat pour surveiller la mémoire de tas, les threads, l’utilisation du processeur, les classes et configurer divers MBeans.
Dans cet article, je vais vous expliquer comment activer et vous connecter à Tomcat avec JConsole.
Je suppose que vous avez installé Tomcat, si ce n’est pas le cas, vous pouvez vous référer au guide d’installation.
- Allez dans le chemin où vous avez installé Tomcat
- Allez dans le dossier bin
- Créez un fichier “setenv.sh”
- Modifiez le fichier à l’aide de l’éditeur vi et ajoutez ce qui suit
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
- Enregistrez le fichier avec “:w“
- Modifiez l’autorisation du fichier en tant qu’exécutable
chmod 755 setenv.sh
Avant de lancer Tomcat pour vérifier JMX, examinons la configuration ci-dessus.
- Dcom.sun.management.jmxremote.port=9000 – vous pouvez modifier le numéro de port si vous le souhaitez.
- Dcom.sun.management.jmxremote.ssl=false – cela signifie se connecter sans SSL
- Dcom.sun.management.jmxremote.authenticate=false – cela signifie qu’aucune authentification n’est nécessaire lorsque vous utilisez le client JMX pour vous connecter à l’instance Tomcat.
Démarrons Tomcat avec le fichier script startup.sh. Une fois démarré, vous pouvez le vérifier à l’aide de la commande netstat ou ps -ef grep.
Pour vérifier à l’aide de netstat
netstat -anlp | grep 9000
[root@localhost ~]# netstat -anlp |grep 9000 tcp6 0 0 :::9000 :::* LISTEN 9372/java [root@localhost ~]#
Pour vérifier à l’aide de la commande 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 ~]#
Ceci conclut que jmx est activé dans Tomcat et qu’il est temps de se connecter à l’aide du client JMX.
Vous pouvez utiliser n’importe quel client, mais pour vous montrer, j’utiliserai jconsole, qui est fourni avec Java.
Connecter Tomcat JMX à l’aide de Jconsole
- Allez dans le chemin où vous avez jconsole
Astuce : vous pouvez utiliser la commande find pour chercher si vous n’êtes pas sûr.
- Exécutez jconsole
./jconsole
La console de surveillance et de gestion Java s’affiche.
- Sélectionnez “Processus distant”
- Saisissez les détails de l’hôte et du port du serveur
- Cliquez sur “Connect”
Cela se connectera à Tomcat et vous montrera de très beaux graphiques de l’utilisation du CPU, de la mémoire et des threads. Cela s’avère très pratique lors du dépannage.
Vous pouvez également effectuer un GC à partir de la console.
- Cliquez sur l’onglet Memory, et vous verrez le bouton “Perform GC”
Comme mentionné au début de l’article, vous pouvez également configurer des MBeans pour les classes.
Ceci est souvent utilisé si vous devez changer la journalisation ou des paramètres spécifiques au moment de l’exécution.
Allez-y, jouez avec Jconsole et JMX. C’est un outil formidable pour le dépannage et la surveillance.
Si vous souhaitez en savoir plus sur Tomcat, consultez ce tutoriel.