jConsole – JMX remote access on Tomcat

jconsole-example

In this tutorial, we will show you how to use jConsole to remote access a Tomcat instance, for JVM monitoring stuff.

Tools and environment used :

  1. Ubuntu 13 + Tomcat 7 + 192.168.1.142
  2. Windows 8 + jConsole + 192.168.1.200

1. Tomcat + JMX

To connect with jConsole, Tomcat need to enable the JMX options. To solve it, create a {tomcat-folder}\bin\setenv.sh (if not exists), and put the following values :


-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port={port to access} 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname={optional, allow what ip to access this Tomcat}

for example,

{tomcat-folder}\bin\setenv.sh

export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

Restart Tomcat, now you can connect to this Tomcat via jConsole in port 9999.

2. jConsole Example

2.1 Start jConsole.


c:\>jconsole

2.2 Select “Remote Process”, type the Tomcat ip and port to connect : 192.169.1.142:9999.

jconsole-tomcat-jmx-example

2.3 Clicks on the button “Insecure connection”. Tomcat detail is shown if connection is successful.

jconsole-tomcat-jmx-memory

References

  1. Monitoring and Managing Tomcat
  2. Oracle : jConsole
  3. Wikipedia : jConsole

9 comments on “jConsole – JMX remote access on Tomcat

  1. ManageCat provides free monitoring license to manage and monitor the Apache Tomcat and TomEE instances. Checkout the http://managecat.com to get further information. With ManageCat, there is no need to configure and install anything to monitor your instances.

  2. Did the below changes
    export JAVA_OPTS=”-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/ngs/Users/edam/NewInst/aem02/jmx.password” its throughing error connection failed.

  3. Works fine. But.. stopping tomcat gives the following error:

    Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 2345; nested exception is:
    java.net.BindException: Address already in use

    Result: I can’t stop tomcat.

Leave a Comment

Your email address will not be published. Required fields are marked *