AlertManager告警收敛
1.告警分组
分组就是将类似性质的警报分类为单个通知,比如服务器宕机、应用挂掉,这种类型的告警可以分到一个组中,分到一个组时,当同一时间内触发了多条告警,这时都会发送到同一封邮件中,可以避免因告警邮件太多而忽视了重要信息。
这封邮件就很好的说明了这个分组的意义
由于prometheus编写的规则是对所有服务器生效的,因此所有服务器仅需要创建一个类型的报警即可,当同一时间段多台主机触发了这个告警,则会同时向管理员发送一条报警邮件,同种类型告警主要是以alertname来区分的
AlertManager分组语法
route:
group_by: [‘alertname’] //根据标签进行分组,alertname就是告警规则的名称,多个标签可以以逗号隔开
group_wait: 10s //发送告警等待时间,也就是一个时间范围内,如果有其他报警则一并发送
group_interval: 10s //当触发了一组告警后,下一组报警触发的间隔
repeat_interval: 10m //重复报警的时间间隔,也就是当触发了instancedown报警后,如果一直没有解决,那么再隔多长时间报警
2.告警抑制
抑制:当警报发出后,停止重复发送由此警报引发的其他警报
通过抑制可以避免运维收到大量的告警邮件,且都是同一个报警,只是级别不同,我们可以通过抑制限制当这个警报触发了严重级别的告警后,则不再触发警告级别的告警
配置语法:
inhibit_rules:
- source_match:
severity: 'critical' //匹配critical标签,先匹配了severity标签值为critical后,不再匹配target_match的条件
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance'] //告警中包含的分组名称
3.告警静默
静默就是值在一段时间内不再触发某一个报警,集进入维护阶段
创建一个静默规则
访问AlertManager的9093端口
1.点击右上角的new silence
2.添加静默配置信息
3.这时再由docker报警触发后就不会发送邮件了
4.prometheus触发一条告警实现的流程
首先由prometheus系统进行监控,当一个监控项的阈值到达一定指标时,再由告警规则中配置的for持续时间进行判断,当在一定时间内都超过了阈值,则将报警推送给AlertManager,AlertManager收到报警后进行分组、抑制、静默,最后在通过我们配置的接收器,将报警发送给邮箱、微信、钉钉