10.8. 配置 Alertmanager 以发送通知


您可以通过编辑 alertmanager-main secret 为默认平台警报或 alertmanager-user-workload secret 用于用户定义的警报,将 Alertmanager 配置为发送通知。

注意

一个支持的上游版本中的所有功能也在OpenShift Alertmanager 配置中支持。要检查受支持的上游 Alertmanager 版本的所有配置选项,请参阅 Alertmanager 配置

10.8.1. 为默认平台警报配置通知

您可以将 Alertmanager 配置为发送通知。通过编辑 openshift-monitoring 命名空间中的 alertmanager-main secret 中的默认配置来自定义 Alertmanager 如何发送通知有关默认平台警报的通知。

重要

Alertmanager 默认不会发送通知。建议您通过在 alertmanager-main secret 配置文件中设置通知详情,将 Alertmanager 配置为接收通知。

先决条件

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

流程

  1. 打开 Alertmanager YAML 配置文件:

    • 通过 CLI 打开 Alertmanager 配置:

      1. 将当前活跃的 Alertmanager 配置从 alertmanager-main secret 输出到 alertmanager.yaml 文件中:

        $ oc -n openshift-monitoring get secret alertmanager-main --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml
      2. 打开 alertmanager.yaml 文件。
    • 从 OpenShift Container Platform Web 控制台打开 Alertmanager 配置:

      1. 进入 web 控制台的 Administration Cluster Settings Configuration Alertmanager YAML 页面。
  2. 通过更新 YAML 中的参数来编辑 Alertmanager 配置:

    global:
      resolve_timeout: 5m
    route:
      group_wait: 30s 1
      group_interval: 5m 2
      repeat_interval: 12h 3
      receiver: default
      routes:
      - matchers:
        - "alertname=Watchdog"
        repeat_interval: 2m
        receiver: watchdog
      - matchers:
        - "service=<your_service>" 4
        routes:
        - matchers:
          - <your_matching_rules> 5
          receiver: <receiver> 6
    receivers:
    - name: default
    - name: watchdog
    - name: <receiver>
      <receiver_configuration> 7
    1
    指定在为一组警报收集初始警报时 Alertmanager 在发送通知时等待的时间。
    2
    指定 Alertmanager 向已发送初始通知的一组警报发送有关新警报的通知前必须经过的时间。
    3
    指定在通知重复前必须经过的最短时间。如果您希望通知在每个组间隔重复,请将 repeat_interval 值设置为小于 group_interval 的值。重复的通知仍然可以延迟,例如当某些 Alertmanager pod 重启或重新调度时。
    4
    指定触发警报的服务名称。
    5
    指定与警报匹配的标签。
    6
    指定要用于警报的接收器名称。
    7
    指定接收器配置。
    重要
    • 使用 matchers 键名称来指示警报要与节点匹配的匹配者。不要使用 matchmatch_re 键名称,它们都已弃用,并计划在以后的发行版本中删除。
    • 如果您定义了禁止规则,请使用以下密钥名称:

      • target_matchers: 表示目标匹配器
      • source_matchers: 用于指示源匹配器

      不要使用 target_match,target_match_re,source_match, 或 source_match_re 键名称,这些名称已弃用,并计划在以后的发行版本中删除。

    以下 Alertmanager 配置示例将 PagerDuty 配置为警报接收器:

    global:
      resolve_timeout: 5m
    route:
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: default
      routes:
      - matchers:
        - "alertname=Watchdog"
        repeat_interval: 2m
        receiver: watchdog
      - matchers:
        - "service=example-app"
        routes:
        - matchers:
          - "severity=critical"
          receiver: team-frontend-page
    receivers:
    - name: default
    - name: watchdog
    - name: team-frontend-page
      pagerduty_configs:
      - service_key: "<your_key>"

    使用这个配置,由 example-app 服务触发 critical 严重性等级的警报将通过 team-frontend-page 接收器发送。通常情况下,这些类型的警报会传给个人或关键响应团队。

  3. 应用文件中的新配置:

    • 要从 CLI 应用更改,请运行以下命令:

      $ oc -n openshift-monitoring create secret generic alertmanager-main --from-file=alertmanager.yaml --dry-run=client -o=yaml |  oc -n openshift-monitoring replace secret --filename=-
    • 要从 OpenShift Container Platform Web 控制台应用更改,请点 Save

10.8.2. 为用户定义的项目配置通知

如果您启用了专用于用户定义的警报路由的 Alertmanager 实例,您可以通过编辑 openshift-user-workload-monitoring 命名空间中的 alertmanager-user-workload secret 来自定义实例发送通知的位置和方式。

先决条件

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

流程

  1. 将当前活跃的 Alertmanager 配置输出到 alertmanager.yaml 文件:

    $ oc -n openshift-user-workload-monitoring get secret alertmanager-user-workload --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml
  2. 编辑 alertmanager.yaml 中的配置:

    route:
      receiver: Default
      group_by:
      - name: Default
      routes:
      - matchers:
        - "service = prometheus-example-monitor" 1
        receiver: <receiver> 2
    receivers:
    - name: Default
    - name: <receiver>
      <receiver_configuration> 3
    1
    指定与警报匹配的标签。这个示例将带有 service="prometheus-example-monitor" 标签的所有警报作为目标。
    2
    指定用于警报组的接收器名称。
    3
    指定接收器配置。
  3. 应用文件中的新配置:

    $ oc -n openshift-user-workload-monitoring create secret generic alertmanager-user-workload --from-file=alertmanager.yaml --dry-run=client -o=yaml |  oc -n openshift-user-workload-monitoring replace secret --filename=-
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.