第 7 章 使用 Ceph Orchestrator 管理监控堆栈
作为存储管理员,您可以在后端中将 Ceph Orchestrator 与 Cephadm 搭配使用,以部署监控和警报堆栈。监控堆栈由 Prometheus、Prometheus 导出器、Prometheus Alertmanager 和 Grafana 组成。用户需要在 YAML 配置文件中通过 Cephadm 定义这些服务,或者可以使用 命令行界面来部署这些服务。当部署了同一类型的多个服务时,会部署高可用性设置。节点 exporter 是此规则的一个例外。
Red Hat Ceph Storage 5.0 不支持自定义镜像来部署监控服务,如 Prometheus、Grafana、Alertmanager 和 node-exporter。
以下监控服务可以通过 Cephadm 部署:
Prometheus 是监控和警报工具包。它收集 Prometheus 导出器提供的数据,并在达到预定义的阈值时触发预配置警报。Prometheus manager 模块提供了一个 Prometheus exporter,用于传递
ceph-mgr
中的集合点的 Ceph 性能计数器。Prometheus 配置,包括提取目标(如提供守护进程的指标)由 Cephadm 自动设置。Cephadm 还部署默认警报的列表,如健康错误、10 个 OSD down 或 pgs inactive。
- Alertmanager 处理 Prometheus 服务器发送的警报。它取消复制、组并将警报路由到正确的接收器。默认情况下,Ceph 仪表板自动配置为接收器。Alertmanager 处理 Prometheus 服务器发送的警报。可以使用 Alertmanager 静默警报,但也可以使用 Ceph 控制面板管理静默。
Grafana 是视觉化和警报软件。此监控堆栈不使用 Grafana 的警报功能。对于警报,使用了 Alertmanager。
默认情况下,到 Grafana 的流量会通过 TLS 加密。您可以提供自己的 TLS 证书,也可以使用自签名证书。如果在部署 Grafana 之前没有配置自定义证书,则会自动为 Grafana 创建和配置自签名证书。Grafana 的自定义证书可通过以下命令配置:
语法
ceph config-key set mgr/cephadm/grafana_key -i PRESENT_WORKING_DIRECTORY/key.pem ceph config-key set mgr/cephadm/grafana_crt -i PRESENT_WORKING_DIRECTORY/certificate.pem
Node exporter 是 Prometheus 的一个导出器,它为安装它的节点提供数据。建议您在所有节点上安装节点导出器。这可以使用带有 node-exporter 服务类型的 monitoring.yml
文件来实现。
7.1. 使用 Ceph Orchestrator 部署监控堆栈
监控堆栈由 Prometheus、Prometheus 导出器、Prometheus Alertmanager、Grafana 和 Ceph Exporter 组成。Ceph 控制面板利用这些组件在集群使用和性能上存储和视觉化详细指标。
您可以使用 YAML 文件格式的服务规格部署监控堆栈。所有监控服务都可以具有其绑定到 yml
文件中的网络和端口。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对节点的根级别访问权限。
流程
在 Ceph Manager 守护进程中启用 prometheus 模块。这会公开内部 Ceph 指标,以便 Prometheus 可以读取它们:
示例
[ceph: root@host01 /]# ceph mgr module enable prometheus
重要确保在部署 Prometheus 前运行该命令。如果在部署前运行该命令,您必须重新部署 Prometheus 以更新配置:
ceph orch redeploy prometheus
进入以下目录:
语法
cd /var/lib/ceph/DAEMON_PATH/
示例
[ceph: root@host01 mds/]# cd /var/lib/ceph/monitoring/
注意如果目录
monitoring
不存在,则会创建它。创建
monitoring.yml
文件:示例
[ceph: root@host01 monitoring]# touch monitoring.yml
使用类似以下示例的内容编辑规格文件:
示例
service_type: prometheus service_name: prometheus placement: hosts: - host01 networks: - 192.169.142.0/24 --- service_type: node-exporter --- service_type: alertmanager service_name: alertmanager placement: hosts: - host01 networks: - 192.169.142.0/24 --- service_type: grafana service_name: grafana placement: hosts: - host01 networks: - 192.169.142.0/24 --- service_type: ceph-exporter
注意确保监控堆栈组件
alertmanager
、prometheus
和grafana
部署到同一主机上。node-exporter
和ceph-exporter
组件应部署到所有主机上。应用监控服务:
示例
[ceph: root@host01 monitoring]# ceph orch apply -i monitoring.yml
验证
列出服务:
示例
[ceph: root@host01 /]# ceph orch ls
列出主机、守护进程和进程:
语法
ceph orch ps --service_name=SERVICE_NAME
示例
[ceph: root@host01 /]# ceph orch ps --service_name=prometheus
Prometheus、Grafana 和 Ceph 仪表板都自动配置为相互通信,从而可以在 Ceph 仪表板中全面集成 Grafana。