VisualVM远程连接监控JVM(JMX连接)

2018-11-23  本文已影响0人  wesker8080

VisualVM是JDK自带的一款java应用性能监测工具。它可以做到:

开始

我这里启动的是springboot应用,是以jar包形式启动的哦。
先看一下当前的主机地址是否和公网地址(外网访问的地址)一致

hostname -i

如果显示的地址不一致的话,请先在/etc/hosts文件里添加一行,例如

47.106.xxx.xxx wesker

然后再执行看看生效了没有

hostname wesker
hostname -i

加入启动参数

java \
#添加jmx远程支持start
-Djava.rmi.server.hostname=47.106.xxx.xxx \
-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.port=33306\
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
#添加jmx远程支持end
-jar web.jar

这里没有开户登陆鉴权和ssl连接,所以authenticate=falsessl=false
端口需要配置允许远程访问,具体配置流程可参考我的另一篇文章
阿里云服务器(centos7) 设置mysql账号密码开放3306端口实现远程登陆

VisualVM建立连接

在本地(windows)jdk目录下的bin目录里,打开jvisualvm.exe,右键“远程”添加主机名

image.png
然后添加JMX连接
image.png
输入ip:port直接点击确定完成连接
image.png
如果提示
无法使用 service:jmx:rmi:///jndi/rmi://xxx.xxx.xxx.xxx:33306/jmxrmi 连接到 xxx.xxx.xxx.xxx:33306
请把防火墙关一下
service iptables stop

因为除了JMX server指定的监听端口号外,JMXserver还会监听一到两个随机端口号,如果你不想关闭防火墙可以执行以下操作:

  1. 拿到当前监听的端口
netstat -tupln |grep 33306
image.png
  1. 查看监听的随机端口
#lsof 没有安装的话 安装一个 yum install lsof
lsof -i|grep 2516
image.png
  1. 把这几个端口配置到安全组规则去吧(很麻烦,每次都要设置,所以我直接关防火墙省事多了)

结束

看一下连接成功的界面吧


image.png
上一篇 下一篇

猜你喜欢

热点阅读