操作场景
基于日志配置告警策略,在出现符合特定条件的日志时发送告警,例如 error 日志数量过多,接口响应时间过长等。
前提条件
- 日志已上传到某个日志主题,且已 配置索引。
- 日志主题不是 低频存储,低频存储不支持配置告警策略,告警策略需使用 SQL 语句,建议对日志进行 结构化 处理。
- 已登录日志服务控制台,并进入 告警策略 管理页面。
操作步骤
在告警策略管理页面,单击新建,配置如下主要信息。
配置监控对象和监控任务
- 监控对象:选择需要监控的日志主题,支持多选,每个日志主题单独判断是否满足触发条件。最多可选择20个日志主题,不支持跨地域,同时有多个日志主题满足触发条件时将同时产生多条告警。
- 监控任务
- 执行语句:作用于日志主题的执行语句,执行语句需包含分析语句(即 SQL 语句)。
- 例1:统计出现 error 的日志条数
status:error | select count(*) as ErrCount
- 例2:统计域名 domain:aaa.com 的平均响应时间
domain:"aaa.com" | select avg(request_time) as Latency
- 查询时间范围:执行语句需要查询的数据时间范围,最大时间范围为最近24小时。
- 触发条件:满足触发条件时进行告警。条件表达式中使用
$N.keyname
引用执行语句结果,其中$N
表示当前告警策略中的第N
个执行语句,keyname
表示对应的字段名称。表达式语法参考 触发条件表达式语法。
- 例1:出现 error 的日志条数大于10即触发告警,
$1.ErrCount > 10
,其中$1
表示第一个执行语句,ErrCount
表示统计结果中的 ErrCount 字段。
- 例2:域名 domain:aaa.com 的平均响应时间大于5s即触发告警,
$2.Latency > 5
,其中$2
表示第一个执行语句,Latency
表示统计结果中的 Latency 字段。
- 分组触发:触发条件表达式是否需要分组触发。使用分组触发时,当执行语句有多条结果均满足触发条件时,将根据指定的分组字段对执行语句结果进行分组,每组触发一条告警。
例如执行语句2为* | select avg(request_time) as Latency,domain group by domain order by Latency desc limit 5
时,其某次执行结果为多条数据:
Latency | domain |
12.56 | aaa.com |
9.45 | bbb.com |
7.23 | ccc.com |
5.21 | ddd.com |
4.78 | eee.com |
触发条件为`$2.Latency > 5`,则其中4条均满足触发条件。
- 若未使用分组触发,上述多条执行结果中只要有1条满足触发条件,即触发告警,且仅触发一条告警。
- 若使用分组触发,并以 domain 字段为分组依据,上述多条执行结果将分别产生4条告警。
>!
> - 使用分组触发功能时,一次告警执行可能会有大量的执行结果满足触发条件,进而同时产生大量告警,造成告警风暴。请合理设定分组字段及触发条件。
> - 指定分组字段时,最多可将执行结果分为1000个组,超出范围的组将不触发告警。
>
- 执行周期:监控任务的执行频率,提供如下两种周期配置方式:
周期配置方式 |
说明 |
示例 |
固定频率 |
按固定的时间间隔执行一次监控任务 时间间隔:1 - 1440分钟,粒度:分钟级 |
每隔5分钟执行一次监控 |
固定时间 |
按固定的时间点执行一次监控任务 时间点范围:00:00 - 23:59,粒度:分钟级 |
每天02:00点执行一次监控 |
配置多维分析
触发告警时,可通过多维分析对原始日志做进一步的分析,并将分析结果附加在告警通知中,以辅助定位告警原因。多维分析不会影响告警触发条件。
多维分析类型 |
说明 |
相关原始日志 |
获取符合执行语句检索条件的原始日志,可配置需要展示的日志字段、条数及展示形式。 例如 error 日志过多触发告警时,在告警中查看对应的详细日志。 |
字段 TOP5 及占比统计 |
针对触发告警时间范围内的全部日志,按指定字段分组统计日志条数,获取前5项字段值及其占比。 例如 error 日志过多触发告警时,日志对应的 Top5 URL、Top5 响应状态码等。 |
自定义检索分析 |
针对触发告警时间范围内的全部日志,执行自定义检索分析语句。 例1:通过 `* |
说明:
“相关原始日志”及“字段 TOP5 及占比统计”支持自动关联指定的执行语句中的检索条件(不包含分析语句,即 SQL 中的过滤条件),表示需要对符合哪些条件的原始日志进行多维分析。
配置告警通知
- 告警频率:
- 持续周期:当持续满足触发条件达到一定次数(默认为1,有效值范围:1 - 10)以后才发送通知。
- 间隔时间:上一次发送通知后,指定间隔时间内不再发送通知。例如,每15分钟告警一次,表示15分钟内最多只会收到一次告警通知。
- 通知渠道组:
通过关联通知渠道组,设置发送通知的方式及对象,支持短信、邮件、电话、微信、企业微信、自定义回调接口(webhook) 等通知方式。详情参考 管理通知渠道组。
- 通知内容:
可以通过在通知内容加入预设的变量,将指定的信息附加在告警通知中,具体变量和说明请参考 告警通知变量。
- 自定义接口回调配置:
如果选中的通知渠道组里包含自定义接口回调,则会显示自定义回调接口配置输入框。在输入框中可自定义请求头(Request Header)和请求内容(Request Body),触发告警时 CLS 将使用该请求头和请求内容调用指定的接口。请求头及请求内容中可使用 告警通知变量,将触发告警时的一些数据发送至指定接口。
最佳实践
按时间段分别设置告警触发条件
使用同环比作为告警触发条件
本页内容是否解决了您的问题?