搜索

10.5. 管理用于核心平台监控的警报规则

download PDF

OpenShift Container Platform 4.16 监控附带一组用于平台指标的默认警报规则。作为集群管理员,您可以以两种方式自定义这组规则:

  • 通过调整阈值或添加和修改标签来修改现有平台警报规则的设置。例如,您可以将一个警报的 severity 标签从 warning 改为 critical 以帮助您来处理相关的问题。
  • 通过基于 openshift-monitoring 命名空间中的核心平台指标构建查询表达式,定义和添加新的自定义警报规则。

核心平台警报规则考虑

  • 新的警报规则必须基于默认的 OpenShift Container Platform 监控指标。
  • 您必须在 openshift-monitoring 命名空间中创建 AlertingRuleAlertRelabelConfig 对象。
  • 您只能添加和修改警报规则。您无法创建新的记录规则或修改现有的记录规则。
  • 如果您使用 AlertRelabelConfig 对象修改现有平台警报规则,您的修改不会反映在 Prometheus 警报 API 中。因此,任何丢弃的警报仍出现在 OpenShift Container Platform web 控制台中,即使它们不再被转发到 Alertmanager。另外,任何对警报的修改(如更改了 severity 标签)都不会出现在 web 控制台中。

10.5.1. 为核心平台监控优化警报规则的建议

如果您需要自定义核心平台警报规则来满足机构的特定需求,请遵循以下准则,确保自定义规则可以实现预期的目且高效。

  • 使用尽可能少的新规则。仅创建符合您特定要求的规则。通过使用最少的规则数量,您可以在监控环境中创建更易管理且集中的警报系统。
  • 专注于症状而不是原因。创建规则来通知用户症状而不是造成症状的根本原因。这可以确保,在出现相关症状时用户可以获得警报,用户可以调查触发警报的根本原因。使用这个策略,可以显著降低了您需要创建的规则的总数量。
  • 在实施更改之前,规划并评估您的需求。首先,明确哪些症状是重要的,以及在出现这些症状时您希望用户执行哪些操作。然后,评估现有规则,决定是否可以通过修改这些规则来实现您的目的,而不用为每个症状都创建一个新的规则。通过修改现有规则并谨慎创建新规则,可帮助您简化警报系统。
  • 提供明确的警报信息。当您创建警报消息时,包括症状的描述、可能的原因和推荐的操作。包括的信息应该明确、简明,并包括故障排除步骤或更多相关信息的链接。这样做有助于用户快速评估情况并做出适当响应。
  • 包括严重性级别。为您的规则分配严重性级别,以提示用户在出现症状并触发警报时如何响应。例如,将警报严重性级别定为 关键(Critical) 信号,代表相关人员需要马上做出响应。通过定义严重性级别,可以帮助用户决定在收到警报时应如何响应,并确保对紧急的问题马上做出响应

10.5.2. 创建新警报规则

作为集群管理员,您可以根据平台指标创建新的警报规则。这些警报规则根据所选指标的值触发警报。

注意
  • 如果您基于现有平台警报规则创建自定义 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

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

作为集群管理员,您可以在 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

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.