JVisualVM监控JVM-外网服务器
环境说明:
a:阿里云服务器Centos8.2
b:JDK1.8
1:增加JVM运行参数
java -jar 启动时添加一下参数:
-Djava.rmi.server.hostname=外网IP地址
-Dcom.sun.management.jmxremote.port=jmx端口
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote=true
这部分要注意防火墙设置以及服务器安全组的设置。
启动jmx后除了java应用本身占用的端口外会额外占用三个端口,一个指定端口+两个随意监听端口,
这四个端口都必须开放防火墙限制,否则本地的JVisualVM 会无法连接。
使用telnet 调试端口是否可用:
出现这样的提示就表明可以外网连接jmx了。
2:使用JVisualVM连接
我的 JVisualVM.exe 在C:\Program Files\Java\jdk1.8.0_181\bin 目录下,也就是jdk目录。
1:添加远程主机
2:添加远程JMX连接
输入IP+端口即可连接成功(服务器防火墙设置没问题的前提下!)
效果图:
3:总结
其实这玩意在实际工作中没啥用,因为生产项目中不会开通jmx的端口。
还是熟练使用jstat、jmap、jstack、jps 等命令用处更大也更方便!