PrometheusAlert告警模板https://github.com/feiyu563/PrometheusAlert
https://github.com/feiyu563/PrometheusAlert 好用的告警webhook地址
飞书告警模板 · Issue #376 · feiyu563/PrometheusAlert (github.com)
[prometheus自定义模版,支持恢复通知模版]
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}
{{if eq $v.status "resolved"}}
## [Prometheus恢复信息]({{$v.generatorURL}})
#### [{{$v.labels.alertname}}]({{$var}})
###### 告警级别:{{$v.labels.level}}
###### 开始时间:{{$v.startsAt}}
###### 结束时间:{{$v.endsAt}}
###### 故障主机IP:{{$v.labels.instance}}
##### {{$v.annotations.description}}

{{else}}
## [Prometheus告警信息]({{$v.generatorURL}})
#### [{{$v.labels.alertname}}]({{$var}})
###### 告警级别:{{$v.labels.level}}
###### 开始时间:{{$v.startsAt}}
###### 结束时间:{{$v.endsAt}}
###### 故障主机IP:{{$v.labels.instance}}
##### {{$v.annotations.description}}

{{end}}
{{ end }}
最终---20240903
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}{{if eq $v.status "resolved"}} ✅**[故障恢复(👆可点击查询最新数据)]({{$v.generatorURL}})**
告警名称:{{$v.labels.alertname}}
相关服务:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{ end }}
开始时间:{{GetCSTtime $v.startsAt}}
恢复时间:{{GetCSTtime $v.endsAt}}
告警状态:{{$v.status}}
故障实例:{{$v.labels.instance}}{{else}}🆘**[故障告警]({{$v.generatorURL}})**
告警名称:{{$v.labels.alertname}}
相关服务:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{ end }}
开始时间:{{GetCSTtime $v.startsAt}}
告警状态:{{$v.status}}
故障实例:{{$v.labels.instance}}
告警描述:{{$v.annotations.description}}{{end}}{{ end }}
{{ $urimsg:=""}}{{ range $key,$value:=.commonLabels }}{{$urimsg = print $urimsg $key "%3D%22" $value "%22%2C" }}{{end}}[*** 点我屏蔽该告警]({{$var}}/#/silences/new?filter=%7B{{SplitString $urimsg 0 -3}}%7D)
--------------
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}{{if eq $v.status "resolved"}} ✅**[Prometheus恢复信息]({{$v.generatorURL}})**
告警名称:*[{{$v.labels.alertname}}]({{$var}})*
相关服务:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{ end }}
开始时间:{{GetCSTtime $v.startsAt}}
恢复时间:{{GetCSTtime $v.endsAt}}
故障实例:{{$v.labels.instance}}
告警描述:{{$v.annotations.description}}{{else}}🆘**[Prometheus告警信息]({{$v.generatorURL}})**
告警名称:*[{{$v.labels.alertname}}]({{$var}})*
相关服务:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{ end }}
开始时间:{{GetCSTtime $v.startsAt}}
故障实例:{{$v.labels.instance}}
告警描述:{{$v.annotations.description}}{{end}}{{ end }}
{{ $urimsg:=""}}{{ range $key,$value:=.commonLabels }}{{$urimsg = print $urimsg $key "%3D%22" $value "%22%2C" }}{{end}}[*** 点我屏蔽该告警]({{$var}}/#/silences/new?filter=%7B{{SplitString $urimsg 0 -3}}%7D)
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}{{if eq $v.status "resolved"}} ✅**[Prometheus恢复信息]({{$v.generatorURL}})**
告警名称:*[{{$v.labels.alertname}}]({{$var}})*
相关服务:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{ end }}
开始时间:{{GetCSTtime $v.startsAt}}
恢复时间:{{GetCSTtime $v.endsAt}}
故障主机:{{$v.labels.instance}}
告警描述:{{$v.annotations.description}}{{else}}🆘**[Prometheus告警信息]({{$v.generatorURL}})**
告警名称:*[{{$v.labels.alertname}}]({{$var}})*
相关服务:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{ end }}
开始时间:{{GetCSTtime $v.startsAt}}
故障主机:{{$v.labels.instance}}
告警描述:{{$v.annotations.description}}{{end}}{{ end }}
{{ $urimsg:=""}}{{ range $key,$value:=.commonLabels }}{{$urimsg = print $urimsg $key "%3D%22" $value "%22%2C" }}{{end}}[*** 点我屏蔽该告警]({{$var}}/#/silences/new?filter=%7B{{SplitString $urimsg 0 -3}}%7D)
-----
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}{{if eq $v.status "resolved"}} ✅**[Prometheus恢复信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警服务名:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{end}}{{end}}
开始时间:{{GetCSTtime $v.startsAt}}
恢复时间:{{GetCSTtime $v.endsAt}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{else}}🆘**[Prometheus告警信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警服务名:{{$v.labels.app}}
告警级别:{{if eq $v.labels.severity "0"}}提示{{else if eq $v.labels.severity "warning"}}警告🟡{{else if eq $v.labels.severity "2"}}一般严重🔥{{else if eq $v.labels.severity "critical"}}严重🔥🔥{{else if eq $v.labels.severity "4"}}灾难🔥🔥❌{{else}}{{$v.labels.severity}}{{end}}{{end}}
开始时间:{{GetCSTtime $v.startsAt}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{end}}{{ end }}
{{ $urimsg:=""}}{{ range $key,$value:=.commonLabels }}{{$urimsg = print $urimsg $key "%3D%22" $value "%22%2C" }}{{end}}[*** 点我屏蔽该告警]({{$var}}/#/silences/new?filter=%7B{{SplitString $urimsg 0 -3}}%7D)
----------------------------
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}{{if eq $v.status "resolved"}} ✅**[Prometheus恢复信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警服务名:{{$v.labels.app}}
告警级别:{{$v.labels.severity}}
开始时间:{{GetCSTtime $v.startsAt}}
恢复时间:{{GetCSTtime $v.endsAt}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{else}}🆘**[Prometheus告警信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警服务名:{{$v.labels.app}}
告警级别:{{$v.labels.severity}}
开始时间:{{GetCSTtime $v.startsAt}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{end}}{{ end }}
{{ $urimsg:=""}}{{ range $key,$value:=.commonLabels }}{{$urimsg = print $urimsg $key "%3D%22" $value "%22%2C" }}{{end}}[*** 点我屏蔽该告警]({{$var}}/#/silences/new?filter=%7B{{SplitString $urimsg 0 -3}}%7D)
{{ range $k,$v:=.alerts }}
{{if eq $v.status "resolved"}}
## <font color="info">[Prometheus恢复信息]</font>
#### 告警名称:{{$v.labels.alertname}}
###### 告警总结: {{$v.annotations.summary}}
###### 告警级别: {{$v.labels.level}}
###### 告警环境:{{ $v.labels.env }}
###### 告警业务版本:{{ $v.labels.bizVersion }}
###### 告警业务线:{{ $v.labels.bizLine }}
###### 告警资源:{{ $v.labels.cloud }}
###### 告警实例:{{ $v.labels.hostname }}
###### 告警IP地址:{{ $v.labels.ip }}
###### 涉及应用:{{ $v.labels.application }}
###### 告警详情:{{ $v.annotations.description }}
###### 开始告警时间: {{GetCSTtime $v.startsAt}}
###### 恢复时间: {{GetCSTtime $v.endsAt}}
{{else}}
## <font color="warning">[Prometheus告警信息]</font>
#### 告警名称:{{$v.labels.alertname}}
###### 告警总结: {{$v.annotations.summary}}
###### 告警级别: {{$v.labels.level}}
###### 告警环境:{{ $v.labels.env }}
###### 告警业务版本:{{ $v.labels.bizVersion }}
###### 告警业务线:{{ $v.labels.bizLine }}
###### 告警资源:{{ $v.labels.cloud }}
###### 告警实例:{{ $v.labels.hostname }}
###### 告警IP地址:{{ $v.labels.ip }}
###### 涉及应用:{{ $v.labels.application }}
###### 告警详情:{{ $v.annotations.description }}
###### 当前值:{{ $v.annotations.value }}
###### 开始告警时间: {{GetCSTtime $v.startsAt}}
{{end}}
{{ end }}
{
"receiver": "email_and_weixin",
"status": "firing",
"alerts": [{
"status": "firing",
"labels": {
"alertname": "K8S Pod节点监控告警",
"condition": "true",
"env": "test",
"instance": "10.42.172.136:8080",
"job": "kubernetes-service-endpoints",
"kubernetes_name": "kube-state-metrics",
"kubernetes_namespace": "kube-system",
"label": "3",
"namespace": "default",
"pod": "xinao-planet-product-6b5746c67-n2kcl",
"severity": "critical",
"uid": "f284b05a-bd06-450a-a3e4-5fa7b514cbb7"
},
"annotations": {
"description": "Pod has been in a non-ready state for longer than 2 seconds.",
"summary": "Kubernetes Pod not healthy (instance 10.42.172.136:8080)"
},
"startsAt": "2023-03-27T02:47:59.695Z",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "http://prometheus-c56654849-6447l:9090/graph?g0.expr=kube_pod_status_ready%7Bcondition%3D%22true%22%2Cpod%3D~%22.%2Aplanet.%2A%22%7D+%3D%3D+0&g0.tab=1",
"fingerprint": "5c721c56bb727fd4"
}],
"groupLabels": {},
"commonLabels": {
"alertname": "K8S Pod节点监控告警",
"condition": "true",
"env": "test",
"instance": "10.42.172.136:8080",
"job": "kubernetes-service-endpoints",
"kubernetes_name": "kube-state-metrics",
"kubernetes_namespace": "kube-system",
"label": "3",
"namespace": "default",
"pod": "xinao-planet-product-6b5746c67-n2kcl",
"severity": "critical",
"uid": "f284b05a-bd06-450a-a3e4-5fa7b514cbb7"
},
"commonAnnotations": {
"description": "Pod has been in a non-ready state for longer than 2 seconds.",
"summary": "Kubernetes Pod not healthy (instance 10.42.172.136:8080)"
},
"externalURL": "http://za-monitor-test-0001:9093",
"version": "4",
"groupKey": "{}/{severity=\"critical\"}:{}",
"truncatedAlerts": 0
}
----模版
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}{{if eq $v.status "resolved"}} ✅**[Prometheus恢复信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警服务名:{{$v.labels.app}}
告警级别:{{$v.labels.severity}}
开始时间:{{GetCSTtime $v.startsAt}}
恢复时间:{{GetCSTtime $v.endsAt}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{else}}🆘**[Prometheus告警信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警服务名:{{$v.labels.app}}
告警级别:{{$v.labels.severity}}
开始时间:{{GetCSTtime $v.startsAt}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{end}}{{ end }}
{{ $urimsg:=""}}{{ range $key,$value:=.commonLabels }}{{$urimsg = print $urimsg $key "%3D%22" $value "%22%2C" }}{{end}}[*** 点我屏蔽该告警]({{$var}}/#/silences/new?filter=%7B{{SplitString $urimsg 0 -3}}%7D)
--------模版2
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}
{{if eq $v.status "resolved"}}
Prometheus恢复信息
【恢复名称】{{$v.labels.alertname}}✅{{if $v.labels.level}}
【恢复级别】{{if eq $v.labels.level "0"}}提示{{else if eq $v.labels.level "1"}}警告{{else if eq $v.labels.level "2"}}一般严重{{else if eq $v.labels.level "3"}}严重{{else if eq $v.labels.level "4"}}灾难{{else}}{{$v.labels.level}}{{end}}{{end}}
【开始时间】{{GetCSTtime $v.startsAt}}
【结束时间】{{GetCSTtime $v.endsAt}}
【恢复实例】{{$v.labels.instance}}
{{$v.annotations.description1}}
{{else}}
Prometheus告警信息
【告警名称】{{$v.labels.alertname}}🔥{{if $v.labels.level}}
【告警级别】{{if eq $v.labels.level "0"}}提示{{else if eq $v.labels.level "1"}}警告🟡{{else if eq $v.labels.level "2"}}一般严重🔥{{else if eq $v.labels.level "3"}}严重🔥🔥{{else if eq $v.labels.level "4"}}灾难🔥🔥❌{{else}}{{$v.labels.level}}{{end}}{{end}}
【开始时间】{{GetCSTtime $v.startsAt}}
【告警实例】{{$v.labels.instance}}
{{$v.annotations.description}}
{{ $urimsg:=""}}{{ range $key,$value:=$v.labels}}{{$urimsg = print $urimsg $key "="" $value ""," }}{{end}}
{{$data:=urlquery $urimsg }}[[ 点我屏蔽该告警 ]](http://0.0.0.0:9093/#/silences/new?filter=%7B{{SplitString $data 0 -3}}%7D)
{{$data:=urlquery }}[ 点我清理磁盘 ]
{{end}}
{{ end }}
作者:haodevops
链接:https://www.jianshu.com/p/ca7b2a22033c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2023-05-22 rocky Elasticsearch 8.7.1集群 x-spack 安全验证 及 集群内部TLS加密传输 (ca)
2023-05-22 查看shell脚本格式
2018-05-22 MySQL Antelope和Barracuda的区别分析