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

SLS新版告警入门-统一的查询分析语法

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

简介:前言 SLS新版告警支持多种监控目标 如SLS的日志存储 时序存储 也支持对外部系统如Promethus,Grafana,Zabbix产生的告警进行管理 在对SLS的存储进行监控时 用户可以自定义告警监控规则或者使用内置的告警规则。自定义告警监控规则主要包括监控目标 触发条件 行……
前言

SLS新版告警支持多种监控目标 如SLS的日志存储 时序存储 也支持对外部系统如Promethus,Grafana,Zabbix产生的告警进行管理 在对SLS的存储进行监控时 用户可以自定义告警监控规则或者使用内置的告警规则。自定义告警监控规则主要包括监控目标 触发条件 行动配置等。本文主要介绍在创建自定义告警规则时 如何使用统一的查询分析语法来查询并定义监控目标。

image.png

查询分析语法概览

SLS支持可观测性的Log Metric Trace的存储 对于不同类型的存储 SLS支持使用统一的查询分析语法来查询分析数据。本文主要介绍下查询日志 查询时序 机器学习等语法。

配置索引

对于SLS中的数据日志服务采用半结构化的数据模式定义一条日志 包含日志主题 Topic 、时间 Time 、内容 Content 、来源 Source 和标签 Tags 五个数据域 其中内容数据域记录了日志的具体内容 有一个或多个内容项组成 每一个内容项为一个键值对 Key:Value 。

对于日志内容中的键值对 只有配置索引后 才能进行查询和分析操作 索引类型主要包括全文索引和字段索引。其区别如下

索引类型说明全文索引日志服务根据您设置的分词符将整条日志拆分成多个词并构建索引。在查询时 字段名称 KEY 和字段值 Value 都是普通文本。例如查询语句error 表示查询包含error关键字的日志。字段索引配置字段索引后 您可以指定字段名称和字段值 Key:Value 进行查询 缩小查询范围。例如查询语句level:error 表示查询level字段值包含error的日志。

如果您要使用分析功能 必须配置字段索引且开启对应字段的统计功能。开启统计功能不会产生额外的索引流量和索引存储空间。


在SLS控制台查询页面 可以配置索引 如下示例是nginx的日志索引配置 包括日志中的host,http_referer等字段的索引。

image.png

查询分析语法

基本语法

查询语句|分析语句

SLS的查询分析语法包含两部分 一部分是查询语句 一部分是分析语句 两者之间用小竖线 | 来分隔 查询语法为SLS专有语法 可以参考查询语法 分析语句支持标准的SQL92语法并且包含SLS增强的函数 可以参考分析概述。查询语句和分析语句区别如下

语句类型说明查询语句查询语句用于指定日志查询时的过滤规则 返回符合条件的日志。

查询语句可以为关键词、数值、数值范围、空格、星号 * 等。 如果为空格或星号 * 表示无过滤条件。

分析语句分析语句用于对查询结果或全量数据进行计算和统计。


比如需要查询一个nginx的5xx错误的次数 可以使用如下查询语句 其中查询语句用查询status超过500的日志 分析语句是一条标准的SQL聚合语句。

status 500 | SELECT count(1) as err_cnt from log


告警监控查询场景

SLS新版告警自定义告警规则完全支持SLS的查询分析语法 通过SLS的查询分析语句 可以根据业务和监控需求 查询出需要监控的数据 然后设置相应的触发条件 来触发告警。

场景1 查询语句

比如在监控Nginx日志时 需要查询5xx的错误日志 并且想要把这些错误相关的日志通过告警发出来 我们可以直接使用status 500 查询出来的结果包含错误的request_uri, host request_method等 这里的字段包含所有的日志索引字段。

image.png

根据上面的查询语句 我们可以直接另存为新版告警 触发条件设置为有数据。告警监控在评估时如果查询到有5xx的错误 就会触发告警。在内容模板中引用${fire_results}或者${fire_results_as_kv}即可展示错误信息。

image.png

场景2 查询语句|分析语句

