当前位置:首页 > 系统运维

在 AlertManager 报警通知中展示监控图表

之前用 Python 实现了一个非常简陋的报警表 AlertManager 的钉钉接收器,一直想在钉钉的通知消息通知中将当前报警图表也展示出来,这样显然对用户来说更加友好。中展之前想的示监思路是通过爬虫的方式去 Prometheus 页面将 Graph 图形截图保存下来,该方式理论上确实是香港云服务器控图可行的,但是报警表这种方式不稳定因素较多,而且会占用大量的通知资源。

今天换了另外一种方式来实现,中展直接去绘制渲染报警图表,示监然后上传到对象存储中保存起来,控图在钉钉中就可以直接展示了,云南idc服务商报警表Promoter 就是通知这个方案的一个实现,支持在消息通知中展示实时报警图表,中展效果图如下所示:

目前是示监将报警数据渲染成图片后上传到 S3 对象存储,所以需要配置一个对象存储(阿里云 OSS 也可以),控图此外消息通知展示样式支持模板定制,该功能参考自项目 https://github.dev/timonwong/prometheus-webhook-dingtalk。

模板

默认模板位于 template/default.tmpl,站群服务器可以根据自己需求定制:

{ { define "__subject" }}[{ { .Status | toUpper }}{ { if eq .Status "firing" }}:{ { .Alerts.Firing | len }}{ { end }}] { { .GroupLabels.SortedPairs.Values | join " " }} { { if gt (len .CommonLabels) (len .GroupLabels) }}({ { with .CommonLabels.Remove .GroupLabels.Names }}{ { .Values | join " " }}{ { end }}){ { end }}{ { end }}

{ { define "__alertmanagerURL" }}{ { .ExternalURL }}/#/alerts?receiver={ { .Receiver }}{ { end }}

{ { define "default.__text_alert_list" }}{ { range . }}

### { { .Annotations.summary }}

**详情:** { { .Annotations.description }}

{ { range .Images }}

**条件:** `{ { .Title }}`

![

分享到:

滇ICP备2023006006号-16