java vm 远程监控配置文件_VisualVM 配置监控远程 java 应用

一、通过 JMX 方式连接

nohup java -jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false test-1.0-SNAPSHOT.jar -Xms768m -Xmx768m &

java 应用启动时,增加 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 参数;

假设远程主机 ip 为 192.168.99.15,那么通过 add JMX Connection 192.168.99.15:1099 来实现监控。

注:通过该方式连接,Visual GC 插件不工作,因为此插件使用的是 RMI 协议。

二、通过 jstatd 方式连接

[root@centos-linux-1 ~]# cat jvm/jstatdAllPolicy

grant codebase "file:/usr/java/jdk1.8.0_162/lib/tools.jar" {

permission java.security.AllPermission;

};

配置安全策略,之后启动进程:jstatd -J-Djava.security.policy=jvm/jstatdAllPolicy -p 1100。

注:通过该方式连接,Visual 的 MBeans、JConsole Plugins 等插件不工作,因为使用的是 JMX 协议。

三、结合使用

为了使插件都能正常工作,可以把 2 种连接方式结合起来。启动 java 程序时,增加 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 参数;之后通过 jstatd 方式连接。

四、无法连接的情况

不管是 JMX 方式还是 RMI 方式,都需要开放不止一个端口。除了指定的端口之外,还会监听 1~2 个随机端口。

[root@centos-linux-1 ~]# jps -lm

3858 sun.tools.jps.Jps -lm

22086 sun.tools.jstatd.Jstatd -p 1100

[root@centos-linux-1 ~]# lsof -i | grep 22086

jstatd 22086 root 14u IPv6 53969 0t0 TCP *:46497 (LISTEN)

jstatd 22086 root 15u IPv6 53972 0t0 TCP *:mctp (LISTEN)

jstatd 22086 root 16u IPv6 55819 0t0 TCP centos-linux-1.shared:46497->192.168.99.2:54076 (ESTABLISHED)

以上可知,除了开放端口 1100 用于 VisualVM 连接以外,还需要开放随机端口 46497,否则 VisualVM 还是无法连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值