第 5 章 管理警报


5.1. 以管理员身份管理警报

在 Red Hat OpenShift Service on AWS 中,您可以通过 Alerting UI 管理警报、静默和警报规则。

重要

从 Red Hat OpenShift Service on AWS 4.19 开始,Web 控制台中的视角会统一。Developer 视角不再默认启用。

所有用户都可以与所有 Red Hat OpenShift Service on AWS Web 控制台功能交互。但是,如果您不是集群所有者,您可能需要从集群所有者请求权限。

您仍然可以启用 Developer 视角。在 web 控制台中的 Getting Started 窗格中,您可以浏览控制台,查找有关设置集群的信息,查看启用 Developer 视角的快速启动,并按照链接探索新功能。

注意

Alerting UI 中可用的警报、静默和警报规则与您可访问的项目相关。例如,如果您以管理员身份登录,您可以访问所有警报、静默和警报规则。

5.1.1. 访问 Alerting UI

Alerting UI 可在 Red Hat OpenShift Service on AWS Web 控制台中访问。

  • 在 Red Hat OpenShift Service on AWS web 控制台中进入 Observe Alerting。此视角中的 Alerting UI 中的三个主要页面是 AlertsSilencesAlerting 规则 页面。

5.1.2. 获取关于警报、静默和警报规则的信息

Alerting UI 提供有关警报及其相关警报规则和静默的详细信息。

先决条件

  • 您可以使用具有查看警报的项目查看权限的用户访问集群。

流程

要获取有关警报的信息:

  1. 在 Red Hat OpenShift Service on AWS web 控制台中,进入 Observe Alerting Alerts 页面。
  2. 可选:使用搜索列表中的 Name 字段按名称搜索警报。
  3. 可选:通过选择 Filter 列表中的过滤器来按状态、严重性和来源过滤警报。
  4. 可选:点击 NameSeverityStateSource 列标题中的一个或多个标题对警报进行排序。
  5. 点警报的名称查看其 Alert details 页面。该页面包含一个说明警报时间序列数据的图形。它还提供有关警报的以下信息:

    • 警报的描述
    • 与警报关联的消息
    • 如果存在该警报的 GitHub 上 runbook 页的链接
    • 附加到警报的标签
    • 其相关警报规则的链接
    • 警报的静默(如果存在)

要获取有关静默的信息:

  1. 在 Red Hat OpenShift Service on AWS web 控制台中,进入 Observe Alerting Silences 页面。
  2. 可选:使用 Search by name 字段按名称过滤静默。
  3. 可选:通过选择 Filter 列表中的过滤器来按状态过滤静默。默认情况下会应用 ActivePending 过滤器。
  4. 可选:点一个或多个 NameFiring AlertsStateCreator 栏上面的标头来对静默进行排序。
  5. 选择静默的名称来查看其 Silence 详情页面。该页面包括以下详情:

    • 警报指定条件
    • 开始时间
    • 结束时间
    • 静默状态
    • 触发警报的数目和列表

要获取有关警报规则的信息:

  1. 在 Red Hat OpenShift Service on AWS web 控制台中,进入 Observe Alerting Alerting rules 页面。
  2. 可选:通过选择 Filter 列表中的过滤器来按状态、严重性和来源过滤警报规则。
  3. 可选:点 Name,Severity,Alert state, 和 Source 列标题中的一个或多个标题对警报规则进行排序。
  4. 选择警报规则的名称来查看其 Alerting 规则详情页面。该页面提供有关警报规则的以下详情:

    • 警报规则名称、严重性和描述。
    • 定义触发警报的条件的表达式。
    • 触发警报的条件应满足的时间。
    • 受警报规则约束的各个警报的图形,其中显示了触发该警报的值
    • 受警报规则约束的所有警报的列表

5.1.3. 管理静默

您可以在 Red Hat OpenShift Service on AWS Web 控制台中为警报创建静默。在创建静默后,您可以查看、编辑这个静默,并可以使其过期。您还不会在警报触发时收到有关静默警报的通知。

注意

在创建静默时,它们会在 Alertmanager pod 之间复制。但是,如果您没有为 Alertmanager 配置持久性存储,静默可能会丢失。例如,如果所有 Alertmanager pod 同时重启,会出现这种情况。

5.1.3.1. 静默警报

您可以静默特定的警报或静默与您定义的规格匹配的警报。

先决条件

  • 如果您是集群管理员,可以使用具有 cluster-admin 角色的用户访问集群。
  • 如果您是非管理员用户,您可以使用具有以下用户角色的用户访问集群:

    • cluster-monitoring-view 集群角色,允许您访问 Alertmanager。
    • monitoring-alertmanager-edit 角色,允许您创建和静默警报。

