打开http://tomcat.apache.org/页面,找到tomcat和jmx插件,下载并解压后,把jmx插件放到tomcat的lib目录内:

mv catalina-jmx-remote.jar apache-tomcat-8.5.29/lib/
mv apache-tomcat-8.5.29 tomcat

修改catalina.sh,增加jmxremote相关的配置项,其有使用认证和不使用认证两种,配置语法如下:

# 不使用认证
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

# 使用认证
-Dcom.sun.management.jmxremote.access.file=jmxuser       //存放用户信息的文件名
-Dcom.sun.management.jmxremote.password.file=jmxpasswd   //存放密码信息的文件名

注意

  1. 建议上面用到的认证文件使用全路径,只使用文件名,启动应用,可能会报错,找不到认证文件;
  2. 密码文件权限需改成600(不使用该权限会报错),具体可以参看${JAVA_HOME}/jre/lib/management/下的jmxremote.access 和 jmxremote.password.template 。

catalina.sh 使用的示例如下:

CATALINA_OPTS="-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=12345 
-Dcom.sun.management.jmxremote.authenticate=true 
-Dcom.sun.management.jmxremote.password.file=/usr/local/jdk1.8.0_102/jre/lib/management/jmxpasswd
-Dcom.sun.management.jmxremote.access.file=/usr/local/jdk1.8.0_102/jre/lib/management/jmxuser
-Dcom.sun.management.jmxremote.ssl=false"

# jmxuser内容
monitor readonly
control readwrite

# jmxpasswd配置
monitor 123456
control www.361way.com

用户名是可以随意起的,然后使用 jps -mlv 或 ps auxf|grep java查找到对应的java程序的pid后,再用jconsole打开对应的程序,命令如下:

% jconsole processID  
% jconsole hostName:portNum

也可以通过jconsole打开图形界面后再选择,见下图:

jconsle

jmx


donation