jconsole 连接jmx失败 解决策略

JMX(JAVA 管理拓展)配合Jconsole来使用是用来分析JVM状态的必要途径。所以正确配置JMX很重要。配置主要包含以下几个步骤

1、修改tomcat的实际启动脚本catalina.sh(startup.sh 里面其实是引用了这个脚本,虽然正常启动时用./startup.sh)
 

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=139.224.238.63
-Dcom.sun.management.jmxremote.port=3838
-Dcom.sun.management.jmxremote.rmi.port=3838
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"

 Note:

CATALINA_OPTS这个变量修改是在‘# ----- Execute The Requested Command -----------------------------------------’这句注释下,千万别搞到下面那个if 分支里面,很可能就没走进去导致始终不生效。


-Dcom.sun.management.jmxremote.rmi.port=3838  这个参数很少有人提及,在本人的(centos7+java8)的环境下,不添加这个jconsole是连接不了的。(原因:JMX is base on RMI, which open two port when it start. )
2、防火墙设置,开放端口
vi /etc/sysconfig/iptables 添加-A INPUT -m state --state NEW -m tcp -p tcp --dport 3838 -j ACCEPT   (Dcom.sun.management.jmxremote.rmi.port一致)

重启使其生效 :service iptables restart

3、用户配置
执行cp /usr/java/jdk1.8.0_121/jre/lib/management/jmxremote.* /usr/tomcat/apache-tomcat-7.0.75/conf/ ,将jmxremote.access jmxremote.password 复制到tomcat_base 下的conf目录并更改权限 chmod 600 jmxremote.password chmod 600 jmxremote.access (不修改权限启动tomcat时 catalina.out日志里面会看到报错,tomcat实际没启动成功),并进入修改jmxremote.password最后两行取消注释,用户生效。

4、启动tomcat
到tomcat/bin目录下执行./startup.sh ,可成功访问网站后,尝试用jconsole链接。

jconsole连接远程服务器成功。
 
原文:https://blog.csdn.net/surpassno/article/details/60871396 
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值