Prometheus 10分钟后停用普罗米修斯警报

Prometheus 10分钟后停用普罗米修斯警报,prometheus,prometheus-alertmanager,Prometheus,Prometheus Alertmanager,我有一个kubernetes集群,我正在使用普罗米修斯进行监控和警报。普罗米修斯警报管理器不断重复警报,直到警报激活。 我想将alertmanager配置为仅向slack发送一次警报,并仅在警报状态发生变化时重复警报 我尝试只为特定时间生成警报,如下所示 (kube容器状态重新启动总计>3)*((时间()%86400/3600>bool 3)==bool(时间()%86400/3600

我有一个kubernetes集群,我正在使用普罗米修斯进行监控和警报。普罗米修斯警报管理器不断重复警报,直到警报激活。 我想将alertmanager配置为仅向slack发送一次警报,并仅在警报状态发生变化时重复警报

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

(kube容器状态重新启动总计>3)*((时间()%86400/3600>bool 3)==bool(时间()%86400/3600 但这对我不起作用

普罗米修斯服务器配置如下:

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'
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

Alertmanager配置如下所示:

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'
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,则警报管理器也应仅向松弛的POD发出一次警报

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


提前谢谢

您可以使用
slack\u configs.title
创建通用消息,并将其
slack\u configs.text
设置为触发/解析警报的范围,因此您可以在单个slack消息中接收相同类型的多个警报

此外,请确保将
slack\u configs.send\u resolved:true
设置为收到已解决警报的通知

例如:

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 }}
alertmanager:
配置:
全球的:
解决超时:5米
路线:
分组人:
-alertname
-数据中心
-应用程序
分组等待:30秒
组间隔:5m
重复间隔:12小时
接收者:“默认接收者”
接收人:
-名称:“默认接收器”
slack\u配置:
-频道:“#abc”
发送解决方案:正确
标题:“[{.Status | toUpper}{{{if eq.Status“firing”}}:{{{.Alerts.firing | len}}}{{{end}]监视事件通知”
正文:|-
{{range.Alerts}
*警报:{{.Labels.alertname}-`{{.Labels.severity}`
*说明:{{.Annotations.summary}
*图表:**运行手册:*
*详情:*
{range.Labels.SortedPairs}}•*{{.Name}::`{.Value}`
{{end}
{{end}
上述示例还涵盖了
.Labels.SortedPairs
,创建了一个完整的“详细信息:”部分,其中包含所有与开火警报相关的内容

警报应如下所示:


进一步阅读:

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 }}

您可以使用
slack\u configs.title
创建通用消息,并将其
slack\u configs.text
设置为触发/解析警报的范围,因此您可以在单个slack消息中接收相同类型的多个警报

此外,请确保将
slack\u configs.send\u resolved:true
设置为收到已解决警报的通知

例如:

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 }}
alertmanager:
配置:
全球的:
解决超时:5米
路线:
分组人:
-alertname
-数据中心
-应用程序
分组等待:30秒
组间隔:5m
重复间隔:12小时
接收者:“默认接收者”
接收人:
-名称:“默认接收器”
slack\u配置:
-频道:“#abc”
发送解决方案:正确
标题:“[{.Status | toUpper}{{{if eq.Status“firing”}}:{{{.Alerts.firing | len}}}{{{end}]监视事件通知”
正文:|-
{{range.Alerts}
*警报:{{.Labels.alertname}-`{{.Labels.severity}`
*说明:{{.Annotations.summary}
*图表:**运行手册:*
*详情:*
{range.Labels.SortedPairs}}•*{{.Name}::`{.Value}`
{{end}
{{end}
上述示例还涵盖了
.Labels.SortedPairs
,创建了一个完整的“详细信息:”部分,其中包含所有与开火警报相关的内容

警报应如下所示:


进一步阅读:

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 }}