为您推荐(持续更新)
6月25日13:00—16:30
上海人工智能中心
针对日常运维工作中出现的问题
阿里云邀请多位大咖
和大家聊聊关于智能运维相关话题
欢迎感兴趣的朋友前来参加哦
扫描海报二维码或点击原文报名, 期待您一起开启智能运维新时代!
在智能告警中,我们可以使用查询分析语句来进行日志查询,并对结果集设置告警。其中,当我们希望对查询结果进行进一步的分组时,可以使用我们的分组评估功能。
基本概念
分组评估是告警监控规则中的一个参数。当告警监控系统对查询和分析结果进行计算时,可基于特定字段进行分组,每个分组单独评估触发条件并触发告警。即您可以使用一条告警监控规则同时监控多个目标,并对每个分组进行独立的告警管理和事件管理。
例如,我们的在时序库中存储了主机和 cpu 使用率的信息,通过查询返回一个包含 IP 和 CPU 字段的结果集,如下图:
这时候我们设置告警的评估条件为 CPU > 80, 那么在任何一台主机的 cpu > 80 的时候,都会触发告警,若只是想要这样的效果,那么到这里就可以了。
但这时候我们无法对不同的 ip 做不同的处理,如果想要更进一步,例如由于主机的归属不同,告警的时候想要通知不同的接受人,那么就需要进行分组评估了。对 ip 进行分组之后。告警的评估条件会对每个分组进行单独评估,最后根据评估结果进行告警。同时,分组的字段会自动加入 label 中,提供给之后的行动策略作为判断条件。
简单来说,如果我们不使用分组评估功能,而想要根据查询结果的某个字段进行分组,并分别通过不同渠道告警,那么只能通过在查询语句中添加 group 语句,并创建多个告警来实现了。
CPU使用率
多个服务器的指标数据存储在一个时序库中,但希望每个服务器的CPU使用率(cpu_util)超过95%时,日志服务可以分开发送每个服务器的告警信息。针对此需求,您可以在创建告警监控规则时设置分组评估。
在时序库中,选择我们要查询的指标 cpu_util,这时会自动帮我们填入对应的查询语句
* | select promql_query_range('cpu_util')
from metrics limit 1000
点击“另存为告警”按钮
这时会打开新建告警界面,并会自动将刚才的查询语句引入
点击语句输入框,可以查看详情
可以看到项目,指标库等详细信息,并可以对查询语句进行修改,点击预览可以查看数据图表
返回刚才的界面,设置好告警触发的条件为“有数据匹配” value > 95,这里 value 即是指 cpu_util 的值
默认情况下,使用时序库时,分组评估会自动选择“标签自动”选项,在该选项下,会自动对时序指标进行分组。
如果选择不分组,那么在当前状况下,任意一台或者多台主机的 cpu 大于 95 都会触发一次告警。
如果我们选择标签自定义,并选择 ip 字段,那么每次评估有一台主机满足条件会触发一次告警,有多台同时满足的话,就会触发多条告警。如果想要给不同的主机设置不同的告警接收人,需要配合行动策略进行设置。
在行动策略编辑时,可以指定条件和行动组,如下图,
如之前所说,用于分组评估的字段会被加到标签中,所以这里就指定了 ip 作为条件,并指定对应的接收人。将行动策略保存之后,在告警编辑页面进行选择就可以完成全部的告警设置。
监控OSS访问日志
监控OSS访问日志时,希望每分钟发生500错误超过1000次的Bucket可以分开告警。针对此需求,您可以在创建告警监控规则时设置分组评估。
在查询框中输入 http_status=500 可以查询所有 http_status 为 500 的日志记录。
进一步将语句改为
http_status=500 | select bucket,count(1) as pv group by bucket order by pv desc
可以看到各个 bucket 的记录数。
我们将条件设到 pv > 60 得到一条结果。点击右上角“另存为告警”
这里我们将分组评估设置为 bucket 字段,同时将触发条件设置为“有数据”
这样就完成了告警的设置。如果想要对不同的 bucket 做不同的告警处理,可以参考 cpu 的场景在行动策略中进行设置。
为您推荐(持续更新)
6月25日13:00—16:30
上海人工智能中心
针对日常运维工作中出现的问题
阿里云邀请多位大咖
和大家聊聊关于智能运维相关话题
欢迎感兴趣的朋友前来参加哦
扫描海报二维码或点击原文报名, 期待您一起开启智能运维新时代!