
CouchDB Prometheus Exporter 是用于 CouchDB 的指标导出工具,专为 Prometheus 设计。该工具从 CouchDB 的 /_stats 和 /_active_tasks 端点获取指标数据,并将其转换为 Prometheus 可消费的格式,便于监控 CouchDB 实例的性能和运行状态。
/_stats(系统统计)和 /_active_tasks(活跃任务)端点采集核心指标官方提供预构建版本,可从 https://github.com/gesellix/couchdb-prometheus-exporter/releases 获取。若需从源码构建,需先安装 Golang,然后执行:
shellgo install github.com/gesellix/couchdb-prometheus-exporter/v30@v30.4.2
二进制文件将安装至 GOBIN 目录(通常为 $HOME/go/bin),确保该目录在系统 PATH 中,可通过以下命令验证安装:
shellcouchdb-prometheus-exporter --help
基本命令
通过 --help 查看所有配置选项及默认值:
shellcouchdb-prometheus-exporter --help
配置方式
支持三种配置方式,优先级:命令行参数 > 环境变量 > 配置文件。
1. 环境变量
格式:COUCHDB_<参数名>(参数名大写,. 替换为 _),例如:
shellexport COUCHDB_USERNAME=admin export COUCHDB_PASSWORD=secret export COUCHDB_URI=http://couchdb:5984
2. 命令行参数
格式:--<section>.<key> <value>,例如:
shellcouchdb-prometheus-exporter \ --couchdb.username admin \ --couchdb.password secret \ --couchdb.uri http://couchdb:5984
3. 配置文件
支持 "properties" 格式配置文件,通过 --config 指定路径,例如 config.ini:
properties# config.ini couchdb.username=admin couchdb.password=secret couchdb.uri=http://couchdb:5984 databases=db-1,db-2 # 监控指定数据库的磁盘使用
启动命令:
shellcouchdb-prometheus-exporter --config=config.ini
通过 --web.config 参数启用 TLS 和/或 Basic 认证,需指定 YAML 配置文件,例如 web-config.yaml:
yaml# web-config.yaml tls_server_config: cert_file: "path/to/server.crt" # TLS 证书路径 key_file: "path/to/server.key" # TLS 私钥路径 basic_auth_users: alice: $2y$12$1DpfPeqF9HzHJt.EWswy1exHluGfbhnn3yXhR7Xes6m3WJqFg0Wby # 加密后的密码 bob: $2y$18$4VeFDzXIoPHKnKTU3O3GH.N.vZu06CVqczYZ8WvfzrddFU6tGqjR.
启动命令:
shellcouchdb-prometheus-exporter --config=config.ini --web.config=web-config.yaml
密码需通过 bcrypt 加密,可使用工具生成(如
htpasswd -nBC 10 "")。
基本运行命令
shelldocker run --rm -p 9984:9984 \ gesellix/couchdb-prometheus-exporter \ --couchdb.uri=http://couchdb:5984 \ --couchdb.username=admin \ --couchdb.password=secret
注意:容器内无法使用
localhost访问宿主机服务,需使用宿主机 IP 或可解析的域名。
Docker Compose 示例
创建 docker-compose.yml:
yamlversion: '3' services: couchdb-exporter: image: gesellix/couchdb-prometheus-exporter ports: - "9984:9984" environment: - COUCHDB_USERNAME=admin - COUCHDB_PASSWORD=secret - COUCHDB_URI=http://couchdb:5984 - DATABASES=_all_dbs # 监控所有数据库 depends_on: - couchdb couchdb: image: couchdb:3.3 environment: - COUCHDB_USER=admin - COUCHDB_PASSWORD=secret ports: - "5984:5984"
启动:
shelldocker-compose up -d
Docker Swarm/Stack 示例
创建 docker-stack.yml:
yamlversion: '3.8' services: couchdb-exporter: image: gesellix/couchdb-prometheus-exporter ports: - "9984:9984" command: - --couchdb.uri=http://couchdb:5984 - --couchdb.username=admin - --couchdb.password=secret - --databases=_all_dbs deploy: replicas: 1 couchdb: image: couchdb:3.3 environment: - COUCHDB_USER=admin - COUCHDB_PASSWORD=secret ports: - "5984:5984" deploy: replicas: 3 # 模拟 CouchDB 集群
部署:
shelldocker swarm init docker stack deploy --compose-file docker-stack.yml couchdb-monitor
对于 CouchDB 2.x+ 集群,需配置管理员凭证以获取集群指标:
shellcouchdb-prometheus-exporter \ --couchdb.uri=http://couchdb-node-1:5984 \ --couchdb.username=admin \ --couchdb.password=secret
若需仅采集单个节点的本地指标,启用 --scrape.localonly:
shellcouchdb-prometheus-exporter \ --couchdb.uri=http://couchdb-node-1:5984 \ --couchdb.username=admin \ --couchdb.password=secret \ --scrape.localonly=true
指定需监控的数据库(逗号分隔):
shellcouchdb-prometheus-exporter \ --couchdb.uri=http://couchdb:5984 \ --couchdb.username=admin \ --couchdb.password=secret \ --databases=db-1,db-2 # 监控 db-1 和 db-2
监控所有数据库,使用 _all_dbs:
shellcouchdb-prometheus-exporter \ --couchdb.uri=http://couchdb:5984 \ --couchdb.username=admin \ --couchdb.password=secret \ --databases=_all_dbs
导出的指标详情可参考项目中的 https://github.com/gesellix/couchdb-prometheus-exporter/blob/master/README_metrics.md%EF%BC%8C%E6%B6%B5%E7%9B%96%E4%BB%A5%E4%B8%8B%E7%B1%BB%E5%88%AB%EF%BC%9A
参考 Monitoring CouchDB with Prometheus, Grafana and Docker 指南,或使用项目提供的示例栈(包含 CouchDB、Exporter、Prometheus、Grafana):
shellcd examples/grafana docker swarm init docker stack deploy --compose-file docker-traefik-stack.yml example
访问 Grafana(默认地址 http://localhost:3000),导入示例仪表盘即可查看监控数据。
| 配置项 | 环境变量对应 | 描述 | 默认值 |
|---|---|---|---|
couchdb.uri | COUCHDB_URI | CouchDB 服务地址 | http://localhost:5984 |
couchdb.username | COUCHDB_USERNAME | CouchDB 认证用户名 | - |
couchdb.password | COUCHDB_PASSWORD | CouchDB 认证密码 | - |
databases | DATABASES | 需监控磁盘使用的数据库列表(逗号分隔,_all_dbs 表示所有数据库) | - |
scrape.localonly | SCRAPE_LOCALONLY | 是否仅采集本地节点指标(CouchDB 2+ 集群) | false |
web.listen-address | WEB_LISTEN_ADDRESS | 导出器 HTTP 服务地址 | :9984 |
web.config | WEB_CONFIG | TLS/Basic 认证配置文件路径(YAML 格式) | - |
config | - | 配置文件路径(properties 格式) | - |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务