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