VisualVM监控远程服务SpringBoot

本文介绍了如何通过VisualVM进行SpringBoot应用的远程监控,包括设置启动参数,解决visual gc提示不支持的问题,以及启动jstatd服务时遇到的端口占用问题。
摘要由CSDN通过智能技术生成
1.启动参数

java -jar \
-Djava.rmi.server.hostname=192.168.14.11 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=2622 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.access.file=/usr/jmxremote.access \
-Dcom.sun.management.jmxremote.password.file=/usr/jmxremote.password \
user.jar

-Djava.rmi.server.hostname 远程服务的地址

需要设置文件权限

chmod 0400 jmxremote.password

2.visual gc提示not supported for this jvm

在自己的jdk里 vim jdk/jre/lib/security/java.policy 加入permission java.security.AllPermission;

如下:

grant { 
// Allows any thread to stop itself using the java.lang.Thread.stop()
// method that takes no argument.
// Note that this permission is granted by default only to remain
// backwards compatible.
// It is strongly recommended that you either remove this permission
// from this policy file or further restrict it to code sources
// that you specify, because Thread.stop() is potentially unsafe.
// See the API specification of java.lang.Thread.stop() for more
        // information.
permission java.lang.RuntimePermission "stopThread";


// allows anyone to listen on un-privileged ports
permission java.net.SocketPermission "localhost:1024-", "listen";


// "standard" properies that can be read by anyone


permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";


permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";


permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.security.AllPermission;
};

3.启动 jstatd -J-Djava.security.policy=jstatd.all.policy

jstatd -J-Djava.security.policy=jstatd.all.policy -p 端口xxx

Could not bind //:xxx/JStatRemoteHost to RMI Registry
java.rmi.NoSuchObjectException: no such object in table
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:303)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:279)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:379)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(RegistryImpl_Stub.java:158)
    at java.rmi.Naming.rebind(Naming.java:177)

端口被占用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值