当前位置 : 主页 > 网络编程 > 其它编程 >

Alertmanager通知模板

来源:互联网 收集:自由互联 发布时间:2023-07-02
通知模板告警通知使用的是默认模版,因为它已经编译到二进制包了,所以我们不需要额外配置。如果我们想自定义模版,这又该如何配置呢?Alertmanager默认使用的通知模板可以从ale 通
通知模板告警通知使用的是默认模版,因为它已经编译到二进制包了,所以我们不需要额外配置。如果我们想自定义模版,这又该如何配置呢?Alertmanager默认使用的通知模板可以从ale

通知模板


告警通知使用的是默认模版,因为它已经编译到二进制包了,所以我们不需要额外配置。如果我们想自定义模版,这又该如何配置呢?

Alertmanager 默认使用的通知模板可以从alertmanager/default.tmpl at main · prometheus/alertmanager · GitHub

获取,Alertmanager 的通知模板是基于Golang 的模板系统,当然也支持用户自定义和使用自己的模板。

第一种方式是基于模板字符串,直接在 Alertmanager 的配置文件中使用模板字符串,如下所示:

receivers: - name: "slack-notifications" slack_configs: - channel: "#alerts" text: "https://internal.myorg.net/wiki/alerts/{ { .GroupLabels.app }}/{ { .GroupLabels.alertname }}"

直接在配置文件中可以使用一些模板字符串,比如获取{ { .GroupLabels }}下面的一些属性。

另外一种方法就是直接修改官方默认的模板,此外也可以自定义可复用的模板文件,比如针对 email 的模板,我们可以创建一个名为template_email.tmpl的自定义模板文件,如下所示:

apiVersion: v1kind: ConfigMapmetadata: name: alert-config namespace: kube-mondata: config.yml: |- global: # 全局配置 ...... route: # 路由 ...... templates: # 增加 templates 配置,指定模板文件 - '/etc/alertmanager/template_email.tmpl' receivers: # 接收器 - name: 'email' email_configs: - to: '[emailprotected]' send_resolved: true html: '{ { template "email.html" . }}' # 此处通过 html 指定模板文件中定义的 email.html 模板 # 下面定义 email.html 必须和上面指定的一致,注释不能写进模板文件中 template_email.tmpl: |- { { define "email.html" }} { {- if gt (len .Alerts.Firing) 0 -}}{ { range .Alerts }} @报警 实例: { { .Labels.instance }} 概述: { { .Annotations.summary }} 详情: { { .Annotations.description }} 时间: { { (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} { { end }}{ { end -}} { {- if gt (len .Alerts.Resolved) 0 -}}{ { range .Alerts }} @恢复 实例: { { .Labels.instance }} 信息: { { .Annotations.summary }} 恢复: { { (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} { { end }}{ { end -}} { {- end }}

在 Alertmanager 配置中通过templates属性来指定我们自定义的模板路径,这里我们定义的template_email.tmpl模板会通过 Configmap 挂载到/etc/alertmanager路径下,模板中通过{ { define "email.html" }}定义了一个名为email.html的命名模板,然后在 email 的接收器中通过email_configs.html来指定定义的命名模板即可。更新上面 Alertmanager 的配置对象,重启 Alertmanager 服务,然后等待告警发出,即可看到我们如下所示自定义的模板信息:

网友评论