Zabbix 5使用Tomcat JMX模板时部分监控项不支持该如何解决
JMX监控项异常修复方案
1. 补充缺失的JVM启动参数
你当前的JAVA_OPTS配置缺少RMI端口绑定和跨网络访问权限配置,新增以下参数即可解决大部分监控项不支持的问题:
-Dcom.sun.management.jmxremote.rmi.port=8085 -Dcom.sun.management.jmxremote.local.only=false
说明:RMI端口必须和你配置的jmxremote.port保持一致,避免随机端口被防火墙拦截,未配置该参数会导致部分Tomcat MBean属性无法跨网络拉取,是监控项显示不支持的核心原因。
针对OpenJDK 11的模块化特性,还需要新增以下开放权限参数,解决jconsole连接后空白的问题:
--add-opens java.management/sun.management.jmxremote=ALL-UNNAMED --add-opens java.management/com.sun.jmx.remote.internal=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED
2. 调整Tomcat服务端配置
- 打开
conf/server.xml,新增JMX远程生命周期监听器配置:
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8085" rmiServerPortPlatform="8085" />
- 若启动时提示找不到上述类,需下载对应Tomcat 9版本的
catalina-jmx-remote.jar放入Tomcat的lib目录。
3. 验证操作
修改完所有配置后重启Tomcat,本地执行以下命令测试JMX连接:jconsole service:jmx:rmi:///jndi/rmi://172.17.233.198:8085/jmxrmi
确认jconsole可以正常加载所有MBean属性后,回到监控平台重新同步Template App Apache Tomcat JMX模板的监控项即可恢复所有采集能力。
内容的提问来源于stack exchange,提问作者mehmet_ask
相关产品推荐
相关产品推荐

