第 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 控制面板利用这些组件在集群使用和性能上存储和视觉化详细指标。

您可以使用 YAML 文件格式的服务规格部署监控堆栈。所有监控服务都可以具有其绑定到 yml 文件中的网络和端口。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 对节点的根级别访问权限。

流程

  1. 在 Ceph Manager 守护进程中启用 prometheus 模块。这会公开内部 Ceph 指标,以便 Prometheus 可以读取它们:

    示例

    [ceph: root@host01 /]# ceph mgr module enable prometheus

    重要

    确保在部署 Prometheus 前运行该命令。如果在部署前运行该命令,您必须重新部署 Prometheus 以更新配置:

    ceph orch redeploy prometheus
  2. 进入以下目录:

    语法

    cd /var/lib/ceph/DAEMON_PATH/

    示例

    [ceph: root@host01 mds/]# cd /var/lib/ceph/monitoring/

    注意

    如果目录 monitoring 不存在,则会创建它。

  3. 创建 monitoring.yml 文件:

    示例

    [ceph: root@host01 monitoring]# touch monitoring.yml

  4. 使用类似以下示例的内容编辑规格文件:

    示例

    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

    注意

    确保监控堆栈组件 alertmanagerprometheusgrafana 部署到同一主机上。node-exporter 组件应该部署到所有主机上。

  5. 应用监控服务:

    示例

    [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。