使用 Ceph RGW Exporter 监控 Ceph RGW
Alauda Storage Exporter 是一个 Operator,可从 Ceph RGW(RADOS Gateway)Admin Ops API 收集使用情况、存储桶和用户指标,并以 Prometheus 格式公开这些指标。Rook 的内置监控涵盖 Ceph 集群自身的运行状况,但不涵盖对象存储租户:每个用户存储了多少数据、一个存储桶包含多少对象,或配额是否即将耗尽。此 Operator 填补了这一空白。
安装后,Operator 会监视集群中的每个 CephObjectStore,并自动为每个对象存储部署一个 exporter,同时创建一个只读 RGW 用户和一个 ServiceMonitor。无需手动处理任何凭据。
术语
前提条件
- 已安装 Alauda Storage,且至少有一个
CephObjectStore处于Ready阶段。请参阅 Ceph Distributed Storage。 - Alauda Storage Exporter Operator 软件包已在 OperatorHub 中可用。在 air-gapped 集群上,请先按照 Upload Packages 中的说明上架该软件包。
- 若要在平台中查看指标,集群上必须安装监控插件(Prometheus 或 VictoriaMetrics)。请参阅 Monitoring Installation。不安装该插件 exporter 也可以正常工作,但不会有任何组件抓取这些指标。
工作原理
- Operator 监视
CephObjectStore资源。对于它创建的每个对象存储<store>,Operator 会在同一命名空间中创建:- 一个名为
rgw-exporter-user-<store>的CephObjectStoreUser,具有只读的bucket、user、metadata和usage功能; - 一个名为
rgw-exporter-<store>的CephRGWExporter,并添加ceph.alauda.io/auto-created: "true"注解。
- 一个名为
- 对于每个
CephRGWExporter,Operator 会协调一个 Deployment、一个 Service(端口为9242,名称为http-metrics)、一个带有命名空间范围 Role 的 ServiceAccount,以及一个ServiceMonitor,所有资源均使用 CR 的名称。 - exporter 启动时会解析所引用的
CephObjectStoreUser,从其 Secret 中读取Endpoint、AccessKey和SecretKey,然后开始轮询 RGW Admin Ops API。Operator 本身不会读取这些密钥。 - 删除
CephObjectStore后,自动创建的CephRGWExporter和CephObjectStoreUser也会随之删除。手动创建的资源不会受到影响。
操作步骤
安装 Operator
-
转到 Administrator。
-
在左侧导航栏中,单击 Marketplace > OperatorHub。
-
找到 Alauda Storage Exporter,然后单击 Install。选择
alphachannel,将其安装到rook-ceph命名空间(Rook-Ceph 运行所在的命名空间),并将升级审批设置为 Manual。有关安装对话框的详细说明,请参阅 Operator。或者,也可以在集群的 control plane node 上从命令行应用
Subscription。rook-ceph命名空间中已包含由 Rook-Ceph 创建的OperatorGroup,因此无需创建新的资源。审批生成的
InstallPlan: -
验证 Operator 正在运行。
预期输出:
验证自动发现的 exporter
Operator 启动后约一分钟内,每个 CephObjectStore 都会有一个 exporter。
-
列出 exporter。
预期输出(此示例中的
ceph-cluster-object是对象存储名称):exporter Pod 启动期间,
PHASE为Pending;Pod 就绪后为Running;如果无法解析所引用的CephObjectStoreUser或其 Secret,则为Failed。详细信息会记录在status.conditions中。 -
确认已为 exporter 配置的只读 RGW 用户。
预期输出:
-
确认子资源。
验证指标
-
将 exporter Service 转发到本地端口,并请求指标端点。
预期输出:
只有对象存储中至少存在一个存储桶后,存储桶指标(
radosgw_usage_bucket_*)才会显示。 -
如果已安装监控插件,
ServiceMonitor会被自动发现:它带有prometheus: kube-prometheus标签,平台使用该标签选择抓取目标,并且默认每隔300s抓取http-metrics端口。经过一个抓取间隔后,在平台的监控面板中或通过 PromQL 查询radosgw_usage_scrape_duration_seconds,以确认数据已被摄取。有关如何使用自定义指标,请参阅 Management of Metrics。
自定义 exporter
自动创建的 CephRGWExporter 使用默认设置。当需要不同的配置时,你可以直接编辑其 spec,也可以创建自己的 CephRGWExporter(使用除 rgw-exporter-<store> 之外的任意名称)。自动发现逻辑绝不会修改或删除手动创建的资源。
参数
指标参考
所有指标都带有 store 标签。使用情况指标和存储桶指标还带有 bucket 和 owner 标签,并且会为 tagList 中的每个键额外添加一个标签。
配额大小为 -1 表示配额不受限制。
查询示例:
故障排除
卸载
在 Marketplace > OperatorHub 中删除 Operator,或从 rook-ceph 命名空间中删除 Subscription 和 ClusterServiceVersion。Exporter Deployment、Service 和 ServiceMonitor 对象由其 CephRGWExporter 所有,并会在删除自定义资源时被垃圾回收。自动创建的 RGW 用户不会自动删除;如果不再需要,请显式删除:
Ceph 是 Red Hat, Inc. 或其子公司在美国及其他国家/地区的商标或注册商标。 Rook® 是 Linux Foundation 的注册商标。 Alauda 是独立供应商。本产品与 LF Projects, LLC 或 Linux Foundation 无关联,也未获得其认可或赞助。所有商标均为其各自所有者的财产,此处仅用于标识目的。