JMX Exporter 采集异常
2026/6/4 21:54:42 网站建设 项目流程

问题分析:JMX Exporter 采集异常

从你两条 curl 结果,核心异常指标完全一致:

plaintext

jmx_scrape_error 1.0

含义:JMX Exporter 本轮采集失败,无法拉取目标 JVM 的 JMX 指标,只暴露了 exporter 自身监控,没有业务/Hadoop 组件指标。

一、关键现象总结

1. 两个节点 19003 / 29002 端口的 jmx-exporter 进程正常监听、可通;

2. exporter 进程本身无崩溃、配置重载无失败;

3. 核心故障: jmx_scrape_error=1 ,JMX 连接/读取 MBean 失败;

4. 采集耗时 60s 左右,明显超时,是连接超时/认证拒绝/MBean 路径错误典型特征。

二、故障根因(按概率排序)

1. 目标 JVM JMX 服务不可达(最高概率)

- Hadoop 组件(Hive/Spark/Kafka/HDFS 等)JMX 端口未开启、防火墙拦截、IP 绑定 127.0.0.1 仅本地访问;

- 进程挂死、僵死,JMX RMI 服务无响应,导致 exporter 60s 超时报错。

2. JMX 认证/权限问题

目标 JVM 配置了:

- JMX 账号密码认证

- SSL 加密

- 白名单IP限制

但 jmx-exporter 配置文件(.yml)未配置对应账号、SSL、访问白名单,直接拒绝连接。

3. jmx-exporter 配置文件错误

- rules 规则写错、MBean ObjectName 格式非法

- 目标 jmxUrl 填写错误(IP:端口、rmi 路径错误)

- 配置文件挂载/加载异常,但你这里 config_reload_failure_total=0 ,排除配置文件语法错误。

4. 版本兼容问题

当前 exporter 版本: 0.13.1-SNAPSHOT 定制快照版

部分 Hadoop 高版本、JDK11+ 环境,老旧 jmx-exporter 存在 RMI 连接兼容 bug。

三、快速排查步骤(直接照着执行)

步骤1:验证目标JVM原生JMX连通性

先确认被采集的Hadoop组件JMX端口(比如 9010、9011 等)

bash

# 本机测试JMX端口通不通

telnet 目标服务IP JMX端口

# 或

nc -zv 目标服务IP JMX端口

不通 → 防火墙/端口未开放/进程异常。

步骤2:手动测试JMX连接(精准定位)

使用 jconsole / jmxterm 手动连接目标 JMX 地址:

bash

# 示例 rmi 连接格式

service:jmx:rmi:///jndi/rmi://目标IP:JMX端口/jmxrmi

- 连不上 = 目标JMX服务问题

- 要账号密码 = exporter 缺少认证配置

步骤3:查看 jmx-exporter 启动日志

bash

# 查看启动日志、实时报错

journalctl -u jmx-exporter.service -f

# 或容器/进程日志

tail -f 你的exporter日志目录/jmx_exporter.log

日志会直接打印: Connect refused / Timeout / Authentication failed 明确错误。

步骤4:检查 exporter 核心配置

查看启动命令的 config.yml 里的:

yaml

jmxUrl: "service:jmx:rmi://xxxx"

username: ""

password: ""

ssl: false

核对地址、认证、SSL 开关是否和目标 JVM 一致。

四、临时修复方案

1. 重启对应Hadoop组件进程(解决进程僵死、JMX假死);

2. 放行服务器间 JMX 端口、取消 JMX 本地绑定( -Djava.rmi.server.hostname=业务IP );

3. 若有账号密码,在 jmx-exporter 配置中补全认证信息;

4. 临时降低采集超时时间(默认60s太长),优化抓取参数。

五、监控侧影响

- Prometheus 只能拿到 jmx_exporter 自身指标,无 Hadoop 核心指标(内存、GC、线程、队列、读写等全部缺失);

- 大盘、告警、监控面板全部断联,失去该组件观测能力。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询