
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
JMX Exporter是一款将JMX指标转换为Prometheus可采集格式的工具,能够配置化地抓取并暴露JMX目标的mBeans。该工具主要设计为Java Agent运行,通过HTTP服务器暴露本地JVM的指标;也可作为独立HTTP服务器抓取远程JMX目标,但存在配置复杂、无法暴露进程指标(如内存和CPU使用)等缺点,因此强烈推荐以Java Agent方式运行。
适用于需要监控Java应用JVM状态及应用自定义JMX指标的场景,如:
1. 作为Java Agent运行
bashjava -javaagent:./jmx_prometheus_javaagent-0.12.0.jar=8080:config.yaml -jar yourJar.jar
http://localhost:8080/metrics 访问host:port(如 192.168.1.100:8080:config.yaml)2. 作为Docker容器运行
bashdocker run -v /path/to/config.yml:/etc/jmx_exporter/config.yml:ro scrapinghub/jmx_exporter:latest
执行 mvn package 命令构建项目。
配置文件采用YAML格式,以下是包含所有可能选项的示例:
yaml--- startDelaySeconds: 0 hostPort: 127.0.0.1:1234 username: password: jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi ssl: false lowercaseOutputName: false lowercaseOutputLabelNames: false whitelistObjectNames: ["org.apache.cassandra.metrics:*"] blacklistObjectNames: ["org.apache.cassandra.metrics:type=ColumnFamily,*"] rules: - pattern: 'org.apache.cassandra.metrics<type=(\w+), name=(\w+)><>Value: (\d+)' name: cassandra_$1_$2 value: $3 valueFactor: 0.001 labels: {} help: "Cassandra metric $1 $2" type: GAUGE attrNameSnakeCase: false
配置参数说明
| 参数名 | 描述 |
|---|---|
| startDelaySeconds | 启动延迟时间(秒),延迟期间的请求返回空指标集 |
| hostPort | 远程JMX连接的主机和端口,若未指定hostPort和jmxUrl则连接本地JVM |
| username | 远程JMX密码认证的用户名 |
| password | 远程JMX密码认证的密码 |
| jmxUrl | 完整的JMX连接URL,与hostPort不可同时指定 |
| ssl | 是否通过SSL进行JMX连接,配置证书需设置系统属性:-Djavax.net.ssl.keyStore=/home/user/.keystore-Djavax.net.ssl.keyStorePassword=changeit-Djavax.net.ssl.trustStore=/home/user/.truststore-Djavax.net.ssl.trustStorePassword=changeit |
| lowercaseOutputName | 指标名称转为小写,适用于默认格式和name配置,默认false |
| lowercaseOutputLabelNames | 指标标签名转为小写,适用于默认格式和labels配置,默认false |
| whitelistObjectNames | 要查询的ObjectNames列表,默认查询所有mBeans |
| blacklistObjectNames | 不查询的ObjectNames列表,优先级高于whitelistObjectNames,默认无 |
| rules | 按顺序应用的规则列表,匹配第一个规则后停止处理,未匹配的属性不采集;未指定时默认采集所有指标 |
| pattern | 匹配bean属性的正则表达式,非锚定,捕获组可用于其他选项,默认匹配所有 |
| attrNameSnakeCase | 将属性名转为蛇形命名(如anAttrName→an_attr_name),影响pattern匹配和默认格式,默认false |
| name | 指标名称,可使用pattern的捕获组,未指定时使用默认格式;若为空则停止处理该属性 |
| value | 指标值,可使用静态值或pattern的捕获组,未指定时使用mBean的原始值 |
| valueFactor | 数值因子,将value(或原始mBean值)乘以该因子(如毫秒转秒) |
| labels | 标签键值对映射,可使用pattern的捕获组,需设置name,空键/值将被忽略,未指定时无标签 |
| help | 指标帮助文本,可使用pattern的捕获组,需设置name,默认使用mBean属性描述和全名 |
| type | 指标类型,可选GAUGE、COUNTER或UNTYPED,需设置name,默认UNTYPED |
指标名和标签名将被 sanitize 处理:除
[a-zA-Z0-9:_]外的字符替换为下划线,相邻下划线会被合并;标签值和帮助文本无限制。
最小配置
{}(空配置)将连接本地JVM并以默认格式采集所有指标。注意:即使指标未导出,scraper仍会处理所有mBeans。
模式输入格式
pattern匹配的输入格式为:
domain<beanpropertyName1=beanPropertyValue1, beanpropertyName2=beanPropertyValue2, ...><key1, key2, ...>attrName: value
| 部分 | 描述 |
|---|---|
| domain | Bean名称,JMX对象名中冒号前的部分 |
| beanProperyName/Value | Bean属性,JMX对象名中冒号后的键值对 |
| keyN | 遇到复合或表格数据时,属性名会添加到此列表 |
| attrName | 属性名,表格数据时为列名;若设置attrNameSnakeCase则转为蛇形命名 |
| value | 属性值 |
除attrNameSnakeCase的转换外,这些值不会被转义或修改。默认帮助文本包含此字符串(不含value)。
默认格式
默认格式会将beans转换为合理的指标命名,格式为:
domain_beanPropertyValue1_key1_key2_...keyN_attrName{beanpropertyName2="beanPropertyValue2", ...}: value
未设置的部分会被忽略。
执行 mvn test 命令运行测试。
可通过独立模式启动JMX scraper调试调用情况:
bashgit clone https://github.com/prometheus/jmx_exporter.git cd jmx_exporter mvn package java -cp collector/target/collector*.jar io.prometheus.jmx.JmxScraper service:jmx:rmi:your_url
如需更详细日志(包括每个JMX调用的耗时),创建logging.properties文件:
handlers=java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level=ALL io.prometheus.jmx.level=ALL io.prometheus.jmx.shaded.io.prometheus.jmx.level=ALL
并在Java启动命令中添加:
bash-Djava.util.logging.config.file=/path/to/logging.properties
构建过程中会生成Debian二进制包,可用于将可执行文件安装到/usr/bin/jmx_exporter,配置文件位于/etc/jmx_exporter/jmx_exporter.yaml。
Java Agent的示例配置可参考:https://github.com/prometheus/jmx_exporter/tree/master/example_configs
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务