流程

静默特定的警报:

  1. 在 Red Hat OpenShift Service on AWS web 控制台中,进入 Observe Alerting Alerts
  2. 对于您要静默的警报,点 kebab 并选择 Silence alert 以打开 Silence 警报 页,其中包含所选警报的默认配置。
  3. 可选:更改静默的默认配置详情。

    注意

    在保存静默前,需要添加一个注释信息。

  4. 要保存静默,点 Silence

静默一组警报:

  1. 在 Red Hat OpenShift Service on AWS web 控制台中,进入 Observe Alerting Silences
  2. Create silence
  3. Create silence 页面中,设置警报的调度、持续时间和标签详情。

    注意

    在保存静默前,需要添加一个注释信息。

  4. 要为与您输入的标签匹配的警报创建静默,请点 Silence

5.1.3.2. 编辑静默

您可以编辑一个静默,这会使现有静默到期,然后创建一个带有相关配置变化的静默。

先决条件

  • 如果您是集群管理员,可以使用具有 cluster-admin 角色的用户访问集群。
  • 如果您是非管理员用户,您可以使用具有以下用户角色的用户访问集群:

    • cluster-monitoring-view 集群角色,允许您访问 Alertmanager。
    • monitoring-alertmanager-edit 角色,允许您创建和静默警报。

流程

  1. 在 Red Hat OpenShift Service on AWS web 控制台中,进入 Observe Alerting Silences
  2. 针对您想要修改的静默,点 kebab 并选择 Edit silence

    或者,您可以点 Actions,然后在静默的 Silence details 页面中选择 Edit silence

  3. Edit silence 页面中,进行更改并点 Silence。这样做会使现有静默到期,并创建带有更新的配置。

5.1.3.3. 使静默到期

您可以使单个静默或多个静默到期。使静默过期的效果是,永久取消激活它。

注意

您无法删除已过期、静默的警报。超过 120 小时的过期的静默会被垃圾收集。

先决条件

  • 如果您是集群管理员,可以使用具有 cluster-admin 角色的用户访问集群。
  • 如果您是非管理员用户,您可以使用具有以下用户角色的用户访问集群:

    • cluster-monitoring-view 集群角色,允许您访问 Alertmanager。
    • monitoring-alertmanager-edit 角色,允许您创建和静默警报。

流程

  1. 进入 Observe Alerting Silences
  2. 对于您要过期的静默,选择对应行的复选框。
  3. Expire 1 silence 使一个静默过期,或点 Expire <n> silences 使多个静默过期(其中 <n> 是你选择的静默数)。

    另外,要使单个静默到期,您还可以点 Actions,然后在静默的 Silence details 页面中选择 Expire silence

5.1.4. 为用户定义的项目管理警报规则

在 Red Hat OpenShift Service on AWS 中,您可以为用户定义的项目创建、查看、编辑和删除警报规则。这些警报规则将根据所选指标的值触发警报。

5.1.4.1. 为用户定义的项目创建警报规则

您可以为用户定义的项目创建警报规则。这些警报规则将根据所选指标的值触发警报。

注意

为了帮助用户了解警报的影响和原因,请确保您的警报规则包含警报消息和严重性值。

先决条件

  • 您已为用户定义的项目启用了监控。
  • 您以集群管理员身份登录,或作为具有用于创建警报规则的项目的 monitoring-rules-edit 集群角色的用户登录。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 为警报规则创建 YAML 文件。在本例中,该文件名为 example-app-alerting-rule.yaml
  2. 向 YAML 文件添加警报规则配置。以下示例创建一个名为 example-alert 的新警报规则。当示例服务公开的 version 指标变为 0 时,警报规则会触发警报:

    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      name: example-alert
      namespace: ns1
    spec:
      groups:
      - name: example
        rules:
        - alert: VersionAlert 
    1
    
          for: 1m 
    2
    
          expr: version{job="prometheus-example-app"} == 0 
    3
    
          labels:
            severity: warning 
    4
    
          annotations:
            message: This is an example alert. 
    5
    Copy to Clipboard Toggle word wrap
    1
    您要创建的警报规则的名称。
    2
    触发警报前条件应为 true 的持续时间。
    3
    定义新规则的 PromQL 查询表达式。
    4
    警报规则分配给警报的严重性。
    5
    与警报关联的消息。
  3. 将配置文件应用到集群:

    $ oc apply -f example-app-alerting-rule.yaml
    Copy to Clipboard Toggle word wrap

