html报警函数,alertmanager自定义告警模板(五)

本文介绍了如何在Alertmanager中自定义告警模板,强调了钉钉集成需要在prometheus-webhook-dingtalk配置模板。提供了一个示例模板,展示了如何遍历和取值告警信息,并介绍了相关的数据结构和Go模板内置函数。此外,还提到了如何定义和使用不同的模板场景。
摘要由CSDN通过智能技术生成

一、告警模板

alertmanager是可以自定义告警模板的。

注意钉钉需要部署prometheus-webhook-dingtalk,这个也是支持模板的,但是模板要写在prometheus-webhook-dingtalk里,而不是alertmanager

项目链接https://github.com/timonwong/prometheus-webhook-dingtalk

通过配置templates参数,指定模板位置。详细可以看我上一篇文章

下面是一个模板示例(网上copy的):

vim /etc/alertmanager/template/wechat.tmpl{ {- define "wechat.tmpl" }}

{ {- range $i, $alert := .Alerts.Firing -}}

[报警项]:{ { index $alert.Labels "alertname" }}

[实例]:{ { index $alert.Labels "instance" }}

[job]:{ { index $alert.Labels "job" }}

[报警内容]:{ { index $alert.Annotations "summary" }}

[开始时间]:{ { $alert.StartsAt.Format "2006-01-02 15:04:05" }}

====================

{ {- end }}

{ {- end }}define: 定义模板名称

range: 循环遍历

index: 通过key取值

二、数据结构介绍

1.Data.Receiver: 接收器的名称

.Status: 如果存在告警,则为firing,否则resolved(恢复)。

.Alerts: 所有告警对象(alert对象)的列表。(另外他还提供了两个函数用于过滤告警和恢复列表Alerts.Firing:代表告警列表,Alerts.Resolved:代表恢复列表),告警对象的数据结构可以看下面alert部分

.GroupLabels: 告警的分组标签(没猜错应该是对应配置文件的group_by)

.CommonLabels: 所有告警共有的标签

.CommonAnnotations: 所有告警共有的注解

.ExternalURL: 告警对应的alertmanager链接地址

2.Alert:

看这个之前可以先了解上面的AlertsStatus: 当前这一条报警的状态。firing(告警)或resolved(恢复)

Labels: 当前这一条报警的标签

Annotations: 当前这一条报警的注解

StartsAt: 当前这一条报警的开始时间

EndsAt: 当前这一条报警的结束时间

GeneratorURL: 告警对应的alertmanager链接地址

3. kv数据的一些内置方法

kv数据相当于python里的字典,在模板中提供了一些方法可以操作kv数据

SortedPairs: 排序

Remove: 删除一个key

Names: 返回标签集中标签名的名称列表。

Values: 返回标签集中标签名的值列表。

4.go模板常用内置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值