使用Jconsole监测java进程

1. 新建一个springboot项目
@RestController
@SpringBootApplication
public class AppApplication {

  public static void main(String[] args) {
    ConfigurableApplicationContext ctx = SpringApplication.run(AppApplication.class);
  }

  @RequestMapping("/hello")
  public String hello(){
    return "hello";
  }
}
2. maven打成jar包并传入CentOS7服务器
app.jar
3. 修改jdk中jmxremote.password
# 进入到jre中management目录
cd jdk1.8.0_231\jre\lib\management
# 复制一份
cp jmxremote.password.template jmxremote.password
# 修改jmxremote.password
vi jmxremote.password
# 来到jmxremote.password文件的最后, 讲最后两行的注释去掉
# 默认的用户有monitorRole和controlRole,对应的密码分别是QED和R&D, 其中monitorRole只有读权限,而controlRole有读写权限
monitorRole  QED
controlRole  R&D

在这里插入图片描述

# 修改jmxremote.password文件的权限
chmod +w jmxremote.password
chmod 0400 jmxremote.password
# 如果不修改文件权限,那么启动的时候会报以下错误

在这里插入图片描述

4. 启动程序
# 输入JAVA_OPTS参数如下, 其中[192.168.1.101]为程序部署的服务器ip地址,[8888]为暴露的端口
export JAVA_OPTS='-Djava.rmi.server.hostname=192.168.1.101 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.rmi.port=8888 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false'
# 解释以下
-Dcom.sun.management.jmxremote.port=8888 //连接端口
-Dcom.sun.management.jmxremote.rmi.port=8888 
-Dcom.sun.management.jmxremote.authenticate=true //需要密码登陆
-Dcom.sun.management.jmxremote.ssl=false //不需要安全证书
-Djava.rmi.server.hostname=192.168.1.101 //这个ip是自己服务器的ip
5. 启动程序
java $JAVA_OPTS -jar app.jar
6. 用jconsole远程连接进程
  • jconsole位置
本地计算机(这里是window10系统)jdk的bin目录下(jdk1.8.0_231\bin), 有个jconsole.exe文件,双击打开

在这里插入图片描述

  • 连接, 选择不安全的连接

在这里插入图片描述

  • 如下

在这里插入图片描述

  • 如果还是连接失败, 则考虑是不是服务器的防火墙8888端口没有放开
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值