You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何配置全局匹配规则的JMX Exporter无法采集Tomcat相关指标

问题原因

你当前遇到的指标缺失问题核心由以下两个常见原因导致:

  1. JMX Exporter运行模式冲突
    你在配置文件中填写了hostPort: localhost:5555参数,该参数是JMX Exporter远程抓取模式的配置项。但你是通过-javaagent参数将Exporter和目标Tomcat进程同进程启动的,该场景属于Java Agent模式,不需要配置hostPort、username、password三个参数。
    添加远程模式参数后,Exporter会放弃同进程直接读取MBean的逻辑,转而通过网络连接本地5555 JMX端口抓取指标。而你配置的JMX端口参数和Javaagent是在同一条启动参数中生效的,Exporter启动时Tomcat的JMX端口、以及Catalina相关的MBean还没有完成初始化注册,就会出现全局匹配也抓不到Tomcat指标的问题。
  2. 版本兼容问题
    你使用的0.15.0版本JMX Exporter存在已知的Catalina域MBean扫描遗漏Bug,部分场景下全局通配规则无法匹配到Tomcat注册的MBean。

修复方案

  1. 首先修改JMX Exporter配置文件config.yaml,删除远程模式相关的三个配置项,仅保留匹配规则即可:
rules:
- pattern: ".*"
  1. 可以同步优化启动参数,删除冗余的JMX远程端口配置,Java Agent模式不需要开放JMX远程端口即可直接读取同进程的所有MBean,优化后的启动参数参考:
JAVA_TOOL_OPTIONS="-javaagent:./jmx_prometheus_javaagent-0.15.0.jar=9404:config.yaml -Djava.security.egd=file:/dev/./urandom -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/camunda"
  1. 如果优化后仍未获取到Catalina相关指标,可以升级JMX Exporter到0.18.0及以上版本,或者在规则最前面新增Catalina域的专用匹配规则:
rules:
- pattern: "Catalina.*"
- pattern: ".*"

修复完成后重启进程,访问http://localhost:9404/metrics搜索Catalina前缀的指标即可验证是否采集成功。


内容的提问来源于stack exchange,提问作者Maksim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:15:00