第 6 章 管理警报


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

在 OpenShift Container Platform 中,您可以通过 Alerting UI 管理警报、静默和警报规则。

注意

Alerting UI 中可用的警报、静默和警报规则与您可访问的项目相关。例如,如果您以具有 cluster-admin 角色的用户身份登录,您可以访问所有警报、静默和警报规则。

6.1.1. 从 Administrator 视角访问 Alerting UI

Alerting UI 可通过 OpenShift Container Platform Web 控制台的 Administrator 视角访问。

  • Administrator 视角中,进入 Observe Alerting。此视角中的 Alerting UI 中的三个主要页面是 AlertsSilencesAlerting 规则 页面。

6.1.2. 从 Administrator 视角获取警报、静默和警报规则的信息

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

先决条件

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

流程

要获取有关警报的信息:

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

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

要获取有关静默的信息:

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

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

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

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

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

其他资源

6.1.3. 管理静默

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

注意

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

6.1.3.1. 从 Administrator 视角静默警报

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

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

静默特定的警报:

  1. 从 OpenShift Container Platform Web 控制台的 Administrator 视角,进入 Observe Alerting Alerts
  2. 对于您要静默的警报,点 kebab 并选择 Silence alert 以打开 Silence 警报 页面,其中包含所选警报的默认配置。
  3. 可选:更改静默的默认配置详情。

    注意

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

  4. 要保存静默,点 Silence

静默一组警报:

  1. 从 OpenShift Container Platform Web 控制台的 Administrator 视角,进入 Observe Alerting Silences
  2. Create silence
  3. Create silence 页面中,设置警报的调度、持续时间和标签详情。

    注意

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

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

6.1.3.2. 从 Administrator 视角编辑静默

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

先决条件

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

    • cluster-monitoring-view 集群角色,允许您访问 Alertmanager。
    • monitoring-alertmanager-edit 角色,允许您在 web 控制台的 Administrator 视角中创建和静默警报

流程

  1. 从 OpenShift Container Platform Web 控制台的 Administrator 视角,进入 Observe Alerting Silences
  2. 针对您想要修改的静默,点 kebab 并选择 Edit silence

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

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

6.1.3.3. 从 Administrator 视角使静默到期

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

注意

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

先决条件

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

    • cluster-monitoring-view 集群角色,允许您访问 Alertmanager。
    • monitoring-alertmanager-edit 角色,允许您在 web 控制台的 Administrator 视角中创建和静默警报

流程

  1. 进入 Observe Alerting Silences
  2. 对于您要过期的静默,选择对应行的复选框。
  3. 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)。

流程

  1. 创建一个名为 example-alerting-rule.yaml 的新 YAML 配置文件。
  2. 向 YAML 文件添加 AlertingRule 资源。以下示例创建一个名为 example 的新警报规则,类似于默认的 Watchdog 警报:

    apiVersion: monitoring.openshift.io/v1
    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
    1
    确保命名空间为 openshift-monitoring
    2
    您要创建的警报规则的名称。
    3
    触发警报前条件应为 true 的持续时间。
    4
    定义新规则的 PromQL 查询表达式。
    5
    警报规则分配给警报的严重性。
    6
    与警报关联的消息。
    重要

    您必须在 openshift-monitoring 命名空间中创建 AlertingRule 对象。否则,将不接受警报规则。

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

    $ oc apply -f example-alerting-rule.yaml

6.1.4.2. 修改核心平台警报规则

作为集群管理员,您可以在 Alertmanager 将核心平台警报路由到接收器前修改核心平台警报。例如,您可以更改警报的严重性标签,添加自定义标签,或者从发送到 Alertmanager 中排除警报。

先决条件

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

流程

  1. 创建名为 example-modified-alerting-rule.yaml 的新 YAML 配置文件。
  2. 在 YAML 文件中添加 AlertRelabelConfig 资源。以下示例将默认平台 watchdog 警报规则的 severity 设置改为 critical

    apiVersion: monitoring.openshift.io/v1
    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
    1
    确保命名空间为 openshift-monitoring
    2
    要修改的值的源标签。
    3
    匹配的 sourceLabels 值的正则表达式。
    4
    要修改的值的目标标签。
    5
    要替换目标标签的新值。
    6
    基于正则表达式匹配替换旧值的重新标记操作。默认操作为 Replace。其他可能的值有 Keep,Drop,HashMod,LabelMap,LabelDrop, LabelKeep
    重要

    您必须在 openshift-monitoring 命名空间中创建 AlertRelabelConfig 对象。否则,警报标签不会改变。

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

    $ oc apply -f example-modified-alerting-rule.yaml

其他资源

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

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

6.1.5.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
    1
    您要创建的警报规则的名称。
    2
    触发警报前条件应为 true 的持续时间。
    3
    定义新规则的 PromQL 查询表达式。
    4
    警报规则分配给警报的严重性。
    5
    与警报关联的消息。
  3. 将配置文件应用到集群:

    $ oc apply -f example-app-alerting-rule.yaml

其他资源

6.1.5.2. 在单个视图中列出所有项目的警报规则

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

先决条件

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

流程

  1. 从 OpenShift Container Platform Web 控制台的 Administrator 视角,进入 Observe Alerting Alerting rules
  2. Filter 下拉菜单中选择 PlatformUser 来源。

    注意

    默认会选择 Platform 来源。

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

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

先决条件

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

流程

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

    $ oc -n <namespace> delete prometheusrule <foo>

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.