jconsole 连接jmx失败 解决策略

    xiaoxiao2021-03-25  156

    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=192.168.141.129 (服务器ip) -Dcom.sun.management.jmxremote.port=3838 -Dcom.sun.management.jmxremote.rmi.port=3838 -Dcom.sun.management.jmxremote.ssl=false (是否使用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://ju.6miu.com/read-2140.html

    最新回复(0)