10.6. 管理用于核心平台监控的警报规则
为核心平台监控创建和修改警报规则只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
OpenShift Container Platform 4.12 监控附带一组用于平台指标的默认警报规则。作为集群管理员,您可以以两种方式自定义这组规则:
-
通过调整阈值或添加和修改标签来修改现有平台警报规则的设置。例如,您可以将一个警报的
severity
标签从warning
改为critical
以帮助您来处理相关的问题。 -
通过基于
openshift-monitoring
命名空间中的核心平台指标构建查询表达式,定义和添加新的自定义警报规则。
核心平台警报规则考虑
- 新的警报规则必须基于默认的 OpenShift Container Platform 监控指标。
-
您必须在
openshift-monitoring
命名空间中创建AlertingRule
和AlertRelabelConfig
对象。 - 您只能添加和修改警报规则。您无法创建新的记录规则或修改现有的记录规则。
-
如果您使用
AlertRelabelConfig
对象修改现有平台警报规则,您的修改不会反映在 Prometheus 警报 API 中。因此,任何丢弃的警报仍出现在 OpenShift Container Platform web 控制台中,即使它们不再被转发到 Alertmanager。另外,任何对警报的修改(如更改了severity
标签)都不会出现在 web 控制台中。
10.6.1. 修改核心平台警报规则
作为集群管理员,您可以在 Alertmanager 将核心平台警报路由到接收器前修改核心平台警报。例如,您可以更改警报的严重性标签,添加自定义标签,或者从发送到 Alertmanager 中排除警报。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 -
已安装 OpenShift CLI(
oc
)。 - 启用了技术预览功能,且集群中的所有节点都就绪。
流程
-
创建名为
example-modified-alerting-rule.yaml
的新 YAML 配置文件。 在 YAML 文件中添加
AlertRelabelConfig
资源。以下示例将默认平台watchdog
警报规则的severity
设置改为critical
:apiVersion: monitoring.openshift.io/v1alpha1 kind: AlertRelabelConfig metadata: name: watchdog namespace: openshift-monitoring 1 spec: configs: - sourceLabels: [alertname,severity] 2 regex: "Watchdog;none" 3 targetLabel: severity 4 replacement: critical 5 action: Replace 6
重要您必须在
openshift-monitoring
命名空间中创建AlertRelabelConfig
对象。否则,警报标签不会改变。将配置文件应用到集群:
$ oc apply -f example-modified-alerting-rule.yaml
10.6.2. 创建新警报规则
作为集群管理员,您可以根据平台指标创建新的警报规则。这些警报规则根据所选指标的值触发警报。
-
如果您基于现有平台警报规则创建自定义
AlertingRule
资源,请静默原始警报以避免收到冲突的警报。 - 为了帮助用户了解警报的影响和原因,请确保您的警报规则包含警报消息和严重性值。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。 - 启用了技术预览功能,且集群中的所有节点都就绪。
流程
-
创建一个名为
example-alerting-rule.yaml
的新 YAML 配置文件。 向 YAML 文件添加
AlertingRule
资源。以下示例创建一个名为example
的新警报规则,类似于默认的Watchdog
警报:apiVersion: monitoring.openshift.io/v1alpha1 kind: AlertingRule metadata: name: example namespace: openshift-monitoring 1 spec: groups: - name: example-rules rules: - alert: ExampleAlert 2 for: 1m 3 expr: vector(1) 4 labels: severity: warning 5 annotations: message: This is an example alert. 6
重要您必须在
openshift-monitoring
命名空间中创建AlertingRule
对象。否则,将不接受警报规则。将配置文件应用到集群:
$ oc apply -f example-alerting-rule.yaml
其他资源
- 如需了解有关 OpenShift Container Platform 4.12 监控架构的详细信息,请参阅监控概述
- 有关警报规则的信息,请参阅 Alertmanager 文档。
- 如需有关重新标记工作的信息,请参阅 Prometheus 重新标记文档。
- 如需更多有关优化警报的指南,请参阅 Prometheus 警报文档。