Prometheus监控神器-Alertmanager篇(五)
钉钉Firing警报:
钉钉警报信息
钉钉Resolve警报:
钉钉恢复信息
警报通知模板
Prometheus 创建警报转发给 Alertmanager,Alertmanager会根据不同的 Label 向不同的 Receiver 发送警报通知,如Email、钉钉、企业微信、飞书、短信等等。所有 Receiver都一个接收模板,然后通过模板格式化以后发送警报信息给 Receiver。Alertmanager 自带的模板是基于 Go 语言的 template 模板,用户可以根据自己的需求去定义自己需要的模板,上面我给出的模板已经足够大家的基础使用了。
下面介绍下通常自定义模板中会需要用到的一些参数说明
上面说的KV类型是一组使用不标示标签与注释的Key/Value字符串对,可以在Alertmanager中的默认模板中看到其定义。default.tmpl
其中邮件中所显示的 View In AlertManager ,Receiver 与 ExternalURL的定义其实就是模板中的 .ExternalURL 与 .Receiver 。
{{ define "__alertmanager" }}AlertManager{{ end }}
{{ define "__alertmanagerURL" }}{{ .ExternalURL }}/#/alerts?receiver={{ .Receiver | urlquery }}{{ end }}
...
在收到的邮箱警报中可以看到 View In AlertManager 的链接地址是:http://192.168.1.220:19093/#/alerts?receiver=ops 。
对于Alert的类型,警报列表的字段还包含了如下参数与定义、描述
对于警报中的通知模板首先要熟悉go语言的template语法以及HTML简单的基础知识,然后把上面相关的元数据的一些信息了解清楚,就可以自己调整模板了,如果你实在懒的改,我调整好的模板可以直接拿去用,把对应的指标、标签名字改一下就可以用了。
以下是我自己修改了一下的模板警报格式,大家可以看看,这个是通过官方的 default.tmpl 修改的。
Email模板警报信息
开源警报组件推荐
- Prometheus-Webhook-Dingtalk
一个开源的第三方警报插件,针对钉钉机器人 webhook 做集成,Go语言编写,现在迭代的已经很不错了,可能有一些功能还是有些限制,比如针对 Markdown @某个人无法实现,原因是因钉钉自身API没有支持这个功能。 - Alertmanager-wechatrobot-webhook
这个开源组件是将Alertmanger Webhook 消息转换为可以接收消息的企业微信机器人,也是go语言编写,Alertmanager 默认已经集成企业微信配置,如果有特殊需求,需要使用企业微信机器人的可以看看这个。 - PrometheusAlert全家桶
如果有对短信、电话警报等其他需求的同学,推荐这个开源警报组件,Go语言编写,Web框架是 Beego ,支持将收到的这些消息发送到钉钉,微信,飞书,腾讯短信,腾讯电话,阿里云短信,阿里云电话,华为短信,容联云电话等,这里就不细讲了,如果配置有问题可以随时咨询我。
PrometheusAlert
欢迎大家关注我的公众号ID:k8stech
文章转自公众号:Kubernetes技术栈