您可以通过在 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)。

流程

  1. 编辑 openshift-user-workload-monitoring 项目中的 user-workload-monitoring-config 配置映射:

    $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
    Copy to Clipboard Toggle word wrap
  2. 配置您要在其中创建不绑定到特定项目的警报规则的项目:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: user-workload-monitoring-config
      namespace: openshift-user-workload-monitoring
    data:
      config.yaml: |
        namespacesWithoutLabelEnforcement: [ <namespace1>, <namespace2> ] 
    1
    
        # ...
    Copy to Clipboard Toggle word wrap
    1
    指定要在其中创建跨项目警报规则的一个或多个项目。用户定义的监控的 Prometheus 和 Thanos Ruler 不强制这些项目中创建的 PrometheusRule 对象中的 namespace 标签,使 PrometheusRule 对象适用于所有项目。
  3. 为警报规则创建 YAML 文件。在本例中,它称为 example-cross-project-alerting-rule.yaml
  4. 向 YAML 文件添加警报规则配置。以下示例创建一个名为 example-security 的新跨项目警报规则。当用户项目不强制执行 restricted pod 安全策略时,警报规则会触发:

    跨项目警报规则示例

    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      name: example-security
      namespace: ns1 
    1
    
    spec:
      groups:
        - name: pod-security-policy
          rules:
            - alert: "ProjectNotEnforcingRestrictedPolicy" 
    2
    
              for: 5m 
    3
    
              expr: kube_namespace_labels{namespace!~"(openshift|kube).*|default",label_pod_security_kubernetes_io_enforce!="restricted"} 
    4
    
              annotations:
                message: "Restricted policy not enforced. Project {{ $labels.namespace }} does not enforce the restricted pod security policy." 
    5
    
              labels:
                severity: warning 
    6
    Copy to Clipboard Toggle word wrap

    1
    确保指定您在 namespacesWithoutLabelEnforcement 字段中定义的项目。
    2
    您要创建的警报规则的名称。
    3
    触发警报前条件应为 true 的持续时间。
    4
    定义新规则的 PromQL 查询表达式。您可以使用 namespace 标签上的标签匹配器来过滤在警报规则中包含或排除哪些项目。
    5
    与警报关联的消息。
    6
    警报规则分配给警报的严重性。
    重要

    确保仅在 namespacesWithoutLabelEnforcement 字段中指定的项目中创建特定的跨项目警报规则。如果您在多个项目中创建相同的跨项目警报规则,则会重复警报。

  5. 将配置文件应用到集群:

    $ oc apply -f example-cross-project-alerting-rule.yaml
    Copy to Clipboard Toggle word wrap

作为集群管理员,您可以在单个视图中一起列出 AWS 上的 Red Hat OpenShift Service 核心项目和用户定义的项目的警报规则。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 在 Red Hat OpenShift Service on AWS web 控制台中,进入 Observe Alerting Alerting rules
  2. Filter 下拉菜单中选择 PlatformUser 来源。

    注意

    默认会选择 Platform 来源。

5.1.4.4. 为用户定义的项目删除警报规则

您可以为用户定义的项目删除警报规则。

先决条件

  • 您已为用户定义的项目启用了监控。
  • 您以集群管理员身份登录,或作为具有用于创建警报规则的项目的 monitoring-rules-edit 集群角色的用户登录。
  • 已安装 OpenShift CLI(oc)。

流程

  • 要删除 <namespace> 中的规则 <alerting_rule>,请运行以下命令:

    $ oc -n <namespace> delete prometheusrule <alerting_rule>
    Copy to Clipboard Toggle word wrap

为用户定义的项目创建跨项目警报规则默认启用。集群管理员可以禁用 cluster-monitoring-config 配置映射中的功能,理由如下:

  • 要防止用户定义的监控过载集群监控堆栈。
  • 要防止错误警报规则应用到集群,而无需识别导致此问题的规则。

先决条件

  • 您可以使用具有 cluster-admin 集群角色的用户身份访问集群。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 编辑 openshift-monitoring 项目中的 cluster-monitoring-config 配置映射:

    $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
    Copy to Clipboard Toggle word wrap
  2. cluster-monitoring-config 配置映射中,通过将 data/config.yaml/userWorkload 下的 rulesWithoutLabelEnforcementAllowed 值设置为 false 来禁用创建跨项目警报规则的选项:

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
        userWorkload:
          rulesWithoutLabelEnforcementAllowed: false
        # ...
    Copy to Clipboard Toggle word wrap
  3. 保存文件以使改变生效。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat