VisualVM通过JMX远程连接JVM

Posted qq931399960

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VisualVM通过JMX远程连接JVM相关的知识,希望对你有一定的参考价值。

 

如果本地安装了JDK,则在$java.home/bin/下可找到jvisualvm.exe,双击打开即可使用。否则,去官网下载一个,解压即可使用。现有一个springboot程序springbootdemo.jar,使用JDK中jvisualvm的JMX方式监控该JVM

一、查询hostname

技术图片

二、检查hostname对应ip地址

下面是新装虚拟机hostname对应ip地址

技术图片

三、查询当前机器供外网访问的ip地址

本机ip地址为192.168.102.31

 四、将hostname对应ip地址添加到/etc/hosts文件中

vim /etc/hosts

添加

192.168.102.31 localhost.localdomain

五、启动springboot程序

springbootdemo启动脚本如下,JMX server主监听端口号设置为1566

#!/bin/bash

cd `dirname $0`
/usr/java/jdk1.8.0_162/bin/java -jar -Djava.rmi.server.hostname=192.168.102.31 -Dcom.sun.management.jmxremote.port=1566 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Xms100m -Xmx100m springbootdemo.jar &

 六、开放端口

如果防火墙处于关闭状态,则这一步跳过,否则按照如下步骤操作

1、查询当前进程pid

ps -ef | grep springbootdemo

技术图片

2、查询该java程序监听的端口

lsof -i | grep 38231

技术图片

3、在防火墙中打开所需端口(1566/44518/56989)

需要注意的是,除了JMX监听端口号1566是固定之外,每次启动,另外两个监听端口号都会发生变化,可以使用脚本在启动后获取到另外两个端口,添加到防火墙中,并且移除上一次启动时监听的随机端口

firewall-cmd --permanent --add-port=1566/tcp
firewall-cmd --permanent --add-port=44518/tcp
firewall-cmd --permanent --add-port=56989/tcp

4、重启防火墙使之生效

systemctl restart firewalld.service

5、查看端口开放结果,确认设置成功

firewall-cmd --list-all

七、VisualVM连接该JVM

1、VisualVM打开后,右键远程 -- 》添加运城主机,输入ip地址,确定

技术图片

2、在刚添加的主机上,右键选择添加JMX连接,输入端口号

 技术图片

点击确定后,在主机下面出现一条记录

技术图片

双击打开

技术图片

配置结束

 

 

 

 

以上是关于VisualVM通过JMX远程连接JVM的主要内容,如果未能解决你的问题,请参考以下文章

[工具使用] visualvm 通过jmx不能连接

使用visualvm远程监控LINUX服务器JVM

visualvm 可以通过 JMX 自动连接到远程进程吗?

使用 visualvm 和 JMX 进行远程监控

VisualVM 无​​法分析;连接和其他选项卡工作,但采样器选项卡给出:“无法创建 JMX 连接”

修改jmx远程监控wildfly/jboss配置,然后通过jdk自带的visualvm工具来进行性能监控