Java虚拟机性能管理神器 – VisualVM(5) 监控远程主机上的JAVA应用程序

释放双眼,带上耳机,听听看~!

Java虚拟机性能管理神器 – VisualVM(5)  监控远程主机上的JAVA应用程序

   
使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可以在本地对远程主机上的JAVA应用程序进行监控。

1.远程服务器、应用程序配置

        1.1配合jstatd工具提供监控数据  

        1.1.1创建安全访问文件

 
      在
JAVA_HOME/bin目录中,创建名称为
jstatdAllPolicy文件(这个文件名称也可以顺便起,不过要与jstatd启动时指定名称相同),将以下内容拷贝到文件中。并保证文件的权限和用户都正确。

  
      grant codebase"file:${java.home}/../lib/tools.jar"{ permission java.security.AllPermission; };

1.1.2启动

jstatd服务

  
      在
JAVA_HOME/bin目录中,执行以下命令:

 
  
      ./jstatd -J-Djava.security.policy=jstatdAllPolicy
-p 1099 -J-Djava.rmi.server.hostname=192.168.xxx.xxx

**  
      jstatd命令描述以及参数说明:**

   
  
      jstatd
是一个基于
RMI

Remove Method Invocation
)的服务程序,它用于监控基于
HotSpot

JVM
中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的
JVM
执行命令。

  
      -J-Djava.security.policy=jstatdAllPolicy
 指定安全策略文件名称

  
       -p 1099  指定启动端口

  
       -J-Djava.rmi.server.hostname=
192.168.xxx.xxx  指定本机IP地址,在hosts文件配置不正常时使用,最好加上。

1.2JVM启动时配置远程监控选项

  
      在需要远程监控的JVM启动时,开启远程监控选项

  
      -Dcom.sun.management.jmxremote.port=1099

  
      -Dcom.sun.management.jmxremote.ssl=false

  
      -Dcom.sun.management.jmxremote.authenticate=false

  
      -Djava.rmi.server.hostname=192.168.
xxx.xxx

2.本地VisualVM配置

  
      在本地VisualVM的应用程序窗口,
右键单击【远程】》【添加远程主机】》【主机名】中输入远程主机的IP地址,点击【高级设置】输入远程主机开启的监控端口,点击【确定】完成配置。

  
      如果一切正常,就可以看到远程主机上的JAVA应用程序了。

3.常见问题

3.1jstatd启动异常

  
      启动
jstatd时报错,主要原因应该是没有配置安全管理文件或者安全管理文件内容错误,另外就
是因为启动的时候没有指定本机IP地址或者端口。

3.2正常启动jstatd后,本地VisualVM配置远程主机无法显示监控信息

3.2.1防火墙

  
      一般情况下是使用以下命令关闭防火墙


1
2
3
4
5
6
7
8
1[test@master bin]#  service iptables stop
2清除防火墙规则:                                           [确定]
3把 chains 设置为 ACCEPT 策略:filter                       [确定]
4正在卸载 Iiptables 模块:                                  [确定]
5[test@master bin]#  service iptables status
6防火墙已停
7[test@master bin]#
8

3.2.2JDK版本不一致

    如果使用本机JAVA安装包的的J
VisualVM来监控远程应用程序,JDK远程主机的版本和本地JDK版本差别较大就会出现类似问题。需要统一版本,或者下载
VisualVM来监控。

3.2.3IP地址或者端口配置错误

    通过确定远程主机的
IP地址或者端口来解决。

其他文章:

Java虚拟机性能管理神器 – VisualVM(1) 简介 – JVM轻量级监控分析神器

Java虚拟机性能管理神器 – VisualVM(2) 入门

Java虚拟机性能管理神器 – VisualVM(3) 插件安装与更新路径配置

Java虚拟机性能管理神器 – VisualVM(4) – JDK版本与VisualVM版本对应关系

Java虚拟机性能管理神器 – VisualVM(5) 监控远程主机上的JAVA应用程序

Java虚拟机性能管理神器 – VisualVM(6) 排查JAVA应用程序内存泄漏

Java虚拟机性能管理神器 – VisualVM(7) 排查JAVA应用程序线程泄漏

Java虚拟机性能管理神器 – VisualVM(8) 查找JAVA应用程序耗时的方法函数

Java虚拟机性能管理神器 – VisualVM(9) 排查JAVA应用程序线程死锁

给TA打赏
共{{data.count}}人
人已打赏
安全技术

详解Node.js API系列 Crypto加密模块(2) Hmac

2021-12-21 16:36:11

安全技术

从零搭建自己的SpringBoot后台框架(二十三)

2022-1-12 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索