天天看点

SLS新版告警入门——分组评估基本概念使用场景示例:

在新版告警中,我们可以使用查询分析语句来进行日志查询,并对结果集设置告警。其中,当我们希望对查询结果进行进一步的分组时,可以使用我们的分组评估功能。

基本概念

分组评估是告警监控规则中的一个参数。当告警监控系统对查询和分析结果进行计算时,可基于特定字段进行分组,每个分组单独评估触发条件并触发告警。即您可以使用一条告警监控规则同时监控多个目标,并对每个分组进行独立的告警管理和事件管理。

例如,我们的在时序库中存储了主机和 cpu 使用率的信息,通过查询返回一个包含 IP 和 CPU 字段的结果集,如下图:

SLS新版告警入门——分组评估基本概念使用场景示例:

这时候我们设置告警的评估条件为 CPU > 80, 那么在任何一台主机的 cpu > 80 的时候,都会触发告警,若只是想要这样的效果,那么到这里就可以了。

但这时候我们无法对不同的 ip 做不同的处理,如果想要更进一步,例如由于主机的归属不同,告警的时候想要通知不同的接受人,那么就需要进行分组评估了。对 ip 进行分组之后。告警的评估条件会对每个分组进行单独评估,最后根据评估结果进行告警。同时,分组的字段会自动加入 label 中,提供给之后的行动策略作为判断条件。

简单来说,如果我们不使用分组评估功能,而想要根据查询结果的某个字段进行分组,并分别通过不同渠道告警,那么只能通过在查询语句中添加 group 语句,并创建多个告警来实现了。

使用场景示例:

CPU使用率

多个服务器的指标数据存储在一个时序库中,但希望每个服务器的CPU使用率(cpu_util)超过95%时,日志服务可以分开发送每个服务器的告警信息。针对此需求,您可以在创建告警监控规则时设置分组评估。

SLS新版告警入门——分组评估基本概念使用场景示例:

在时序库中,选择我们要查询的指标 cpu_util,这时会自动帮我们填入对应的查询语句

* | select promql_query_range('cpu_util') from metrics limit 1000

点击“另存为告警”按钮

SLS新版告警入门——分组评估基本概念使用场景示例:

这时会打开新建告警界面,并会自动将刚才的查询语句引入

SLS新版告警入门——分组评估基本概念使用场景示例:

点击语句输入框,可以查看详情

SLS新版告警入门——分组评估基本概念使用场景示例:

可以看到项目,指标库等详细信息,并可以对查询语句进行修改,点击预览可以查看数据图表

SLS新版告警入门——分组评估基本概念使用场景示例:

返回刚才的界面,设置好告警触发的条件为“有数据匹配” value > 95,这里 value 即是指 cpu_util 的值

SLS新版告警入门——分组评估基本概念使用场景示例:

默认情况下,使用时序库时,分组评估会自动选择“标签自动”选项,在该选项下,会自动对时序指标进行分组。

SLS新版告警入门——分组评估基本概念使用场景示例:

如果选择不分组,那么在当前状况下,任意一台或者多台主机的 cpu 大于 95 都会触发一次告警。

SLS新版告警入门——分组评估基本概念使用场景示例:

如果我们选择标签自定义,并选择 ip 字段,那么每次评估有一台主机满足条件会触发一次告警,有多台同时满足的话,就会触发多条告警。如果想要给不同的主机设置不同的告警接收人,需要配合行动策略进行设置。

SLS新版告警入门——分组评估基本概念使用场景示例:

在行动策略编辑时,可以指定条件和行动组,如下图,

SLS新版告警入门——分组评估基本概念使用场景示例:

如之前所说,用于分组评估的字段会被加到标签中,所以这里就指定了 ip 作为条件,并指定对应的接收人。将行动策略保存之后,在告警编辑页面进行选择就可以完成全部的告警设置。

监控OSS访问日志

监控OSS访问日志时,希望每分钟发生500错误超过1000次的Bucket可以分开告警。针对此需求,您可以在创建告警监控规则时设置分组评估。

在查询框中输入 http_status=500 可以查询所有 http_status 为 500 的日志记录。

SLS新版告警入门——分组评估基本概念使用场景示例:

进一步将语句改为

http_status=500 | select bucket,count(1) as pv group by bucket  order by pv desc

SLS新版告警入门——分组评估基本概念使用场景示例:

可以看到各个 bucket 的记录数。

SLS新版告警入门——分组评估基本概念使用场景示例:

我们将条件设到 pv > 60 得到一条结果。点击右上角“另存为告警”

SLS新版告警入门——分组评估基本概念使用场景示例:

这里我们将分组评估设置为 bucket 字段,同时将触发条件设置为“有数据”

SLS新版告警入门——分组评估基本概念使用场景示例:

这样就完成了告警的设置。如果想要对不同的 bucket 做不同的告警处理,可以参考 cpu 的场景在行动策略中进行设置。