Ceph 导出器
这是一个 Prometheus 导出器,用于抓取运行中的 Ceph 集群的元信息。所有从集群收集的信息都是通过与监视器交互来完成的,使用了 rados_mon_command()
的适当封装。因此,除了有一个正常运行的 Ceph 集群外,不需要额外的设置。
所有收集的指标列表可在 METRICS.md 页面上查看。
依赖项
理想情况下,您应该在可以与 Ceph 集群通信的客户端上运行此导出器。与其他 Ceph 客户端一样,它需要以下文件才能正常运行:
- 包含 Ceph 配置的
ceph.conf
文件。 - 用于向 Ceph 集群认证的
ceph.<用户>.keyring
文件。
如果这些文件存在于任何默认位置,ceph_exporter
将自动识别它们。否则,您需要使用环境变量手动提供配置:
CEPH_CLUSTER
:集群名称(默认为ceph
)CEPH_CONFIG
:Ceph 客户端用于连接集群的配置文件(默认为/etc/ceph/ceph.conf
)CEPH_USER
:用于连接集群的 Ceph 客户端用户(默认为admin
)
我们使用 Ceph 的官方 Golang 客户端在集群上运行命令。
这个 ceph_exporter
分支目前支持 Nautilus、Octopus(未经测试)和 Pacific 版本。它可能无法在较旧或非 LTS 版本的 Ceph 上正常工作。
环境变量
名称 | 描述 | 默认值 |
---|---|---|
TELEMETRY_ADDR | ceph_exporter 指标端点的主机:端口 | *:9128 |
TELEMETRY_PATH | 向 Prometheus 暴露指标的 URL 路径 | /metrics |
EXPORTER_CONFIG | ceph_exporter 配置文件路径 | /etc/ceph/exporter.yml |
RGW_MODE | 启用从 RGW 收集统计信息(0:禁用 1:启用 2:后台) | 0 |
CEPH_CLUSTER | Ceph 集群名称 | ceph |
CEPH_CONFIG | Ceph 配置文件路径 | /etc/ceph/ceph.conf |
CEPH_USER | 连接集群的 Ceph 用户 | admin |
CEPH_RADOS_OP_TIMEOUT | 用于联系集群的 Ceph rados_osd_op_timeout 和 rados_mon_op_timeout(0s 表示无限制) | 30s |
LOG_LEVEL | 日志级别。可选值:[trace, debug, info, warn, error, fatal, panic] | info |
TLS_CERT_FILE_PATH | 启用 TLS 的 x509 证书文件路径(还必须指定密钥文件路径) | |
TLS_KEY_FILE_PATH | 启用 TLS 的 x509 密钥文件路径(还必须指定证书文件路径) |
安装
只要您有 cgo 依赖项,典型的 Go 安装或构建方式应该可以正常工作。
$ go install -tags nautilus
$ go build -o ceph_exporter -tags nautilus
我们专门为 nautilus 构建客户端,但二进制文件也适用于 Octopus 和 Pacific。
Docker 镜像
Docker Hub
官方 docker 镜像可在 digitalocean/ceph_exporter 获取。
从源码构建
您也可以从源码在本地构建自己的镜像。端口 9128
是 ceph_exporter
的默认端口。
导出器需要您的 Ceph 配置才能与 Ceph 监视器建立通信。您可以将其作为附加命令传入,或将包含 ceph.conf
和用户密钥环的目录挂载到 Ceph 检查的默认 /etc/ceph
位置下。
一个示例构建命令如下:
$ docker build -t digitalocean/ceph_exporter .
可以在上述构建命令中添加 --build-args TEST=true
标志,以在构建过程中运行 Golang 的单元测试:
docker build -t digitalocean/ceph_exporter . --build-arg TEST=true --no-cache
现在您可以开始运行 ceph_exporter
容器了。
$ docker run -v /etc/ceph:/etc/ceph -p=9128:9128 -it digitalocean/ceph_exporter
您需要确保您的镜像可以与监视器通信。如果需要访问主机的网络栈,您可能需要在上述命令中添加 --net=host
。这使得端口映射变得多余,因此可以移除 -p
标志。
现在将您的 Prometheus 指向从主机的 :9128
抓取数据(或者如果您决定更改的话,使用您选择的端口)。
贡献
请参阅 CONTRIBUTING 指南,了解有关如何向此存储库提交更改的更多信息。
示例视图
请参阅 ./examples
中的 docker-compose
文件,其中包含 Grafana,如果您想快速搭建一个测试环境。
官方文档解释 docker-compose
的链接:
https://docs.docker.com/compose/
docker-compose
文件本身有注释,说明如何更改它以适应您的环境。它使用卷来持久化数据。Docker 卷文档:https://docs.docker.com/engine/tutorials/dockervolumes/
如果您已设置 promdash,可以生成如下视图:
版权所有 © 2016-2023 DigitalOcean™ Inc.