Jvisualvm监控远程SpringBoot项目的过程详解

2022-07-15,,,,

注意:visualvm连接远程服务器有两种方式:jmx和jstatd,两种方式都不能完美支持所有功能,

例如jmx不支持visualgc,

jstatd不支持cpu监控

实际使用可同时配置上并按需选用。

jvisualvm程序添加远程连接,请关闭本机防火墙。

jmx

1.修改springboot启动参数

正常的springboot启动命令为

nohup java -jar demo.jar &

使用监控后:

nohup java -djava.rmi.server.hostname=192.168.81.149 \
-dcom.sun.management.jmxremote \
-dcom.sun.management.jmxremote.port=1099 \
-dcom.sun.management.jmxremote.authenticate=false \
-dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-snapshot.jar &
java -djava.rmi.server.hostname=192.168.81.149 \
-dcom.sun.management.jmxremote \
-dcom.sun.management.jmxremote.port=1099 \
-dcom.sun.management.jmxremote.authenticate=false \
-dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-snapshot.jar

jvm-1.0-snapshot.jar 是项目的 jar包

192.168.81.149 是项目部署的机器ip

1099是jvisualvm需要连接的远程端口号

authenticate=false 不启用,用户认证

2.使用本地jvisualvm监控远程

打开后又可能啥都没有,空荡荡的,这是因为项目需要有人访问下,随便都行

jstatd

1.添加配置

这种方式需要你手动安装jdk才行, 或者你知道jdk在哪里

在jdk目录下的bin创建

vi jstatd.all.policy

我这边指定了绝对路径,方便排除路径方面的影响

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

启动jstatd后台应用 端口(默认为1099) 使用参数-p可指定其它端口

jstatd -j-djava.security.policy=jstatd.all.policy \
-j-djava.rmi.server.hostname=192.168.81.149 \
-j-djava.rmi.server.logcalls=true  -p 1098

(我是在/usr/local/jdk1.8.0_161/bin路径下运行的下面的命令,该路径下就有jstatd.all.policy文件。如果是在其他地方执行,记得指定绝对或相对路径)

其中,

-j-djava.security.policy=jstatd.all.policy 指定路径
-j-djava.rmi.server.logcalls=true  打印日志
-j-djava.rmi.server.hostname=192.168.81.149  指定主机名,主机名应该和你用hostname -i命令执行出来的结果一致。

启动项目

java  -jar jvm-1.0-snapshot.jar

2.使用本地jvisualvm监控远程

这个1,098 其实是我们输入的时候,1098自动转换的

到此这篇关于jvisualvm监控远程springboot项目的文章就介绍到这了,更多相关jvisualvm监控远程springboot内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

《Jvisualvm监控远程SpringBoot项目的过程详解.doc》

下载本文的Word格式文档,以方便收藏与打印。