5分钟理解SLS告警通知时机

前言

SLS告警支持丰富的告警管理功能,例如合并抑制静默等功能,跟SLS旧版告警相比增加了很多告警降噪抑制的功能,和用户管理,值班组和可定制复用的内容模板功能。在使用的过程中,因为增加了告警的降噪功能,从告警产生到发送通知这个过程增加了一个告警降噪的过程;因为降噪机制的存在,可能会出现告警触发但不一定会立即发出通知的情况。了解SLS告警通知时机将有助于理解这些情况。


本文将以此为背景,介绍SLS告警发出通知的时机。

简单告警系统通知流程

一般的告警监控系统会包括告警监控和告警通知,告警监控会不断的检测监控目标是否满足设置的触发条件,如果满足触发条件,则会生成一条告警,然后将告警信息通知出去。这个过程中几乎没有告警降噪的处理,或者仅有一些简单的降噪,比如可以设置连续触发阈值,连续满足触发条件N次后才触发告警。

SLS告警的通知流程

5分钟理解SLS告警通知时机

首先看下SLS的告警管理架构图:

  • 告警源:包括SLS的告警监控系统和开放告警系统,开放告警可以接入Zabbix,Prometheus,Grafana,DataDog,CloudWatch等十多种告警监控系统,这些系统产生的告警会发送到SLS告警管理系统。
  • 告警管理:包括了告警的降噪功能,主要包含合并,抑制,静默等功能,这些配置统称为告警策略
  • 通知管理:主要包括了行动策略的配置,行动策略可以理解为通知渠道的配置,比如配置发送渠道为短信,语音,钉钉,Slack等。

本文主要关注告警如何发出通知,告警策略的配置会影响告警发出通知的时机。在SLS控制台新建告警策略,会出现配置页面,可以添加一个分组合并配置,如下图所示。

5分钟理解SLS告警通知时机

分组合并配置中主要包括三部分内容:

  • 合并基准:表示告警源产生的告警按照什么字段合并到一个组里面,在发送通知时,一个组里面的告警会一起发送。
  • 行动策略:表示发送通知的渠道配置。
  • 等待时间:包括首次等待,变化等待和重复等待时间,本文也将通过这几个概念来介绍告警通知的时机。


SLS告警通知的时机

告警策略的概念在SLS告警的帮助文档中有很详细的介绍,可以通过告警降噪控制来查看。

这里假设用户已经理解了路由合并的概念,不熟悉的用户可以参考路由合并。在告警合并后,会产生一个或多个合并集合,三个等待时间也是在集合的基础上起作用。

下面以一张图,来展示从告警产生到合并到某个集合中,到发送通知的整个过程。

5分钟理解SLS告警通知时机

上图中三角形和圆形表示告警源在不断的产生告警,这些告警可能来自SLS告警监控,也可能来自第三方告警监控平台,比如Zabbix,Prometheus等。

产生的告警会首先进入配置好的告警策略,按照告警策略中的合并基准进行合并,合并后的告警会分配到一个合并集合中,上方小方框代表一个合并集合。

图中概念解释:

  • group_wait: 首次等待时间。
  • group_interval: 变化等待时间。
  • repeat_interval: 重复等待时间。
  • check:会判断是否需要发送通知,如果不满足发送通知条件,不会发送通知。

接下来以一个合并集合为例,来解释这个合并集合发送通知的时机。

group_wailt

从第一个告警进入某个告警集合开始,此时时刻假设为0,SLS经过group_wait时间后,会将该集合中的告警根据行动策略通知出来。在这个过程中可能会有新的告警进入同一个合并集合中,在通知时会将集合中的所有告警信息合并发送。

group_interval

从第一个group_wait发送之后,每隔group_interval,SLS会判断该集合是否需要发送通知,这个过程中如果该集合中一直有告警产生,在group_interval到达时会发送通知;如果其中有告警恢复,在group_interval到达时,也会一并将告警恢复信息发出。

在group_interval达到时,SLS会判断是否需要发出通知,不是一定会发出通知。

通过上述group_wait和group_interval的概念可以得出:

SLS第一次发出通知的时机是group_wait后,后面的通知时机都是每经过group_interval时间。

repeat_interval

repeat_interval表示同一个告警集合在不变的情况下,连续多长时间不在发送通知,是一种有效的减少告警风暴的设置。告警集合不变的解释可以参考【链接


在告警抑制,告警静默的场景中同样遵循上述通知时机,限于篇幅本文对告警抑制和静默不做过多介绍,本文主要关注在通知时机上。

  • 关于告警抑制的机制可以参考【链接
  • 关于告警静默机制的机制可以参考【链接


总结

通过上述的分析,介绍了SLS告警的告警通知时机,了解了告警通知时机,有助于我们对SLS告警的降噪机制的使用,也可以自行对告警通知进行分析;

在开放告警中,通过第三方平台产生的告警,也可以配置相应的告警策略进行降噪处理。


参考

  • 什么是日志服务【链接
  • 什么是日志服务告警【链接
  • 通知管理概述【链接
  • 告警管理概述【链接
  • 创建告警策略【链接
  • 创建行动策略【链接
  • 开放告警概述【链接
  • SLS告警-学习路径【链接


进一步参考

5分钟理解SLS告警通知时机

上一篇:.NET 开源SqlServer ORM框架 SqlSugar 3.0 API


下一篇:appium+python自动化项目实战(一):引入nose和allure框架