首页 / 平台管理 / 集群管理 / 集群 / 插件管理 / 部署监控组件

部署监控组件

当集群内未部署监控组件时,可通过在集群内部署 PrometheusVictoriaMetricsOCP 监控注册组件Windows 监控插件 插件,为集群提供监控数据采集、存储、查询、展示、转发等能力。

部署前须知

Prometheus

前提条件

如果您希望使用 存储类持久卷 存储监控数据,请提前在 存储 功能下为集群创建好相应的存储资源。

操作步骤

  1. 在左侧导航栏中,单击 集群管理 > 集群

  2. 单击待部署监控组件的 集群名称

  3. 插件 页签下,单击 Prometheus 插件右侧的 > 部署

  4. 参考以下说明,配置相关参数。

    参数 说明
    规模配置 平台支持三种规模配置:小规模中规模大规模。三种规模的组件参数默认值来自于平台压力测试后的推荐值,可参考 实验室数据 - Prometheus 获取更多信息,或根据实际业务需求自定义配额。
    注意:默认值将以平台实际压测数据为基础动态进行数据调优,平台版本升级时,将自动更新默认值,若无需跟随平台升级而更新默认值,建议自定义配置。
    存储类型 - LocalVolume:即本地卷,监控数据将存储在集群中指定的节点上,支持自定义 存储大小
    提示:存储大小会受监控数据保留时长(retention)、监控数据采样周期 (scrape_interval)、Pod 数量、和业务等因素影响,请根据实际情况进行调整。您可参考 官方文档 或根据 实验室测试结果 和真实运行环境的实际用量调整存储大小。
    - StorageClass:即 存储类 ,监控数据将存储在根据存储类的定义自动生成的持久卷中,请填写已创建存储类的 名称
    - PV:即 持久卷 ,监控数据将存储在已创建好的持久卷中,平台将通过持久卷的 标签来匹配持久卷。
    注意:监控组件部署完成后存储配置无法修改,若仍需修改存储类型,请联系技术人员获取支持。
    副本数 副本数为集群内部署的监控组件容器组数量,它根据存储类型不同推荐数量略有差异,请参考界面提示配置。
    提示:当存储类型为 LocalVolume 时,无法配置多副本。
    参数配置 参数配置为监控组件的数据参数,可根据需求参考界面提示调整。
  5. 单击 部署

    提示:Prometheus 部署成功后,通过以下地址(<> 为变量,需修改为实际值)可直接访问相应的组件。例如:https://new.example.cn/clusters/global/prometheus

    组件名称 访问地址
    Thanos <平台访问地址>/clusters/<cluster>/prometheus
    Prometheus <平台访问地址>/clusters/<cluster>/prometheus-0
    Grafana <平台访问地址>/clusters/<cluster>/grafana
    Alertmanager <平台访问地址>/clusters/<cluster>/alertmanager

VictoriaMetrics

前提条件

