使用JvisualVM无法连接阿里云linux远程服务器,报错service:jmx:rmi:///...

时间:2024-04-12 13:19:07

需求背景:

       需要观察springboot项目线上堆内存的运行情况。

项目情况:

       1. springboot项目部署到阿里云系统centOS7。

       2. 部署springboot项目命令:

java -jar

-Djava.rmi.server.hostname=35.98.654.698(随便写的ip) 

-Dcom.sun.management.jmxremote

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

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

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

test-0.0.1-SNAPSHOT.jar

        3. 我这边的防火墙是关闭的且在ECS服务器安全组配置9001端口开放,不是关闭的童鞋请自己处理,再此不做说明。

使用步骤:

       1. 打开jdk安装目录 D:\DevelopTools\Jdk\bin ,找到 jvisualvm.exe,打开,展示如下:
       使用JvisualVM无法连接阿里云linux远程服务器,报错service:jmx:rmi:///...

       2. 打开窗口如下,输入,阿里云外网IP+端口号,例如:35.98.654.698:9001,点击确定

使用JvisualVM无法连接阿里云linux远程服务器,报错service:jmx:rmi:///...
      3. 本来以为可以连上的,(꒦_꒦) ,报 “使用service:jmx:rmi:///...无法连接” 字样的错误。查看好多资料,都是说IP不对,或者防火墙没开启之类的,我这边IP是阿里云外网IP,防火墙是关闭的,且9001端口已经加入了安全组开放。

      4. 后来通过查资料了解到,原来JMX server指定的监听端口号外,JMXserver还会监听一到两个随机端口号

      5. 通过 jps -l 命令查到 当前 test-0.0.1-SNAPSHOT.jar 的 pid , 比如是 3297 

      6. 然后使用 lsof -i|grep 3297 命令查到所有的相关端口:
          使用JvisualVM无法连接阿里云linux远程服务器,报错service:jmx:rmi:///...

      7. 然后把以上两个端口 43728 和 44360 添加到阿里云安全组就可以啦,奥利给。

以上原创,转载注明出处,写作不易,如果觉得帮助了你,请支持:

使用JvisualVM无法连接阿里云linux远程服务器,报错service:jmx:rmi:///...