4.3. 为用户工作负载监控存储和记录数据
存储和记录您的指标和警报数据,配置日志以指定记录哪些活动,控制 Prometheus 保留数据的时长,并为数据设置最大磁盘空间量。这些操作可帮助您保护数据并将其用于故障排除。
4.3.1. 配置持久性存储 复制链接链接已复制到粘贴板!
使用持久性存储运行集群监控以获取以下优点:
- 通过将指标和警报数据存储在持久性卷(PV)中来保护您的指标和警报数据。因此,它们可以在 pod 重启或重新创建后保留。
- 避免获取重复的通知,并在 Alertmanager pod 重启时丢失警报静默。
在多节点集群中,您必须为 Prometheus、Alertmanager 和 Thanos Ruler 配置持久性存储,以确保高可用性。
在生产环境中,强烈建议配置持久性存储。
4.3.1.1. 持久性存储的先决条件 复制链接链接已复制到粘贴板!
- 使用块存储类型。
4.3.1.2. 配置持久性卷声明 复制链接链接已复制到粘贴板!
要将持久性卷 (PV) 用于监控组件,您必须配置持久性卷声明 (PVC)。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户访问集群,也可以使用在openshift-user-workload-monitoring项目中具有user-workload-monitoring-config-edit角色的用户访问集群。 - 集群管理员为用户定义的项目启用了监控。
-
已安装 OpenShift CLI(
oc)。
流程
编辑
openshift-user-workload-monitoring项目中的user-workload-monitoring-config配置映射:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config将组件的 PVC 配置添加到
data/config.yaml下:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>:1 volumeClaimTemplate: spec: storageClassName: <storage_class>2 resources: requests: storage: <amount_of_storage>3 - 1
- 指定要配置 PVC 的监控组件。
- 2
- 指定现有存储类。如果没有指定存储类,则使用默认存储类。
- 3
- 指定所需的存储量。
以下示例配置了一个 PVC 来声明用于 Thanos Ruler 的持久性存储:
PVC 配置示例
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: volumeClaimTemplate: spec: storageClassName: my-storage-class resources: requests: storage: 10Gi注意thanosRuler组件的存储要求取决于要评估的规则数量以及每个规则生成的样本数量。
保存文件以使改变生效。受新配置影响的 Pod 会自动重新部署并应用新的存储配置。
警告当您使用 PVC 配置更新配置映射时,受影响的
StatefulSet对象会被重新创建,从而导致临时服务中断。
4.3.1.3. 重新定义持久性卷大小 复制链接链接已复制到粘贴板!
您可以为 Prometheus、Thanos Ruler 和 Alertmanager 实例重新定义持久性卷(PV)大小。您需要手动扩展持久性卷声明 (PVC),然后更新配置组件的配置映射。
您只能扩展 PVC 的大小。无法缩小存储大小。
先决条件
-
您可以使用具有
cluster-admin集群角色的用户访问集群,也可以使用在openshift-user-workload-monitoring项目中具有user-workload-monitoring-config-edit角色的用户访问集群。 - 集群管理员为用户定义的项目启用了监控。
- 至少有一个 PVC 用于监控用户定义的项目的组件。
-
已安装 OpenShift CLI(
oc)。
流程
- 使用更新的存储请求手动扩展 PVC。如需更多信息,请参阅 扩展持久性卷 中的"使用文件系统扩展持久性卷声明 (PVC) "。
编辑
openshift-user-workload-monitoring项目中的user-workload-monitoring-config配置映射:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config在
data/config.yaml下为组件添加新存储大小:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>:1 volumeClaimTemplate: spec: resources: requests: storage: <amount_of_storage>2 - 1
- 要更改存储大小的组件。
- 2
- 指定存储卷的新大小。它必须大于上一个值。
以下示例将 Thanos Ruler 的新 PVC 请求设置为 20GB:
thanosRuler的存储配置示例apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: volumeClaimTemplate: spec: resources: requests: storage: 20Gi注意thanosRuler组件的存储要求取决于要评估的规则数量以及每个规则生成的样本数量。
保存文件以使改变生效。受新配置影响的 Pod 会自动重新部署。
警告当您使用新存储大小更新配置映射时,受影响的
StatefulSet对象会被重新创建,从而导致临时服务中断。