alertmanager清除告警记录
问题描述
如何在Prometheus的告警没有自动恢复的情况下,手动清除(或者使失效)alertmanager里的告警记录?
解决过程
通过博客【alertmanager源码阅读 - alerts接收】,找到Prometheus和alertmanager之间交互的接口。通过该接口猜测我把修改了解决状态或者过期时间的告警记录,再通过改接口推给alertmanager,就可以达到让alertmanager里指定告警记录失效、过期的效果。过程中多次报参数模型不对的问题,经过调整、尝试,找到了正确的参数模型。
步骤1:现获取alertmanager里的告警记录,并筛选出你想要失效的那条告警记录
步骤2:把alert里的startsAt时间改成过去时间,比如当前时间点即可(注意不能改成1970的时间)。
然后你到alertmanager的页面上去看,会发现告警记录消失了,然后会根据参数设置的时间(30S到3分钟不等),Prometheus会重新推送报警记录给alertmanager,然后刚才消失的那条告警记录就会又出现了。