Prometheus 监控服务 Ceph Exporter 接入

Ceph Exporter 是一个用于 Prometheus 监控系统的插件,用于收集和暴露 Ceph 分布式存储集群的性能指标。它允许用户监视 Ceph 集群的健康状况、性能指标和状态信息,帮助管理员及时发现问题并进行相应的调整和优化。腾讯云可观测平台 Prometheus 提供了与 Ceph Exporter 集成及开箱即用的 Grafana 监控大盘。

相关产品
Prometheus 监控服务 产品页,含版本规格、价格与购买入口。

一、操作场景

Ceph Luminous 12.2.1 之前的版本需要使用该 Exporter 导出指标;Ceph Luminous 12.2.1 的 mgr 中自带了 Prometheus 插件,内置了 Prometheus ceph exporter,可以使用 Ceph mgr 内置的 exporter 作为 Prometheus 的采集目标,故而 Ceph Luminous 12.2.1 及之后的版本更建议使用自带的指标导出。

二、前提

Ceph 版本不低于 Luminous 12.2.1。

三、启用 Ceph 的 Prometheus 插件

查看是否已经开启:

ceph mgr module ls

若输出列表中包含 "prometheus" 则说明已开启 prometheus 插件,若不存在则需要开启该插件。

开启 prometheus 插件:

ceph mgr module enable prometheus

验证:

ceph mgr module ls

输出列表中包含 "prometheus",说明已开启 prometheus 插件。然后登录 mgr pod 验证拉取指标:

curl 127.0.0.1:9283/metrics ## 默认为9283端口,按业务实际端口进行调整

即可看到拉取的指标信息:

四、指标采集

1. 登录 Prometheus 监控服务控制台。

2. 在实例列表中,选择对应的 Prometheus 实例。

3. 进入实例详情页,选择数据采集 > 集成中心。

4. 在集成中心找到并单击抓取任务,即会弹出一个安装窗口,在安装页面填写指标采集名称和地址等信息,并单击保存即可。

5. 在集成中心找到并单击 ceph,即会弹出一个窗口,选择 Grafana > Grafana Dashboard 操作 > 安装/升级。

五、操作步骤

1. 登录 Prometheus 监控服务控制台。

2. 在实例列表中,选择对应的 Prometheus 实例。

3. 进入实例详情页,选择数据采集 > 集成中心。

4. 在集成中心搜索 Ceph,即会弹出一个安装窗口,在安装页面填写指标采集名称和地址等信息,并单击保存即可。

六、配置说明

参数 说明
名称 集成名称,命名规范如下:名称具有唯一性。名称需要符合下面的正则:'^a-z0-9?(\\.a-z0-9?)*$'。
用户名 Ceph 的用户名称。
秘钥 上述用户名对应的秘钥。
集群 Ceph 的集群名称。
标签 给指标添加自定义 Label。
ceph 配置 连接 Ceph 所需的 ceph.conf 配置文件

七、方式二:自定义安装

注意:说明:

注意:为了方便安装管理 Exporter,推荐使用腾讯云 容器服务 来统一管理。

八、前提条件

·在 Prometheus 实例对应地域及私有网络(VPC)下,创建腾讯云容器服务 Kubernetes 集群,并为集群创建 命名空间。

·在 Prometheus 监控服务控制台 > 选择对应的 Prometheus 实例 > 数据采集 > 集成容器服务中找到对应容器集群完成关联集群操作。可参见指引 关联集群。

九、操作步骤

步骤一:Exporter 部署

1. 登录 容器服务控制台。

2. 在左侧菜单栏中单击集群。

3. 单击需要获取集群访问凭证的集群 ID/名称,进入该集群的管理页面。

4. 执行以下 创建配置及鉴权用 Secret > 部署 Ceph Exporter > 验证 步骤完成 Exporter 部署。

步骤二:创建配置及鉴权用 Secret

1. 在左侧菜单中选择工作负载 > Deployment,进入 Deployment 页面。

2. Base64编码生成密钥环与 ceph.conf。

ceph.conf:[global]mon_host = 172.18.0.2:6789,172.18.0.3:6789,172.18.0.4:6789## 该换行不可省略,是必需内容keyring:[client.admin]key = AJKs8dsdfJkEEHxASDanasiKasfdJLYE5G3UAw==## 该换行不可省略,是必需内容

Base64编码后:

ceph.conf:W2dsb2JhbF0KbW9uX2hvc3QgPSAxNzIuMTguMC4yOjY3ODksMTcyLjE4LjAuMzo2Nzg5LDE3Mi4xOC4wLjQ6Njc4OQo=keyring:W2NsaWVudC5hZG1pbl0Ka2V5ID0gQUpLczhkc2RmSmtFRUh4QVNEYW5hc2lLYXNmZEpMWUU1RzNVQXc9PQo=

3. 在页面右上角单击 YAML 创建资源,创建 YAML 配置:

apiVersion: v1kind: Secretmetadata: name: ceph-secret-test # 根据业务需要调整成对应的名称 namespace: ceph-demo # 根据业务需要调整成对应的命名空间type: Opaquedata: ## ceph.client.user.keyring 中的 user 为鉴权用的用户名,请根据实际业务进行替换,例如 ceph.client.admin.keyring ceph.client.user.keyring: W2NsaWVudC5hZG1pbl0Ka2V5ID0gQUpLczhkc2RmSmtFRUh4QVNEYW5hc2lLYXNmZEpMWUU1RzNVQXc9PQo= ceph.conf: W2dsb2JhbF0KbW9uX2hvc3QgPSAxNzIuMTguMC4yOjY3ODksMTcyLjE4LjAuMzo2Nzg5LDE3Mi4xOC4wLjQ6Njc4OQo=

