JConsole远程方案

1,找到linux的tomcat的bin/catalina.sh。

2,在Execute The Requested Command上面一行加上下面代码:
这里要注意一下,如果是阿里云服务器,记得开放端口。

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=6969 //连接端口,自定义不要与已有的端口冲突
-Dcom.sun.management.jmxremote.rmi.port=6969 //这句一定要添加,不添加就无法成功
-Dcom.sun.management.jmxremote.authenticate=false //不需要密码登陆,默认true
-Dcom.sun.management.jmxremote.ssl=false //不需要安全证书
-Djava.rmi.server.hostname=106.15.188.221" //这个ip是自己服务器的外网ip

3,重启你的tomcat,查看tomcat是否启动成功,并且观察端口6969是否监听netstat -an|grep 6969。

4,在本地window找到jdk下面的JConsole.exe,选择远程进程,然后输入catalina.sh配置的IP和端口。


image.png

5,因为不是HTTPS连接方式,所以不用HTTPS连接,直接连接就行了。

6,如果需要设置密码,首先将-Dcom.sun.management.jmxremote.authenticate改为true或者去掉这一句。

7,找到密码配置文件/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/management/jmxremote.password,每个人路径不同,全局搜索jmxremote.password。如果没有这个文件,找到jmxremote.password.template文件复制一份。

8,chmod 600 jmxremote.password.template,chmod 600 jmxremote.access,放开读写权限。
vim jmxremote.password,找到最下面被注释的:

monitorRole  QED #这个是读的角色,monitorRole是账号,QED是密码
controlRole  R&D #这个是写的角色,controlRole是账号,R&D是密码

这两个文件的解释在:同目录下的jmxremote.access文件有介绍。

9,重启TOMCAT,重新打开JCsonsole,然后输入对应IP和端口,以及输入账号密码,就能正常访问了。

你可能感兴趣的:(JConsole远程方案)