prometheus-book icon indicating copy to clipboard operation
prometheus-book copied to clipboard

请教一个关于企业微信的alertmanager问题

Open max27149 opened this issue 6 years ago • 4 comments

我使用的版本如下: alertmanager-0.18.0.linux-amd64 prometheus-2.11.1.linux-amd64 我的告警模板 wechat.tmpl 内容如下:

{{ define "wechat.tmpl" }} {{ range .Alerts }} ========start========== 告警程序: prometheus_alert 告警级别: {{ .Labels.severity }} 告警类型: {{ .Labels.alertname }} 故障主机: {{ .Labels.instance }} 告警主题: {{ .Annotations.summary }} 告警详情: {{ .Annotations.description }} 触发时间: {{ .StartsAt.Format "2006-01-02 15:04:05" }} ========end========== {{ end }} {{ end }}

日志无报错 level=debug ts=2019-07-17T12:53:33.495Z caller=dispatch.go:430 component=dispatcher aggrGroup="{}:{alertname="node_status"}" msg=flushing alerts=[node_status[1a2f380][active]] level=debug ts=2019-07-17T12:53:38.496Z caller=dispatch.go:430 component=dispatcher aggrGroup="{}:{alertname="node_status"}" msg=flushing alerts=[node_status[1a2f380][active]]

也能收到企业微信告警,但是内容为空

image

尝试找了别的模板,也把alertmanager降了一个版本,还是一样,可能是哪里的问题呢?

max27149 avatar Jul 17 '19 12:07 max27149

可以尝试把邮件告警功能开启,看看是否能正常收到告警邮件。而且当你不配置wechat自定义模板时,alertmanager会使用默认模板,可以看看这时能否收到消息。如果这样是正常的,应该就是自定义模板的问题了,可以参考 https://godoc.org/text/template 中的语法说明自己调试下。

lch0000 avatar Jul 18 '19 02:07 lch0000

可以尝试把邮件告警功能开启,看看是否能正常收到告警邮件。而且当你不配置wechat自定义模板时,alertmanager会使用默认模板,可以看看这时能否收到消息。如果这样是正常的,应该就是自定义模板的问题了,可以参考 https://godoc.org/text/template 中的语法说明自己调试下。

多谢指点!注释掉模板配置,的确是可以的。 image

试了一下这里的模板,有语法错误:

level=error ts=2019-07-18T02:11:59.582Z caller=notify.go:367 component=dispatcher msg="Error on notify" err="cancelling notify retry for "wechat" due to unrecoverable error: templating error: template: wechat.tmpl:2:11: executing "wechat.tmpl" at <len .Alerts.Firing>: error calling len: len of untyped nil" level=error ts=2019-07-18T02:11:59.583Z caller=dispatch.go:264 component=dispatcher msg="Notify for alerts failed" num_alerts=1 err="cancelling notify retry for "wechat" due to unrecoverable error: templating error: template: wechat.tmpl:2:11: executing "wechat.tmpl" at <len .Alerts.Firing>: error calling len: len of untyped nil"

max27149 avatar Jul 18 '19 02:07 max27149

 executing "wechat.tmpl" at <len .Alerts.Firing>: error calling len: len of untyped nil"

报错这里其实是要判断一下是否有告警或恢复信息,好为后边的迭代做预判断。我当时调试通过的软件版本如下:

  • prometheus: 2.4.3
  • alertmanager: 0.15.2

我怀疑是不是后来新版本有对这里做调整。请自己debug下,问题解决了欢迎提PR

lch0000 avatar Jul 18 '19 03:07 lch0000

 executing "wechat.tmpl" at <len .Alerts.Firing>: error calling len: len of untyped nil"

报错这里其实是要判断一下是否有告警或恢复信息,好为后边的迭代做预判断。我当时调试通过的软件版本如下:

  • prometheus: 2.4.3
  • alertmanager: 0.15.2

我怀疑是不是后来新版本有对这里做调整。请自己debug下,问题解决了欢迎提PR

抱歉,我并不是程序员,不太懂

max27149 avatar Jul 18 '19 03:07 max27149