CouchDB Prometheus Exporter 是用于 CouchDB 的指标导出工具,专为 Prometheus 设计。该工具从 CouchDB 的 /_stats 和 /_active_tasks 端点获取指标数据,并将其转换为 Prometheus 可消费的格式,便于监控 CouchDB 实例的性能和运行状态。
/_stats(系统统计)和 /_active_tasks(活跃任务)端点采集核心指标***提供预构建版本,可从 GitHub 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
支持三种配置方式,优先级:命令行参数 > 环境变量 > 配置文件。
格式:COUCHDB_<参数名>(参数名大写,. 替换为 _),例如:
shellexport COUCHDB_USERNAME=admin export COUCHDB_PASSWORD=secret export COUCHDB_URI=[***]
格式:--<section>.<key> <value>,例如:
shellcouchdb-prometheus-exporter \ --couchdb.username admin \ --couchdb.password secret \ --couchdb.uri [***]
支持 "properties" 格式配置文件,通过 --config 指定路径,例如 config.ini:
properties# config.ini couchdb.username=admin couchdb.password=secret couchdb.uri=[***] 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=[***] \ --couchdb.username=admin \ --couchdb.password=secret
注意:容器内无法使用
localhost访问宿主机服务,需使用宿主机 IP 或可解析的域名。
创建 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=[***] - 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-stack.yml:
yamlversion: '3.8' services: couchdb-exporter: image: gesellix/couchdb-prometheus-exporter ports: - "9984:9984" command: - --couchdb.uri=[***] - --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=[***] \ --couchdb.username=admin \ --couchdb.password=secret
若需仅采集单个节点的本地指标,启用 --scrape.localonly:
shellcouchdb-prometheus-exporter \ --couchdb.uri=[***] \ --couchdb.username=admin \ --couchdb.password=secret \ --scrape.localonly=true
指定需监控的数据库(逗号分隔):
shellcouchdb-prometheus-exporter \ --couchdb.uri=[***] \ --couchdb.username=admin \ --couchdb.password=secret \ --databases=db-1,db-2 # 监控 db-1 和 db-2
监控所有数据库,使用 _all_dbs:
shellcouchdb-prometheus-exporter \ --couchdb.uri=[***] \ --couchdb.username=admin \ --couchdb.password=secret \ --databases=_all_dbs
导出的指标详情可参考项目中的 README_metrics.md,涵盖以下类别:
参考 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 Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429