原作者:高云龙
在之前的文章MogDB/openGauss 监控告警配置介绍了如何通过altermanager模块将报警通过snmp推送出去,但是在实际使用中,默认的报警规则信息并不能很好的满足snmp服务端的需求,需要定制化报警信息,这里以添加ip为例,看似一个简单的将IP一行信息单独在报警展示出来,涉及到的配置文件修改还是挺多的。
修改prometheus.yml文件
首先需要修改prometheus.yml文件,在对应的实例下添加ip标签
修改规则报警文件
对应的报警规则文件也同样需要修改,我这里使用的是服务器磁盘使用率做报警测试,所以直接修改node_rules.yml文件,添加ip信息
查看alertmanager web界面
现在我们就可以在alertmanager的界面上看到我们新添加的ip标签了,同时报警信息里也带了ip
修改snmp_notifier模版
altermanager模块将报警消息推送到snmp_notifier后,还需要需改snmp_notifier的描述模版description-template.tpl
snmptrapd服务器接受报警信息
添加额外的模版
默认情况下,snmptrapd只会输出三行模版信息,要添加额外的版本信息需要使用–snmp.extra-field-template参数,比如添加第4行模版则在snmp_notifier启动时指定参数–snmp.extra-field-template=4=/opt/snmp_notifier/extra-field-template.tpl,模版extra-field-template.tpl可以参考description-template.tpl的格式
{{- if .Alerts -}}
{{- range $severity, $alerts := (groupAlertsByLabel .Alerts "severity") -}}
{{- range $index, $alert := $alerts }}
{{ $alert.Annotations.ip }}
{{ end }}
{{ end }}
{{- end -}}
启动snmp_notifier
nohup /opt/snmp_notifier/snmp_notifier --snmp.trap-description-template=/opt/snmp_notifier/description-template.tpl --snmp.extra-field-template=4=/opt/snmp_notifier/extra-field-template.tpl > /opt/snmp_notifier/snmp_notifier.log 2>&1 &