第 6 章 管理警报
6.1. 以管理员身份管理警报 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 中,您可以通过 Alerting UI 管理警报、静默和警报规则。
从 OpenShift Container Platform 4.19 开始,Web 控制台中的视角会统一。Developer 视角不再默认启用。
所有用户都可以与所有 OpenShift Container Platform Web 控制台功能交互。但是,如果您不是集群所有者,您可能需要请求从集群所有者访问特定功能的权限。
您仍然可以启用 Developer 视角。在 web 控制台中的 Getting Started 窗格中,您可以浏览控制台,查找有关设置集群的信息,查看启用 Developer 视角的快速启动,并按照链接探索新功能。
Alerting UI 中可用的警报、静默和警报规则与您可访问的项目相关。例如,如果您以管理员身份登录,您可以访问所有警报、静默和警报规则。
6.1.1. 访问 Alerting UI 复制链接链接已复制到粘贴板!
Alerting UI 可在 OpenShift Container Platform Web 控制台中访问。
-
在 OpenShift Container Platform web 控制台中进入 Observe
Alerting。此视角中的 Alerting UI 中的三个主要页面是 Alerts、Silences 和 Alerting 规则 页面。
6.1.2. 获取关于警报、静默和警报规则的信息 复制链接链接已复制到粘贴板!
Alerting UI 提供有关警报及其相关警报规则和静默的详细信息。
先决条件
- 您可以使用具有查看警报的项目查看权限的用户访问集群。
流程
要获取有关警报的信息:
-
在 OpenShift Container Platform web 控制台中进入 Observe
Alerting Alerts 页面。 - 可选:使用搜索列表中的 Name 字段按名称搜索警报。
- 可选:通过选择 Filter 列表中的过滤器来按状态、严重性和来源过滤警报。
- 可选:点击 Name、Severity、State 和 Source 列标题中的一个或多个标题对警报进行排序。
点警报的名称查看其 Alert details 页面。该页面包含一个说明警报时间序列数据的图形。它还提供有关警报的以下信息:
- 警报的描述
- 与警报关联的消息
- 如果存在该警报的 GitHub 上 runbook 页的链接
- 附加到警报的标签
- 其相关警报规则的链接
- 警报的静默(如果存在)
要获取有关静默的信息:
-
在 OpenShift Container Platform web 控制台中进入 Observe
Alerting Silences 页。 - 可选:使用 Search by name 字段按名称过滤静默。
- 可选:通过选择 Filter 列表中的过滤器来按状态过滤静默。默认情况下会应用 Active 和 Pending 过滤器。
- 可选:点一个或多个 Name、Firing Alerts、State 和 Creator 栏上面的标头来对静默进行排序。
选择静默的名称来查看其 Silence 详情页面。该页面包括以下详情:
- 警报指定条件
- 开始时间
- 结束时间
- 静默状态
- 触发警报的数目和列表
要获取有关警报规则的信息:
-
在 OpenShift Container Platform web 控制台中进入 Observe
Alerting Alerting rules 页。 - 可选:通过选择 Filter 列表中的过滤器来按状态、严重性和来源过滤警报规则。
- 可选:点 Name,Severity,Alert state, 和 Source 列标题中的一个或多个标题对警报规则进行排序。
选择警报规则的名称来查看其 Alerting 规则详情页面。该页面提供有关警报规则的以下详情:
- 警报规则名称、严重性和描述。
- 定义触发警报的条件的表达式。
- 触发警报的条件应满足的时间。
- 受警报规则约束的各个警报的图形,其中显示了触发该警报的值
- 受警报规则约束的所有警报的列表
6.1.3. 管理静默 复制链接链接已复制到粘贴板!
您可以在 OpenShift Container Platform Web 控制台中为警报创建静默。在创建静默后,您可以查看、编辑这个静默,并可以使其过期。您还不会在警报触发时收到有关静默警报的通知。
在创建静默时,它们会在 Alertmanager pod 之间复制。但是,如果您没有为 Alertmanager 配置持久性存储,静默可能会丢失。例如,如果所有 Alertmanager pod 同时重启,会出现这种情况。
6.1.3.1. 静默警报 复制链接链接已复制到粘贴板!
您可以静默特定的警报或静默与您定义的规格匹配的警报。
先决条件
-
如果您是集群管理员,可以使用具有
cluster-admin
角色的用户访问集群。 如果您是非管理员用户,您可以使用具有以下用户角色的用户访问集群:
-
cluster-monitoring-view
集群角色,允许您访问 Alertmanager。 -
monitoring-alertmanager-edit
角色,允许您创建和静默警报。
-
流程
静默特定的警报:
-
在 OpenShift Container Platform web 控制台中,进入 Observe
Alerting Alerts。 -
对于您要静默的警报,点
并选择 Silence alert 以打开 Silence 警报 页,其中包含所选警报的默认配置。
可选:更改静默的默认配置详情。
注意在保存静默前,需要添加一个注释信息。
- 要保存静默,点 Silence。
静默一组警报:
-
在 OpenShift Container Platform web 控制台中,进入 Observe
Alerting Silences。 - 点 Create silence。
在 Create silence 页面中,设置警报的调度、持续时间和标签详情。
注意在保存静默前,需要添加一个注释信息。
- 要为与您输入的标签匹配的警报创建静默,请点 Silence。
6.1.3.2. 编辑静默 复制链接链接已复制到粘贴板!
您可以编辑一个静默,这会使现有静默到期,然后创建一个带有相关配置变化的静默。
先决条件
-
如果您是集群管理员,可以使用具有
cluster-admin
角色的用户访问集群。 如果您是非管理员用户,您可以使用具有以下用户角色的用户访问集群:
-
cluster-monitoring-view
集群角色,允许您访问 Alertmanager。 -
monitoring-alertmanager-edit
角色,允许您创建和静默警报。
-
流程
-
在 OpenShift Container Platform web 控制台中,进入 Observe
Alerting Silences。 针对您想要修改的静默,点
并选择 Edit silence。
或者,您可以点 Actions,然后在静默的 Silence details 页面中选择 Edit silence。
- 在 Edit silence 页面中,进行更改并点 Silence。这样做会使现有静默到期,并创建带有更新的配置。
6.1.3.3. 使静默到期 复制链接链接已复制到粘贴板!
您可以使单个静默或多个静默到期。使静默过期的效果是,永久取消激活它。
您无法删除已过期、静默的警报。超过 120 小时的过期的静默会被垃圾收集。
先决条件
-
如果您是集群管理员,可以使用具有
cluster-admin
角色的用户访问集群。 如果您是非管理员用户,您可以使用具有以下用户角色的用户访问集群:
-
cluster-monitoring-view
集群角色,允许您访问 Alertmanager。 -
monitoring-alertmanager-edit
角色,允许您创建和静默警报。
-
流程
-
进入 Observe
Alerting Silences。 - 对于您要过期的静默,选择对应行的复选框。
点 Expire 1 silence 使一个静默过期,或点 Expire <n> silences 使多个静默过期(其中 <n> 是你选择的静默数)。
另外,要使单个静默到期,您还可以点 Actions,然后在静默的 Silence details 页面中选择 Expire silence。
6.1.4. 管理用于核心平台监控的警报规则 复制链接链接已复制到粘贴板!
OpenShift Container Platform 监控包括一组用于平台指标的默认警报规则。作为集群管理员,您可以以两种方式自定义这组规则:
-
通过调整阈值或添加和修改标签来修改现有平台警报规则的设置。例如,您可以将一个警报的
severity
标签从warning
改为critical
以帮助您来处理相关的问题。 -
通过基于
openshift-monitoring
项目中的核心平台指标构建查询表达式来定义和添加新的自定义警报规则。
6.1.4.1. 创建新警报规则 复制链接链接已复制到粘贴板!
作为集群管理员,您可以根据平台指标创建新的警报规则。这些警报规则根据所选指标的值触发警报。
-
如果您基于现有平台警报规则创建自定义
AlertingRule
资源,请静默原始警报以避免收到冲突的警报。 - 为了帮助用户了解警报的影响和原因,请确保您的警报规则包含警报消息和严重性值。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
-
创建一个名为
example-alerting-rule.yaml
的新 YAML 配置文件。 向 YAML 文件添加
AlertingRule
资源。以下示例创建一个名为example
的新警报规则,类似于默认的Watchdog
警报:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您必须在
openshift-monitoring
命名空间中创建AlertingRule
对象。否则,将不接受警报规则。将配置文件应用到集群:
oc apply -f example-alerting-rule.yaml
$ oc apply -f example-alerting-rule.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.4.2. 修改核心平台警报规则 复制链接链接已复制到粘贴板!
作为集群管理员,您可以在 Alertmanager 将核心平台警报路由到接收器前修改核心平台警报。例如,您可以更改警报的严重性标签,添加自定义标签,或者从发送到 Alertmanager 中排除警报。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
-
创建名为
example-modified-alerting-rule.yaml
的新 YAML 配置文件。 在 YAML 文件中添加
AlertRelabelConfig
资源。以下示例将默认平台watchdog
警报规则的severity
设置改为critical
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您必须在
openshift-monitoring
命名空间中创建AlertRelabelConfig
对象。否则,警报标签不会改变。将配置文件应用到集群:
oc apply -f example-modified-alerting-rule.yaml
$ oc apply -f example-modified-alerting-rule.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.5. 为用户定义的项目管理警报规则 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 中,您可以为用户定义的项目创建、查看、编辑和删除警报规则。这些警报规则将根据所选指标的值触发警报。
6.1.5.1. 为用户定义的项目创建警报规则 复制链接链接已复制到粘贴板!
您可以为用户定义的项目创建警报规则。这些警报规则将根据所选指标的值触发警报。
为了帮助用户了解警报的影响和原因,请确保您的警报规则包含警报消息和严重性值。
先决条件
- 您已为用户定义的项目启用了监控。
-
您以集群管理员身份登录,或作为具有用于创建警报规则的项目的
monitoring-rules-edit
集群角色的用户登录。 -
已安装 OpenShift CLI(
oc
)。
流程
-
为警报规则创建 YAML 文件。在本例中,该文件名为
example-app-alerting-rule.yaml
。 向 YAML 文件添加警报规则配置。以下示例创建一个名为
example-alert
的新警报规则。当示例服务公开的version
指标变为0
时,警报规则会触发警报:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将配置文件应用到集群:
oc apply -f example-app-alerting-rule.yaml
$ oc apply -f example-app-alerting-rule.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.5.2. 为用户定义的项目创建跨项目警报规则 复制链接链接已复制到粘贴板!
您可以通过在 user-workload-monitoring-config
配置映射中配置项目,创建没有绑定到源项目的警报规则。然后,在这些项目中创建的 PrometheusRule
对象适用于所有项目。
因此,您可以具有适用于多个用户定义的项目的通用警报规则,而不是在每个用户项目中拥有单独的 PrometheusRule
对象。您可以使用 PrometheusRule
对象中的 PromQL 查询来过滤警报规则中包含的项目。
先决条件
-
如果您是集群管理员,可以使用具有
cluster-admin
集群角色的用户身份访问集群。 如果您是非管理员用户,您可以使用具有以下用户角色的用户访问集群:
-
openshift-user-workload-monitoring
项目中的user-workload-monitoring-config-edit
角色来编辑user-workload-monitoring-config
配置映射。 -
要创建警报规则的项目的
monitoring-rules-edit
集群角色。
-
- 集群管理员为用户定义的项目启用了监控。
-
已安装 OpenShift CLI(
oc
)。
流程
编辑
openshift-user-workload-monitoring
项目中的user-workload-monitoring-config
配置映射:oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置您要在其中创建不绑定到特定项目的警报规则的项目:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定要在其中创建跨项目警报规则的一个或多个项目。用户定义的监控的 Prometheus 和 Thanos Ruler 不强制这些项目中创建的
PrometheusRule
对象中的namespace
标签,使PrometheusRule
对象适用于所有项目。
-
为警报规则创建 YAML 文件。在本例中,它称为
example-cross-project-alerting-rule.yaml
。 向 YAML 文件添加警报规则配置。以下示例创建一个名为
example-security
的新跨项目警报规则。当用户项目不强制执行 restricted pod 安全策略时,警报规则会触发:跨项目警报规则示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保仅在
namespacesWithoutLabelEnforcement
字段中指定的项目中创建特定的跨项目警报规则。如果您在多个项目中创建相同的跨项目警报规则,则会重复警报。将配置文件应用到集群:
oc apply -f example-cross-project-alerting-rule.yaml
$ oc apply -f example-cross-project-alerting-rule.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.5.3. 在单个视图中列出所有项目的警报规则 复制链接链接已复制到粘贴板!
作为集群管理员,您可以在单个视图中一起列出 OpenShift Container Platform 核心项目和用户定义的项目的警报规则。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
-
在 OpenShift Container Platform web 控制台中,进入 Observe
Alerting Alerting rules。 在 Filter 下拉菜单中选择 Platform 和 User 来源。
注意默认会选择 Platform 来源。
6.1.5.4. 为用户定义的项目删除警报规则 复制链接链接已复制到粘贴板!
您可以为用户定义的项目删除警报规则。
先决条件
- 您已为用户定义的项目启用了监控。
-
您以集群管理员身份登录,或作为具有用于创建警报规则的项目的
monitoring-rules-edit
集群角色的用户登录。 -
已安装 OpenShift CLI(
oc
)。
流程
要删除
<namespace>
中的规则<alerting_rule>
,请运行以下命令:oc -n <namespace> delete prometheusrule <alerting_rule>
$ oc -n <namespace> delete prometheusrule <alerting_rule>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.5.5. 为用户定义的项目禁用跨项目警报规则 复制链接链接已复制到粘贴板!
为用户定义的项目创建跨项目警报规则默认启用。集群管理员可以禁用 cluster-monitoring-config
配置映射中的功能,理由如下:
- 要防止用户定义的监控过载集群监控堆栈。
- 要防止错误警报规则应用到集群,而无需识别导致此问题的规则。
先决条件
-
您可以使用具有
cluster-admin
集群角色的用户身份访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
编辑
openshift-monitoring
项目中的cluster-monitoring-config
配置映射:oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
cluster-monitoring-config
配置映射中,通过将data/config.yaml/userWorkload
下的rulesWithoutLabelEnforcementAllowed
值设置为false
来禁用创建跨项目警报规则的选项:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存文件以使改变生效。