1 告警静默介绍
在系统维护或升级过程中,通常会触发⼤量的告警。这些告警往往是维护系统的过程中引起的,⽽⾮真正出现了故障。如果我们不对告警通知进⾏调整,将会收到⼤量的告警信息,造成不必要的⼲扰。
为了应对这种情况,在维护期间,我们可以在Alertmanager 中设置静默(silence)规则。这些规则能够禁⽌对外发送告警通知。等到维护⼯作完成后,我们再取消静默规则,恢复正常的告警通知流程。这样可以保证告警系统的有效性,同时避免了在维护期间产⽣⼤量不必要的告警信息。
告警静默配置有两种⽅式:
- 先告警后静默: 当告警发⽣时,我们可以直接在WEB UI界⾯上对其进⾏静默处理,从⽽停⽌持续发送相同告警信息,确保及时终⽌告警。
- 先配置静默: 在维护时可能会触发⼤量告警,这时我们可以提前创建静默规则,有效地防⽌告警⻛暴的发⽣。
2 配置告警静默
1、在AlertManager的silences⻚⾯,点击New Silences,然后定义开始时间和结束时间(注意这个时间为UTC时间,如果转为北京时间要+8⼩时)
2、配置Matchers,来定义静默规则,例如,我不希望在维护期间收到node_exporter这个job相关的任何告警,(注意:如果编写多个Matchers规则,它们是“并且”的关系)
3、检查最终的静默规则(当State状态由Pending转为Active则说明规则已经激活了,如果是pengding表示规则未到指定时间,没⽣效。)
3 静默效果验证
1、通过程序模拟 Prometheus 发送告警信息,确保其中包含 job=~node_exporter ,以便与静默规则匹配。
./sendAlert.sh "192.168.137.131" "alertname=节点故障,instance=192.168.137.129,severity=critical,job=node_exporter"
./sendAlert.sh "192.168.137.131" "alertname=节点故障,instance=192.168.137.130,severity=critical,job=node_exporter"
# cpu故障 "
./sendAlert.sh "192.168.137.131" "alertname=cpu故障,instance=192.168.137.129,severity=critical,job=node_exporter"
./sendAlert.sh "192.168.137.131" "alertname=cpu故障,instance=192.168.137.130,severity=critical,job=node_exporter"
2、访问AlertManager⻚⾯,点击Silenced,然后查看被静默的告警信息