1 visualVM 使用JMX连接
a 拷贝并改名字到路径:(/app/java/jdk1.8.0_151是java home目录)
源文件:
/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.password.template,
拷贝并改名后:
/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.password
b 并取消注释jmxremote.password 中的如下2行
monitorRole QED
controlRole R&D
c 重新启动程序,启动程序时候添加如下参数(指定visualVM的远程端口9999, 远程主机和jmxremote.password路径):
-Dcom.sun.management.jmxremote.password.file=/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.access -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.33.65.9 -Dcom.sun.management.jmxremote.rmi.port=9999
d 打开visualVM, 新建远程连接,比以JMX方式, 指定主机, 端口, 用户monitorRole, 密码:QED即可连接VisualVM
注意:该方式不支持visualVM的VM GC插件, 查看GC, 可以使用jstatd方式连接
==================================================================================
使用jstatd 启动visualVM:
a 进入jdk bin目录:
cd /app/java/jdk1.8.0_151/bin/
b 创建文件:
vim jstatd.all.policy
c 写入如下内容:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
若没有配置 JDK 环境变量,file 后面添加 tool.jar 的绝对路径
grant codebase "file:/app/java/jdk1.8.0_151/lib/tools.jar" {
permission java.security.AllPermission;
};
d 启动: $JAVA_HOME/bin下启动jstatd进程,启动命令如下,默认监听1099端口,此处修改为3333端口
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=10.33.65.9 -p 3333 -J-Djava.rmi.server.logCalls=true
参数说明:
-J-Djava.security.policy=jstatd.all.policy =号后面的是文件的绝对路径;
-J-Djava.rmi.server.logCalls=true 打开日志,如果客户端有连接过来的请求,可以监控到,便于排错;
-J-Djava.rmi.server.hostname=10.33.65.9 指明本机 hostname 对应的本机地址,确保该地址可以给客户机访问。因为有的服务器 hostname 对应的 ip 不一定是外网能连上的,最好在这里直接明确指定;
-p 3333 指定服务的端口号,默认是1099。也是可选参数。
使用 lsof -i:3333 查看端口是否正常被监听
jvisualvm 添加 ip 为192.168.134.128 端口为 3333 的远程机器,这样可以使用jstatd方式远程监控JVM
启动visualVM的两种方式
最新推荐文章于 2025-10-17 16:12:07 发布
本文介绍了如何通过JMX连接和jstatd方式远程监控Java应用的JVM。首先,详细阐述了配置JMX连接的步骤,包括修改jmxremote.password文件、设置启动参数等。然后,讲解了启动jstatd服务的过程,包括创建jstatd.all.policy文件、设置端口和日志等选项。最后,提到了在VisualVM中建立远程连接的方法,并指出两种方式的区别,jstatd方式不支持VMGC插件但能用于JVM监控。

8641

被折叠的 条评论
为什么被折叠?



