Springboot使用jconsole远程监控JVM

用于监控远程环境Jvm的运行情况

一. 首先在服务器终端设置环境变量,主要是便于每次启动项目时使用:

  1. 在/etc/profile文件的最后加上以下代码

    export JAVA_OPTS='-Djava.rmi.server.hostname=服务器地址(公网ip) -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8617 -Dcom.sun.management.jmxremote.rmi.port=8617 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false'

    使用到的相关命令:
    vim profile
    编辑指令 i
    保存并退出指令 :wq
    配置完成后截图:

  2. 设置环境变量后,用命令重新加载配置文件:source /etc/profile

  3. 参数解析:

  • 配置远程调用主机地址,即jar包运行所在系统的IP地址,不配置则默认使用hosts文件中的值:-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8617
  • 指定JMX的运行端口,jconsole需要对接的既是该端口:-Dcom.sun.management.jmxremote.rmi.port=8617
  • 是否需要进行身份验证:-Dcom.sun.management.jmxremote.authenticate=true
  • 是否允许使用ssl方式接入:-Dcom.sun.management.jmxremote.ssl=false

   注:一步骤只是为了设置统一环境变量,便于jar包启动时同时启动jmx(jconsole)的相关ip,端口,连接账号,密码信息

 

二. jmx的账号密码的设置

  • 切换到服务器jvm的配置路径(路径不确定可以在/etc/profile统一环境变量中找)

以下是我的jvm的配置路径:

  • 配置jmx的账号密码:

切换到你服务器的jvm配置路径:cd /usr/lib/jvm/java-1.8.0-openjdk.x86_64/

拷贝jmxremote.password.template文件到jmxremote.pwssword:

sudo cp jmxremote.password.template jmxremote.password

给jmxremote.password文件添加读写权限

sudo chmod 666 jmxremote.password

修改jmxremote.password文件,取消最后两行的注释,保存退出.

注:再将权限修改为只读(有点坑,我开始没有这一步骤,导致jconsole远程连接失败):

chmod 400 jmxremote.password

这里默认的用户有monitorRole和controlRole,对应的密码分别是QED和R&D

注意:这里的monitorRole只有读权限,而controlRole有读写权限

启动项目进行测试(jar包后台运行):

java $JAVA_OPTS -jar onecard-2.2.0.jar &

三.使用jconsole远程连接:

 

 

 

注:查看指定端口监听状态:

sudo netstat -apn | grep java

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值