10.5. 为用户定义的项目管理警报规则
OpenShift Container Platform 监控附带一组默认的警报规则。作为集群管理员,您可以查看默认警报规则。
在 OpenShift Container Platform 4.11 中,您可以在用户定义的项目中创建、查看、编辑和删除警报规则。
警报规则注意事项
- 默认的警报规则专门用于 OpenShift Container Platform 集群。
- 有些警报规则特意使用相同的名称。它们发送关于同一事件但具有不同阈值和/或不同严重性的警报。
- 如果较低严重性警报在较高严重性警报触发的同时触发,禁止规则可防止在这种情况下发送通知。
10.5.1. 为用户定义的项目优化警报
要优化您自己的项目的警报,您可以在创建警报规则时考虑以下建议:
- 尽可能减少您为项目创建的警报规则数量。创建警报规则来针对会影响您的条件通知您。如果您为不会影响您的条件生成多个警报,则更难以注意到相关警报。
- 为症状而不是原因创建警报规则。创建警报规则来针对条件通知您,而无论根本原因是什么。然后可以调查原因。如果每个警报规则都只与特定原因相关,则需要更多警报规则。然后,可能会错过一些原因。
- 在编写警报规则前进行规划。确定对您很重要的症状以及一旦发生您想要采取什么操作。然后为每个症状构建警报规则。
- 提供明确的警报信息。在警报消息中说明症状和推荐操作。
- 在警报规则中包含严重性级别。警报的严重性取决于当报告的症状发生时您需要如何做出反应。例如,如果症状需要个人或关键响应团队立即关注,就应该触发关键警报。
其他资源
- 如需更多有关优化警报的指南,请参阅 Prometheus 警报文档
- 如需了解有关 OpenShift Container Platform 4.11 监控架构的详细信息,请参阅监控概述
10.5.2. 关于为用户定义的项目创建警报规则
如果您为用户定义的项目创建警报规则,请在定义新规则时请考虑以下关键行为和重要限制:
除了核心平台监控的默认指标外,用户定义的警报规则也可以包括由其自身项目公开的指标。您不能包含其他用户定义的项目的指标。
例如,
ns1
用户定义的项目的警报规则除核心平台指标(如 CPU 和内存指标)外还可以使用ns1
项目公开的指标。但是,该规则无法包含来自不同ns2
用户定义的项目的指标。要缩短延迟并最小化核心平台监控组件的负载,您可以将
openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus
标签添加到规则中。此标签只强制openshift-user-workload-monitoring
项目中部署的 Prometheus 实例评估警报规则,并防止 Thanos Ruler 实例这样做。重要如果警报规则具有此标签,则您的警报规则只能使用用户定义的项目公开的这些指标。您基于默认平台指标创建的警报规则可能无法触发警报。
10.5.3. 为用户定义的项目创建警报规则
您可以为用户定义的项目创建警报规则。这些警报规则将根据所选指标的值触发警报。
先决条件
- 您已为用户定义的项目启用了监控。
-
对于您要创建警报规则的项目,您已作为具有
monitoring-rules-edit
集群角色的用户登录。 -
已安装 OpenShift CLI(
oc
)。
流程
-
为警报规则创建 YAML 文件。在本例中,该文件名为
example-app-alerting-rule.yaml
。 向 YAML 文件添加警报规则配置。例如:
注意当创建警报规则时,如果在其他项目中存在具有相同名称的规则,则对其强制使用项目标签。
apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: example-alert namespace: ns1 spec: groups: - name: example rules: - alert: VersionAlert expr: version{job="prometheus-example-app"} == 0
此配置会创建一个名为
example-alert
的警报规则。当示例服务公开的version
指标变为0
时,警报规则会触发警报。将配置文件应用到集群:
$ oc apply -f example-app-alerting-rule.yaml
- 如需了解有关 OpenShift Container Platform 4.11 监控架构的详细信息,请参阅监控概述。
10.5.4. 访问用户定义的项目的警报规则
要列出用户定义的项目的警报规则,您必须已被分配该项目的 monitoring-rules-view
集群角色。
先决条件
- 您已为用户定义的项目启用了监控。
-
您以具有项目的
monitoring-rules-view
集群角色的用户身份登录。 -
已安装 OpenShift CLI(
oc
)。
流程
您可以列出
<project>
中的警报规则:$ oc -n <project> get prometheusrule
要列出警报规则的配置,请运行以下命令:
$ oc -n <project> get prometheusrule <rule> -o yaml
10.5.5. 在单个视图中列出所有项目的警报规则
作为集群管理员,您可以在单个视图中一起列出 OpenShift Container Platform 核心项目和用户定义的项目的警报规则。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
-
在 Administrator 视角中,进入到 Observe
Alerting Alerting Rules。 在 Filter 下拉菜单中选择 Platform 和 User 来源。
注意默认会选择 Platform 来源。
10.5.6. 为用户定义的项目删除警报规则
您可以为用户定义的项目删除警报规则。
先决条件
- 您已为用户定义的项目启用了监控。
-
对于您要创建警报规则的项目,您已作为具有
monitoring-rules-edit
集群角色的用户登录。 -
已安装 OpenShift CLI(
oc
)。
流程
要删除
<namespace>
中的规则<foo>
,请运行以下命令:$ oc -n <namespace> delete prometheusrule <foo>
其他资源
- 请参阅 Alertmanager 文档