
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
MongoDB Exporter是一个Prometheus导出器,用于收集MongoDB数据库的监控指标,包括分片、复制和存储引擎等方面的性能数据。该实现能够处理MongoDB监控命令公开的所有指标,通过循环遍历诊断命令中公开的所有字段并尝试从中获取数据。
目前实现了以下指标来源:
| 旧版Percona MongoDB Exporter |
|---|
旧版0.1x.y版本(原master分支)已迁移至release-0.1x分支。 |
如果考虑从旧版导出器迁移,可以使用--compatible-mode标志以旧指标名称公开指标。 |
| 这将简化向新版本的迁移过程。 |
构建过程使用dockerized版本的goreleaser,无需安装Go环境:
bashmake release
生成的二进制文件将位于build目录下:
├── build │ ├── config.yaml │ ├── mongodb_exporter_7c73946_checksums.txt │ ├── mongodb_exporter-7c73946.darwin-amd64.tar.gz │ ├── mongodb_exporter-7c73946.linux-amd64.tar.gz │ ├── mongodb_exporter_darwin_amd64 │ │ └── mongodb_exporter <--- MacOS二进制文件 │ └── mongodb_exporter_linux_amd64 │ └── mongodb_exporter <--- Linux二进制文件
Docker镜像可从Docker Hub获取:https://hub.docker.com/repository/docker/percona/mongodb_exporter
Docker Run示例
bashdocker run -d -p 9216:9216 percona/mongodb_exporter \ --mongodb.uri=mongodb://user:pass@mongodb-host:27017/admin?ssl=true \ --compatible-mode
Docker Compose示例
yamlversion: '3' services: mongodb_exporter: image: percona/mongodb_exporter ports: - "9216:9216" command: - --mongodb.uri=mongodb://user:pass@mongodb:27017/admin?ssl=true - --compatible-mode - --mongodb.collstats-colls=testdb.testcol depends_on: - mongodb mongodb: image: mongo ports: - "27017:27017" environment: - MONGO_INITDB_ROOT_USERNAME=user - MONGO_INITDB_ROOT_PASSWORD=pass
连接用户需要有足够的权限来查询所需的统计信息:
javascript{ "role": "clusterMonitor", "db": "admin" }, { "role": "read", "db": "local" }
有关MongoDB角色的更多信息,请参阅官方文档。
环境变量
| 环境变量 | 描述 | 示例 |
|---|---|---|
| MONGODB_URI | MongoDB连接URI | mongodb://user:pass@127.0.0.1:27017/admin?ssl=true |
命令行参数
| 参数 | 描述 | 示例 |
|---|---|---|
| -h, --help | 显示上下文相关帮助 | |
| --compatible-mode | 同时以新旧格式公开新指标 | |
| --discovering-mode | 启用从collstats-colls和indexstats-colls中设置的数据库自动发现集合 | |
| --mongodb.collstats-colls | 逗号分隔的要获取统计信息的数据库.集合列表 | --mongodb.collstats-colls=testdb.testcol1,testdb.testcol2 |
| --mongodb.direct-connect | 是否建立直接连接。如果指定了多个主机或使用SRV URI,则直接连接无效 | --mongodb.direct-connect=false |
| --mongodb.indexstats-colls | 逗号分隔的要获取索引统计信息的数据库.集合列表 | --mongodb.indexstats-colls=db1.col1,db1.col2 |
| --mongodb.uri | MongoDB连接URI (可通过MONGODB_URI环境变量设置) | --mongodb.uri=mongodb://user:pass@127.0.0.1:27017/admin?ssl=true |
| --mongodb.global-conn-pool | 使用全局连接池而不是为每个HTTP请求创建新连接 | |
| --web.listen-address | Web界面和遥测的监听地址 | --web.listen-address=":9216" |
| --web.telemetry-path | 指标公开路径 | --web.telemetry-path="/metrics" |
| --log.level | 仅记录给定严重性或更高级别的消息。有效值: [debug, info, warn, error] | --log.level="error" |
| --disable.diagnosticdata | 禁用从getDiagnosticData收集指标 | |
| --disable.replicasetstatus | 禁用从replSetGetStatus收集指标 | |
| --disable.dbstats | 禁用从dbStats收集指标 | |
| --version | 显示版本并退出 |
基本运行
bashmongodb_exporter --mongodb.uri=mongodb://127.0.0.1:17001
启用集合统计指标收集
bashmongodb_exporter --mongodb.uri=mongodb://127.0.0.1:17001 --mongodb.collstats-colls=db1.c1,db2.c2
启用兼容性模式
启用兼容性模式后,导出器将同时以新的命名和标签模式以及版本1兼容的方式公开所有新指标:
bashmongodb_exporter --mongodb.uri=mongodb://127.0.0.1:17001 --compatible-mode
例如,新格式指标:
# HELP mongodb_ss_wt_log_log_bytes_written serverStatus.wiredTiger.log. # TYPE mongodb_ss_wt_log_log_bytes_written untyped mongodb_ss_wt_log_log_bytes_written 2.6208e+06
将同时以旧格式公开:
HELP mongodb_mongod_wiredtiger_log_bytes_total mongodb_mongod_wiredtiger_log_bytes_total # TYPE mongodb_mongod_wiredtiger_log_bytes_total untyped mongodb_mongod_wiredtiger_log_bytes_total{type="unwritten"} 2.6208e+06
导出器在所有指标中设置了一些拓扑标签:
| 服务器类型 | 标签 |
|---|---|
| mongos | mongos |
| 常规实例(主节点或从节点) | shardsvr |
| 仲裁节点 | shardsvr |
| 独立节点 | (空字符串) |
getDiagnosticData() -> replSetGetStatus.myState返回的整数。有关副本集状态值的详细信息,请查看官方文档。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 percona/mongodb_exporter 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: