当前位置:主页 > 查看内容

SLS新版本告警入门——告警策略-路由合并(1)

发布时间:2021-06-16 00:00| 位朋友查看

简介:路由合并概述 SLS的告警策略包含三种子策略 路由合并抑制静默 其中最重要的就是路由合并策略。简而言之 路由合并的作用就是 告警经过一定的规则 合并成不同的合并集合 统一进行通知的发送。它的最大的优点就是可以进行告警的降噪 由于是合并后统一发送 因此……
路由合并概述

SLS的告警策略包含三种子策略

路由合并抑制静默


其中最重要的就是路由合并策略。简而言之 路由合并的作用就是 告警经过一定的规则 合并成不同的合并集合 统一进行通知的发送。它的最大的优点就是可以进行告警的降噪 由于是合并后统一发送 因此可以有效避免告警风暴的产生。


可以参考如下的简单示例

1.png

一共产生了四个告警 它们经过路由合并之后 变成了三个合并集合 其中Alert-1和Alert-3在一起 会被一起发送通知。当然这只是一个非常简单的示意 可以简单理解为这里根据的是不同的颜色进行了合并。在实际的使用场景中 可以根据告警自身的多种属性进行策略的配置 例如把相同严重度的告警合并在一起 或者把同一个Project产生的告警放在一起 等等。在了解了路由合并的基本作用之后 接下来我们来看路由合并的一些详细使用。

告警指纹

在对路由合并进行深入的了解之前 我们需要先来认识一下告警的指纹。简单来说 每个告警都需要有一个唯一的身份证号 需要我们来识别它。

2.png

例如 08:00 产生了一条告警 说的是 192.168.1.100 这台机器 CPU 使用率过高 达到了 90% 然后再 08:05 继续产生了一条告警 说 192.168.1.100 这台机器 CPU 使用率过高 达到了 95%。在这个例子中 我们可以看到 这两个触发的告警描述的其实是同一件事情 本质上它们其实是同一个告警 只不过是在连续的两个周期都触发了而已。就好像某个人昨天穿了白色的衣服出门 今天穿了黑色的衣服出门 虽然看起来有稍许区别 但其实还是同一个人。


对于告警来说 也有这样的一个唯一标识 不管它在什么时候触发 我们都可以通过该标识来知道 它描述的某一个确切的事情。我们可以称之为告警的指纹。如果两个告警的指纹完全相同 那么它们就是同一个告警的两次出现。


告警指纹的计算依赖于告警的如下属性

用户ID 阿里云账号UIDProject 告警监控规则所在的项目告警规则ID告警标签 key-value 结构


一句话概括就是 如果两条告警属于同一用户在同一个Project下创建的同一条告警监控规则 并且它们的标签相同 那么就是同一个告警。


关于告警的标签 是在配置监控规则的时候设置的。

3.png

分组评估 不分组 则默认没有标签标签自动 仅对时序库有效 自动将时序指标的所有标签作为告警的标签标签自定义 需要用户自己配置分组的标签 例如 * | select host, count(*) as cnt group by host 这样的查询语句 结果里会有 host 和 cnt 两个字段 假如用户配置了按照 host 进行分组 那么告警里就会有 host 这个标签如果开启了无数据告警 那么还会有一个特殊的标签 __no_data__ 此外用户还可以自己添加标签 例如自己添加 app: nginx 类似的固定标签基于告警指纹的降噪

假如同一个告警一直在触发 那么在告警管理的流程中 只会保留最新的那一次触发。也就是说 每个告警集合会根据告警的指纹进行去重 仅保留最新版本。

4.png

例如 某台主机从 20:00 开始每分钟不停地触发高CPU告警 告警策略按照配置来进行发送。那么在首次触发后 后续重复的告警都会去重并且延迟 因为配置了重复等待 发送。

合并集合

上面我们解释了告警指纹及其去重机制 接下来介绍一下合并集合。合并集合简单来说就是一个告警的容器 是一个批量处理单元。所有在该容器内的告警都会进行统一的发送通知。


合并集合有如下属性

合并基准行动策略首次等待时间变化等待时间重复等待时间


这几个属性解决了如下问题

为什么告警会在一起 合并基准要发送给谁 行动策略如何发送 首次等待、变化等待、重复等待


我们可以配置告警策略的路由合并基准 将告警归类自动分派到多个合并集合中 并进一步的降噪控制 去重、合并等 后 将合并的告警分别发送给相应的行动策略。

5.png


例如上面的例子 通过合并基准的配置 将十个告警分到了六个合并集合中 并且会使用各自的行动策略来进行通知的发送。

使用告警策略进行数据隔离

通常来说 如果两个合并集合的五个属性完全相同 那么它们本质上就是同一个合并集合。但是这有个前提 就是需要这两个合并集合是由同一个告警策略产生的。

也就是说 告警策略相当于是提供了一个命名空间的作用。如果两个告警使用了不同的告警策略 那么即使最终它们所在的合并集合各个属性都相同 但它们也是不同的合并集合。


因此可以使用告警策略来进行告警数据的隔离。例如不同的团队使用不同的告警策略 那么这两个团队的告警数据肯定不会混在一起 每个团队只需要关注自己的告警策略配置即可。


本文转自网络,原文链接:https://developer.aliyun.com/article/784710
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