10分钟后停用prometheus警报

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

我有一个kubernetes集群,用于监控和警报,我正在使用普罗米修斯。 Prometheus alertmanager不断重复警报,直到它们处于活动状态。我想配置我的alertmanager只将一次警报发送到松弛状态,并仅在警报状态发生变化时重复警报

我尝试仅在特定时间生成警报,如下所示

(kube_pod_container_status_restarts_total> 3)*((ti​​me()%86400/3600> bool 3)== bool(time()%86400/3600 <bool 4))

但这对我不起作用

Prometheus服务器配置如下:

prometheus-server.yml

alert: PodRestartAlert
        expr: kube_pod_container_status_restarts_total >3
        for: 5m
        labels:
          severity:
        annotations:
          description: ""
          summary: 'The pods that are restarted more than 3 times'

Alertmanager配置如下:

global:
      slack_api_url: "http://"
    receivers:
    - name: default-receiver
      slack_configs:
      - channel: '#abc'
        text: Prometheus Alert generated
    route:
      group_by:
      - alertname
      - datacenter
      - app
      group_interval: 5m
      receiver: default-receiver
      repeat_interval: 0

我正在努力实现以下目标:

如果最初有10个已经重启超过3次的吊舱,那么它应该仅对松弛一次警报

如果在一两天之后,如果重新启动的pod的数量增加到只有20个pod,那么警报管理器应该抛出一个警报来松弛

关于我可以尝试或改变的任何建议都会有很大的帮助

提前致谢!

prometheus prometheus-alertmanager
1个回答
0
投票

您可以使用slack_configs.title创建通用消息,并通过触发/解决警报来使用slack_configs.text,这样您就可以在单个Slack消息中接收多个相同类型的警报。

此外,请务必设置slack_configs.send_resolved: true以获得有关已解决警报的通知。

e.f.:

alertmanager:
  config:
    global:
      resolve_timeout: 5m
    route:
      group_by:
        - alertname
        - datacenter
        - app
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: 'default-receiver'
    receivers:
    - name: 'default-receiver'
      slack_configs:
      - channel: '#abc'
        send_resolved: true
        title: '[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] Monitoring Event Notification'
        text: |-
          {{ range .Alerts }}
            *Alert:* {{ .Labels.alertname }} - `{{ .Labels.severity }}`
            *Description:* {{ .Annotations.summary }}
            *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:> *Runbook:* <{{ .Annotations.runbook_url }}|:spiral_note_pad:>
            *Details:*
            {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
            {{ end }}
          {{ end }}

上面的例子也在.Labels.SortedPairs的范围内,创建一个完整的“详细信息:”部分,其中包含所有涉及触发警报的内容。

警报应如下所示:slack_alert_example


进一步阅读:

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