警报管理器中基于时间的升级

问题描述 投票:0回答:1

假设我有一个与磁盘空间相关的警报,它在以下级别触发。 首先是 85%(这个接收者是管理员),然后是 90%(这个接收者是超级管理员),最后是 95%(这个超级管理员的接收者)。 现在我要解决的问题是,假设触发了第一个警报,现在磁盘空间为 88%。现在,无论谁是负责人都收到了警报,但超过 40 分钟警报仍未解决,磁盘空间仅保持在 88%。负责人正在收到警报,但由于他们不可用,他们无法解决此警报。 现在我想做的是在 alertmanager 中创建一个升级策略,假设第一个触发的警报在不到 30 分钟的时间内没有被管理员解决,它应该升级到超级管理员,如果它有类似的注意事项超过 45 分钟仍未解决,应升级为超级管理员。

我的规则文件看起来像这样

- alert: DiskUsage85
    expr: '(100 - (sum(node_filesystem_avail_bytes{instance="abc.xyz:9100"}  / node_filesystem_size_bytes{instance="abc.xyz:9100"}) BY (device,instance,mountpoint,stack) * 100)) > 85'
    for: 5m
    labels:
      maildest: admin
      severity: critical
    annotations:
      description: '{% raw %}{{reReplaceAll "(.*):(.*)" "${1}" $labels.instance}} - Disk {{$labels.device}} ({{$labels.mountpoint}}) has {{$value | printf "%.2f"}} (>80%) space usage{% endraw %}'
      summary: '{% raw %}WARN: {{ reReplaceAll "(.*):(.*)" "${1}" $labels.instance }} - Disk {{$labels.device }} ({{$labels.mountpoint}}) is {{$value | printf "%.2f"}}% full  {% endraw %}'

我有类似的磁盘使用率 90% 和 95% 占用警报

我的 alertmanager.yml 非常普通(只需添加路由和接收器,我有类似的超级管理员和超级管理员接收器)


route:

  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 24h
  receiver: team-X-mails
  
  routes:
    - receiver: admin
      match:
        maildest: admin

    - receiver: super-admin
      match:
        maildest: super-admin

    - receiver: ultra-admin
      match:
        maildest: ultra-admin
        
receivers:
- name: 'team-X-mails'
  email_configs:
    - to: '[email protected]'
      send_resolved: true
      headers:
        subject: '[{{ .Status | toUpper }}{{if eq .Status "firing"}}:{{.Alerts.Firing|len}}{{end}}] {{ .CommonAnnotations.summary }}'

- name: 'admin'
  email_configs:
    - to: '[email protected]'
      send_resolved: true
      headers:
        subject: '[{{ .Status | toUpper }}{{if eq .Status "firing"}}:{{.Alerts.Firing|len}}{{end}}] {{ .CommonAnnotations.summary }}'

谢谢

devops monitoring open-source prometheus-alertmanager alertmanager
1个回答
0
投票

警报升级超出了 alertmanager 的范围。

您可以在 PagerDuty 或模拟中详细配置升级。

或者,您可以再创建两个相同的警报,但使用

for: 30m
for: 45m
以及相应的接收器。

© www.soinside.com 2019 - 2024. All rights reserved.