操作步骤

  1. 在左侧导航栏中,单击 集群管理 > 集群

  2. 单击待部署监控组件的 集群名称

  3. 插件 页签下,单击 VictoriaMetrics 插件右侧的 > 部署

  4. 参考以下说明,配置相关参数。

    参数 说明
    规模配置 平台支持三种规模配置:小规模中规模大规模。三种规模的组件参数默认值来自于平台压力测试后的推荐值,可参考 实验室数据 - VictoriaMetrics 获取更多信息,或根据实际业务需求自定义配额。
    注意:默认值将以平台实际压测数据为基础动态进行数据调优,平台版本升级时,将自动更新默认值,若无需跟随平台升级而更新默认值,建议自定义配置。
    仅部署 VictoriaMetrics 代理 是否仅部署日志采集组件 VMAgentVMAgent 负责采集当前集群上的监控数据。
    关闭开关,将在当前集群上部署 VictoriaMetrics 全套组件,包括 VMAgentVMStorage(存储监控数据)、VMAlert(告警规则评估、传递告警消息) 等。
    打开开关,当前集群需要依赖平台中的 VictoriaMetrics Center 才能提供完整的监控能力。
    VictoriaMetrics Center 平台上部署了 VictoriaMetrics 全套组件的集群,可为平台上仅部署了 VictoriaMetrics 代理的集群提供长期存储、监控告警等能力。
    存储类型 - LocalVolume:即本地卷,监控数据将存储在集群中指定的节点上,支持自定义 存储大小
    提示:存储大小会受监控数据保留时长(retention)、监控数据采样周期 (scrape_interval)、Pod 数量、和业务等因素影响,请根据实际情况进行调整。您可参考 官方文档 或根据 实验室测试结果 和真实运行环境的实际用量调整存储大小。
    - StorageClass:即 存储类 ,监控数据将存储在根据存储类的定义自动生成的持久卷中,请填写已创建存储类的 名称
    - PV:即 持久卷 ,监控数据将存储在已创建好的持久卷中,平台将通过持久卷的 标签来匹配持久卷。
    副本数 副本数为集群内部署的监控组件容器组数量,它根据存储类型不同推荐数量略有差异,请参考界面提示配置。
    提示:当存储类型为 LocalVolume 时,无法配置多副本。
    参数配置 参数配置为监控组件的数据参数,可根据需求参考界面提示调整。
  5. 单击 部署

OCP 监控注册组件/Windows 监控插件

前提条件

操作步骤

  1. 在左侧导航栏中,单击 集群管理 > 集群

  2. 单击待部署插件的 集群名称

  3. 插件 页签下,单击 OCP 监控注册组件/Windows 监控插件 右侧的 > 部署

如何备份 Prometheus 的监控数据?

Prometheus 的监控数据以 TSDB 格式,存储在 Prometheus 容器的指定路径下,路径由 Prometheus 容器的配置 storage.tsdb.path 指定,默认为 /prometheus,下文统称 storage.tsdb.path 目录

到存储不是实时的,会有一部分数据在缓存中。

template:
    spec:
      containers:
        - args:
            - '--storage.tsdb.path=/prometheus'     # Prometheus 容器存储监控数据的目录

说明:Prometheus 计算组件名称为 prometheus-kube-prometheus-0,类型为 StatefulSet

TSDB 格式数据示例如下:

├── 01FXP317QBANGAX1XQAXCJK9DB
│   ├── chunks
│   │   └── 000001
│   ├── index
│   ├── meta.json
│   └── tombstones
├── chunks_head
│   ├── 000022
│   └── 000023
├── queries.active
└── wal
    ├── 00000020
    ├── 00000021
    ├── 00000022
    ├── 00000023
    └── checkpoint.00000019
        └── 00000000

注意事项

Prometheus 存储监控数据时,会将采集到的监控数据先放入缓存,然后定期将缓存中的数据写入存储目录。以下备份方式均是以存储目录作为数据源进行备份,因此,备份数据中不包括备份时存放在缓存中的数据。

方式 1 - 备份存储目录

可通过以下两种方式备份 Prometheus 的监控数据。

方式 2 - 快照备份

