11.8. 应用自定义 Alertmanager 配置

您可以通过编辑 Alertmanager 平台实例的 openshift-monitoring 命名空间中的 alertmanager-main secret 来覆盖默认的 Alertmanager 配置。

先决条件

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

流程

要从 CLI 更改 Alertmanager 配置:

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

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

    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>
    1
    group_wait 值指定,Alertmanager 在为一组警报发送初始通知前要等待的时间。这个值控制 Alertmanager 在发送通知前为同一组收集初始警报时等待的时间。
    2
    group_interval 值指定 Alertmanager 发送通知添加到已经发送初始通知的一组警报前必须经过的时间。
    3
    repeat_interval 值指定重复警报通知前必须经过的最小时间。如果您希望通知在每个组间隔重复,请将 repeat_interval 值设置为小于 group_interval 的值。但是,重复的通知仍然可能延迟,例如,当某些 Alertmanager pod 重启或重新调度时。
    4
    service 值指定触发警报的服务。
    5
    <your_matching_rules> 值指定目标警报。
    6
    receiver 值指定用于警报的接收器。
    注意

    使用 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. 应用文件中的新配置:

    $ 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 控制台更改 Alertmanager 配置:

  1. 进入 web 控制台的 AdministrationCluster SettingsConfigurationAlertmanagerYAML 页面。
  2. 修改 YAML 配置文件。
  3. 点击 Save