跟场景1中的例子相似 我们可能在告警中不需要把每个字段都通知出来 只需要最关键的字段比如host request_method request_uri status。这时候我们可以机上分析语句筛选出特定的字段

status 500 | SELECT host, request_method, request_uri, status

查询结果示例如下

image.png

在配置告警时 触发条件同样选择有数据 在内容模板中引用${fire_results}或者${fire_results_as_kv}即可展示select后的字段信息。

image.png

场景3 时序数据监控

对于时序数据 SLS支持两种查询方式 SQL查询分析和SQL PromQL查询分析

SQL查询分析

使用SLS时序存储接入了主机监控。现在查询主机在过去5分钟内的最大和平均CPU使用率 可有使用SQL查询分析 例句如下

*| SELECT element_at(__labels__, hostname ) as host_name, max(__value__) as max_cpu_util, avg(__value__) as avg_cpu_util
FROM ecs-metric.prom 
WHERE __name__ cpu_util 
group by element_at(__labels__, hostname )

查询结果如图 在配置告警规则时 触发条件可以配置为有数据匹配 条件写avg_cpu_util 80 即可实现对平均使用率超过80%的主机进行监控 可以使用${fire_results}或者${fire_results_as_kv}引用平均使用率高于80%的主机数据。

image.png

SQL PromQL方式

SLS支持使用PromQL语法对时序数据进行查询链接 支持5个PromQL函数 promql_query、promql_query_range、promql_labels、promql_label_values和promql_series。


promql_query(string)、promql_query_range(string, string)函数返回的表的结构如下表所示

字段名字段类型说明metricvarchar时序名称。如果查询分析中使用了Group By语法 那么该值可能为空。labelsmap varchar, varchar Lables信息 Map类型。timebigint时间。valuedouble某个时间点对应的值。


这里以promql_query_range函数为例介绍查询CPU使用率高于80%的时序点。告警规则配置为有数据。分组评估选择“标签自动” 即会

* | select promql_query_range( cpu_util ) from metrics having value 80 limit 1000

image.png


场景4 机器学习语法

SLS机器学习功能为您提供多种功能丰富的算法和便捷的调用方式 您可以在日志查询分析中通过分析语句和机器学习函数调用机器学习算法 分析某一字段或若干字段在一段时间内的特征。

接下来以一个异常检测函数ts_predicate_simple为例介绍下查询分析方。

函数格式

select ts_predicate_simple(x, y, nPred, isSmooth) 

参数说明如下

参数说明取值x时间列 从小到大排列。格式为Unixtime时间戳 单位为秒。y数值列 对应某时刻的数据。-nPred预测未来的点的数量。long类型 取值大于等于1。isSmooth是否需要对原始数据做滤波操作。bool类型 默认为true表示对原始数据做滤波操作。


以OSS访问日志为例 查询每30秒的pv波动情况 并找出异常点

 * | select ts_predicate_simple(stamp, value, 6) from (select __time__ - __time__ % 30 as stamp, count(1) as value from log GROUP BY stamp order by stamp) 

如下图 红色圆圈表示通过机器学习算法找到的异常点 对应查找结果中的anomaly_prob 1.0 其中src表示原始值 predict表示预测值 可以在告警规则配置中对这些异常点进行检测。

image.png

告警配置如下 触发条件选择有大于2条数据满足anomaly_prob 0 表示在过取4小时内 有两个异常点即告警。

image.png


参考SLS查询概述【链接】SLS分析概述【链接】查询和分析日志【链接】时序数据查询分析简介【链接】预测与异常检测函数【链接】进一步参考SLS 日志服务 云原生观测分析平台 https://www.aliyun.com/product/slsSLS新版告警文档首页 https://help.aliyun.com/document_detail/207609.html欢迎扫群加入阿里云-日志服务 SLS 技术交流 集团同学请直接搜索群号11702236加入 ,?获得第一手资料与支持后续系列直播与培训视频会同步到B站 敬请留意

image


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

推荐图文

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

随机推荐