AlertManager配置文件详解
参考资料:
- https://yunlzheng.gitbook.io/prometheus-book/parti-prometheus-ji-chu/alert/alert-manager-use-receiver/alert-manager-extension-with-webhook
- https://icode.best/i/23664632412832
- https://blog.csdn.net/bluuusea/article/details/104619235(参数解释详细)
- https://system51.github.io/2021/07/12/Alertmanager/(告警通知示例详细)
- https://blog.csdn.net/qq_37843943/article/details/120665690 (group_wait、group_interval、repeat_interval对告警的影响)
- https://system51.github.io/2021/12/10/Alarm-time/ (关于 Alertmanager中group_interval与repeat_interval上的一些坑)
1 | global: |
1、alertmanager webhook
当用户定义webhook用于接收告警信息后,当告警被触发时,Alertmanager会按照以下格式向这些url地址发送HTTP Post请求,请求内容如下:
1 | { |
有部分数据可参考:http://\prometheus:port/api/v1/alerts 接口返回的数据。
2、告警流程梳理
PrometheusRule里面的for: 4m
表示:评估等待时间(Pending Duration),用于表示只有当触发条件持续4分钟
后才发送告警,在等待期间新产生的告警状态为pending
。如果告警持续超过4分钟
,告警状态则由Pending
变为Firing
。Active Since为第一次满足触发条件的时间点。
这个参数主要用于降噪
,很多类似响应时间这样的指标都是有抖动的,通过指定 Pending Duration
,我们可以过滤掉这些瞬时抖动,可以让我们能够把注意力放在真正有持续影响的问题上。
告警状态变为Firing
后,就可以在Alertmanager UI界面中查到告警了,告警时间为Active Since
时间。
1 | group_wait: 10s |
告警过程:
1、alertmanager收到告警后,等待group_wait(10s),发送第一次通知
2、未达到group_interval(1m 10s),休眠
3、达到group_interval(1m 10s)时,小于repeat_interval(9m 10s),休眠
4、到第10个group_interval(10m 10s),大于repeat_interval(9m 10s),发送第二次通知
Firing(0s) - 第一次通知(10s) - 第二次通知(10m 10s)
结论
当repeat_interval小于group_interval时,repeat_interval不影响告警
当repeat_interval大于group_interval,且不为group_interval倍数,影响告警
当repeat_interval大于group_interval,且为group_interval倍数,可能影响告警(*注)
注:
当repeat_interval大于group_interval,且为group_interval倍数时,可能发生两种情况:
- 在repeat_interval时发出告警
- 在repeat_interval + group_interval时发出告警(原因是如果repeat_interval是group_interval的倍数,则在需要发出通知时会同时判断两个值,程序耗时 + 网络耗时会导致对比结果不准确)
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2022/03/08/AlertManager/config-introduce.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)