Jconsole或者VisualVM监控远程主机(阿里云,jdk11或者8)

准备: 

1 一个war包或者jar包,这里我用springboot的

2 linux环境,安装tomcat,jdk,我用的jdk11和tomcat9,jdk11和8的拷贝权限文件路径有点不一样,这个需要注意

3 不管是Jconsole还是VisualVM,项目或者tomcat的配置都是一样的!

参考文章:  https://blog.csdn.net/u010004317/article/details/82948040

远程监控WAR包:

1 设置hostname -i 为私有IP,如果是虚拟机ip,需要设置为连接的IP

vim /etc/hosts 添加:

 2  修改catalina.sh文件,设置启动参数,在tomcat /bin目录:

 添加JMX启动参数:

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access -Djava.rmi.server.hostname=公有IP"

3 server.xml添加监听端口,即连接的端口:

 添加监听端口:

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="6379" rmiServerPortPlatform="3306" />

4 拷贝jmxremote权限文件,并编辑

这里jdk11和jdk8目录不一样,jdk11在jdk-11.0.4/conf/management/ 下面,拷贝到tomcat刚才配置的路径即可

编辑jmxremote.password:

编辑jmxremote.access:

 5 添加catalina-jmx-remote.jar:

下载地址:http://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina-jmx-remote   我用的9.0.14,放到tomcat/lib下面,正常启动就可以了

6 测试连接,用配置的用户名或者默认的

注意: 如果连接不通,可以先看端口能否Telnet,然后 hostname -i Ip是否正常!

远程监控JAR包:   (这个实际测试中一直连接失败,暂时没找到原因)

  

项目 pom加入JMX依赖,需要和tomcat版本对应:

tomcat-catalina-jmx-remote: springboot 2.0.6对应的是8.5.34

<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina-jmx-remote -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina-jmx-remote</artifactId>
<version>8.5.34</version>
</dependency>

  权限文件处理和war包一样,jar项目启动直接在后面加上配置权限即可,权限是必须配置的,还有端口在这里直接配置:

java -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=~/jmxremote.password 
-Dcom.sun.management.jmxremote.access.file=~/jmxremote.access -Djava.rmi.server.hostname=47.93.1.227 -Dcom.sun.management.jmxremote.port=8011 -jar springmvc-0.0.1-SNAPSHOT.jar

原文地址:https://www.cnblogs.com/houzheng/p/11646771.html