操作步骤

  1. 登录集群的任一控制节点(或打开集群的 Kubectl 工具)。

  2. 执行以下命令行更新 kube-prometheus-0 资源,在 spec 路径下,添加 enableAdminAPI=true 配置,启用 Prometheus 的 Admin API。

    kubectl edit -n cpaas-system prometheus kube-prometheus-0

    spec 路径下,添加 enableAdminAPI=true 配置并保存。

    spec: 
      enableAdminAPI: true          

    说明:更新并保存配置后,Prometheus 的 Pod(Pod 名称:prometheus-kube-prometheus-0-0)会重启,等待 Pod 都处于 Running 状态后执行后续操作。

    通过以下命令行可查看 Prometheus Pod 状态:

    kubectl get pods -n cpaas-system prometheus-kube-prometheus-0-0  -owide
  3. 执行以下命令行,调用 API(`POST /api/v1/admin/tsdb/snapshot`)创建快照。
    
    curl -XPOST <Prometheus Pod IP>:9090/api/v1/admin/tsdb/snapshot

    示例:

    # 调用创建快照 API 命令
    curl -XPOST 10.5.0.55:9090/api/v1/admin/tsdb/snapshot
    # 快照创建成功后返回信息,name 为快照名称
    {"status":"success","data":{"name":"20220428T094253Z-159a8b76700b57cc"}

    说明:快照存储在 Prometheus 容器的指定路径( <storage.tsdb.path 目录>/snapshots/)下。 执行以下命令行可将快照拷贝至当前目录下:

    kubectl cp -n cpaas-system prometheus-kube-prometheus-0-0:<storage.tsdb.path 目录>/snapshots/<快照名称> -c prometheus ./<目标存储路径>
    # 命令行示例
    kubectl cp -n cpaas-system prometheus-kube-prometheus-0-0:/prometheus/snapshots/20220428T094253Z-159a8b76700b57cc -c prometheus ./prometheus-snapshots/

加载备份数据

将备份文件(包含快照)存放在 Prometheus 容器的 storage.tsdb.path 目录 下,Prometheus 会自动加载备份数据。

命令行示例:

# 将备份数据或快照拷贝至容器的 "/prometheus" 目录下,示例中备份数据或快照所在目录为 "/prometheus-backup"
kubectl cp ./prometheus-backup cpaas-system/prometheus-kube-prometheus-0-0:/prometheus/                   
# 进入 Prometheus 容器
kubectl  exec -it -n cpaas-system prometheus-kube-prometheus-0-0 -c prometheus sh 
# 将容器内的备份数据移动至 `storage.tsdb.path` 指定的目录 "/prometheus" 下
mv /prometheus/prometheus-backup/* /prometheus/                                             

快捷方式:当插件部署时的存储类型为 LocalVolume 时,直接将备份数据拷贝至部署插件的节点的 /cpaas/monitoring/prometheus/prometheus-db/ 目录下即可。

如何备份 VictoriaMetrics 的监控数据?

VictoriaMetrics 的监控数据存储在 VictoriaMetrics 容器的指定路径下,路径由 VictoriaMetrics 容器的配置 -storageDataPath 指定,默认为 /vm-data,下文统称 -storageDataPath 目录

-storageDataPath 目录 配置示例如下:

spec:
  template:
    spec:
      containers:
        - args:
            - '-storageDataPath=/vm-data'

说明:VictoriaMetrics 计算组件名称为 vmstorage-cluster,类型为 StatefulSet

备份

请参考 vmbackup 备份 VictoriaMetrics 监控数据。

加载备份数据

请参考 vmrestore 加载 VictoriaMetrics 的备份数据。

如何选择监控组件?

集群部署监控组件时,平台支持 VictoriaMetrics 和 Prometheus 两种类型的监控组件,本章将为您展示监控组件的相关信息,为您选择监控组件做参考。

注意事项

目前集群中在部署监控组件时,仅支持从 VictoriaMetrics 和 Prometheus 中选择其一,单独部署 VictoriaMetrics 时将使用 VMAgent 采集监控指标,在平台中非大规模使用监控时,可选用 Prometheus 部署方式,由于平台 VictoriaMetrics 监控功能仍处于 Alpha 阶段,推荐您使用 Prometheus 部署方式

名词解释

名词 说明
Prometheus Server Prometheus Server 是 Prometheus 组件中的核心部分,负责实现对监控数据的获取,存储以及查询。
Exporters Exporter 将监控数据采集的端点通过 HTTP 服务的形式暴露给监控组件,获取到需要采集的监控数据。
AlertManager 告警处理中心,支持基于 PromQL 创建告警规则。
PushGateway 由于 Prometheus 数据采集基于 Pull 模型进行设计,因此在网络环境的配置上必须让 Prometheus Server 能够直接与 Exporter 进行通信。当这种网络需求无法直接满足时,就可以利用 PushGateway 来进行中转。可以通过 PushGateway 将内部网络的监控数据主动 Push 到 Gateway 当中。而 Prometheus Server 则可以采用同样 Pull 的方式从 PushGateway 中获取到监控数据。
VMStorage VictoriaMetrics 中监控数据存储的组件。
VMInsert VMInsert 可以通过 remote write API 接收来自监控服务的数据,并将其分布在可用的 VMStorage 节点上。
VMSelect 监控查询组件。
VMAlert 负责告警规则的评估以及将对应的告警消息传递给 Alertmanager。
VMAgent 负责采集监控指标。
Apollo 平台组件,用于支持运营统计数据、日志数据的查询和导出。

组件介绍

特性对比

以下仅举例两种监控组件的部分特性,更多请参考监控组件官方文档:

Prometheus VictoriaMetrics 说明
高可用部署 不支持 支持 Prometheus 在告警、查询时无法保证数据的一致性,多个实例采集多份监控数据的表现较好。VictoriaMetrics 支持多集群的高可用部署,并且可以在告警、查询时保证数据的一致性。
单节点部署 支持 支持
监控数据长期存储 不适合 适合 Prometheus 的长期监控数据存储方案官方建议使用远程存储,VictoriaMetrics 可以使用本地存储保存长期监控数据。
本地存储 支持 支持 Prometheus 不支持 NFS 类型的本地存储,并且不适合长期存储数据。
远程存储 支持 支持 VictoriaMetric 支持的远程存储组件少于 Prometheus 支持的存储组件。

部署方式

以下为平台监控功能流程图,可帮助您梳理监控组件架构并选择合适的部署方式,在平台中非大规模使用监控时,可选用 Prometheus 部署方式,由于平台 VictoriaMetrics 监控功能仍处于 Alpha 阶段,推荐您使用 Prometheus 部署方式

以下两种监控部署方式需任选其一:

注意:需要替换监控组件时,请确保另一个监控组件已卸载,且当前监控数据不会迁移至新监控组件中。

实验室数据 - Prometheus

小规模(<=500 pod)

角色 服务器数量 服务器CPU架构及型号 内存容量及类型
master 3 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ
prometheus 1 架构:X86

容量:8c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:16g

类型:DDR4_64_RDIMM_2933MHZ
slave 10 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ

中规模(<=2000 pod)

角色 服务器数量 服务器CPU架构及型号 内存容量及类型
master 3 架构:X86

容量:8c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:16g

类型:DDR4_64_RDIMM_2933MHZ
prometheus 1 架构:X86

容量:12c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:36g

类型:DDR4_64_RDIMM_2933MHZ
slave 20 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ

大规模(<=5000 pod)

角色 服务器数量 服务器CPU架构及型号 内存容量及类型
master 3 架构:X86

容量:12c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:24g

类型:DDR4_64_RDIMM_2933MHZ
prometheus 1 架构:X86

容量:32c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:128g

类型:DDR4_64_RDIMM_2933MHZ
slave 100 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ

测试结果

组件资源用量推荐可以直接在平台界面查看,在此不再赘述。

实验室数据 - VictoriaMetrics

小规模(<=500 pod)

角色 服务器数量 服务器CPU架构及型号 内存容量及类型
master 3 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ
VictoriaMetrics 1 架构:X86

容量:8c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:16g

类型:DDR4_64_RDIMM_2933MHZ
slave 10 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ

中规模(<=2000 pod)

角色 服务器数量 服务器CPU架构及型号 内存容量及类型
master 3 架构:X86

容量:8c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:16g

类型:DDR4_64_RDIMM_2933MHZ
VictoriaMetrics 1 架构:X86

容量:12c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:36g

类型:DDR4_64_RDIMM_2933MHZ
slave 20 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ

大规模(<=5000 pod)

角色 服务器数量 服务器CPU架构及型号 内存容量及类型
master 3 架构:X86

容量:12c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:24g

类型:DDR4_64_RDIMM_2933MHZ
VictoriaMetrics 1 架构:X86

容量:32c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:128g

类型:DDR4_64_RDIMM_2933MHZ
slave 100 架构:X86

容量:4c

型号:Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
容量:8g

类型:DDR4_64_RDIMM_2933MHZ

测试结果

组件资源用量推荐可以直接在平台界面查看,在此不再赘述。