步骤三:部署 Ceph Exporter

在 Deployment 管理页面,选择对应的命名空间来进行部署服务,可以通过控制台的方式创建。如下以 YAML 的方式部署 Exporter, 配置示例如下:

apiVersion: apps/v1kind: Deploymentmetadata: labels: k8s-app: ceph-exporter # 根据业务需要调整成对应的名称,建议加上 Ceph 实例的信息 name: ceph-exporter # 根据业务需要调整成对应的名称,建议加上 Ceph 实例的信息 namespace: ceph-demo # 根据业务需要调整成对应的命名空间spec: replicas: 1 selector: matchLabels: k8s-app: ceph-exporter # 根据业务需要调整成对应的名称,建议加上 Ceph 实例的信息 template: metadata: labels: k8s-app: ceph-exporter # 根据业务需要调整成对应的名称,建议加上 ceph 实例的信息 spec: containers: – name: ceph-exporter image: ccr.ccs.tencentyun.com/rig-agent/common-image:ceph-exporter-v4.2.3 imagePullPolicy: IfNotPresent env: – name: CEPH_CLUSTER value: ceph # 根据业务需要调整成相应的集群名称 – name: CEPH_USER value: admin # 根据业务需要调整成相应的用户名 – name: TELEMETRY_ADDR value: :8080 ports: – containerPort: 8080 name: metric-port terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: – mountPath: /etc/ceph name: conf readOnly: true dnsPolicy: ClusterFirst imagePullSecrets: – name: qcloudregistrykey restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: – name: conf secret: defaultMode: 420 secretName: ceph-secret-test # 上面步骤中创建的 Secret 的名称

步骤四:验证

1. 在 Deployment 页面单击上述步骤创建的 Deployment,进入 Deployment 管理页面。

2. 单击日志页签,可以查看到 Exporter 成功启动并暴露对应的访问地址:

3. 单击 Pod 管理页签进入 Pod 页面。

4. 在右侧的操作项下单击远程登录,即可登录 Pod,在命令行窗口中执行以下 curl 命令对应 Exporter 暴露的地址,可以正常得到对应的 Ceph 指标。如发现未能得到对应的数据,请检查秘钥和 ceph.conf 配置是否正确,具体如下:

curl localhost:8080/metrics

执行结果如下:

步骤五:添加采集任务

1. 登录 腾讯云可观测平台 Prometheus 控制台,选择对应 Prometheus 实例进入管理页面。

2. 选择数据采集 > 集成容器服务,选择已经关联的集群,通过数据采集配置 > 新建自定义监控 > YAML 编辑来添加采集配置。

3. 通过服务发现添加 PodMonitors 来定义 Prometheus 抓取任务,YAML 配置示例如下:

apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: ceph-exporter # 填写一个唯一名称 namespace: cm-prometheus # 按量实例: 集群的 namespace; 包年包月实例(已停止售卖): namespace 固定,不要修改 spec: podMetricsEndpoints: – interval: 30s port: metric-port # 填写pod yaml中Prometheus Exporter对应的Port的Name path: /metrics # 填写Prometheus Exporter对应的Path的值,不填默认/metrics relabelings: – action: replace sourceLabels: – instance regex: (.*) targetLabel: instance replacement: 'crs-xxxxxx' # 调整成对应的 Ceph 实例 ID – action: replace sourceLabels: – instance regex: (.*) targetLabel: ip replacement: '1.x.x.x' # 调整成对应的 Ceph 实例 IP namespaceSelector: # 选择要监控pod所在的namespace matchNames: – ceph-demo selector: # 填写要监控pod的Label值,以定位目标pod matchLabels: k8s-app: ceph-exporter

十、前提条件

Prometheus 实例已绑定 Grafana 实例。

十一、操作步骤

1. 登录 腾讯云可观测平台 Prometheus 控制台,选择对应 Prometheus 实例进入管理页面。

2. 在实例基本信息页面,找到绑定的 Grafana 地址,打开并登录,然后在 ceph 文件夹中找到 Ceph – Cluster 监控面板,查看实例相关监控数据:

3. mgr 原生监控可在如下三个面板中查看:

4. Native Ceph Cluster 面板展示:

十二、配置告警

腾讯云 Prometheus 托管服务支持告警配置,可根据业务实际的情况来添加告警策略。详情请参见 新建告警策略。

十三、附录:Ceph Exporter 环境变量配置

名称 描述
TELEMETRY_ADDR 暴露指标地址,默认 *:9128。
TELEMETRY_PATH 暴露指标路径,默认 /metrics。
EXPORTER_CONFIG exporter 配置路径,默认 /etc/ceph/exporter.yml,存在该配置时,CEPH_CLUSTER、CEPH_CONFIG、CEPH_USER 等信息都将去其中获取。
RGW_MODE 启用从 RGW 收集统计数据,取值如下:0:禁用(默认值)1:启用2:后台
CEPH_CLUSTER Ceph 集群名称,默认 ceph。
CEPH_CONFIG ceph.conf 配置位置,默认 /etc/ceph/ceph.conf。
CEPH_USER Ceph 连接集群用户名,默认 admin。
CEPH_RADOS_OP_TIMEOUT Ceph osd 与 mon 操作超时时长,默认30s。
LOG_LEVEL 日志等级,取值范围:[trace, debug, info, warn, error, fatal, panic],默认 info。
TLS_CERT_FILE_PATH tls 验证文件路径
TLS_KEY_FILE_PATH tls 验证文件路径
赞 (0)
上一篇 4天前
下一篇 4天前