JMX是Sun在Java5中提出的一种用于监控JVM运行状态的框架和规范,通过JMX可以很方便的检测Tomcat集群各个节点的运行状况。了解JMX可以看这篇文章。
具体操作步骤非常简单,首先用文本编辑器打开一个Tomcat节点的Catalina.bat,找到set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties",改为set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties",这里的10090是监控客户端即jconsole通过RMI远程访问JMX代理的端口,注意在一台服务器运行多个tomcat节点时需设置不同端口,笔者设为10090,重启当前tomcat节点。
运行jconsole(在jdk安装目录的bin目录下),输入需要监控的tomcat节点的IP和刚才配置的端口,就可以看到类似下图的界面了,在这个界面里可以了解到当前节点的所有运行时状态信息。