腾讯云 CLS
在日志分析中选择即时查询,选择阿里云 SLS 数据源,选择指定项目和日志库,就可以查询日志了。
表格图
根据举例的查询条件语句*|SELECT status,count(*) as pv GROUP BY status。将查询统计 status 字段,并将统计计算结果命名为 pv ,将结果 pv 以 status 通过表格分组展示。
语句简析 | select …: |管道符左侧是检索条件;|管道符右侧 select …是 SQL 语句;
status :表示日志数据中的一个字段。
count() AS pv* :表示对每种 status 进行计数,并将计数结果命名为A。
GROUP BY status :表示将查询结果按照 status 字段进行分组。
更多语法学习可以参考:语法规则
时序图
将腾讯云 CLS 日志查询结果提取值,将过滤条件作为指标中 tag 转存展示。下面有一些查询举例,可以学习理解一下。
常用检索条件语法
检索 GET 请求中失败(状态码大于400)的日志:method:GET AND status>400
检索 ERROR 或 WARNING 级别的日志:level:(ERROR OR WARNING)
检索非 INFO 级别 的日志:NOT level:INFO
检索不存在remote_user字段的日志:not remote_user:*
检索存在remote_user字段的日志:remote_user:*
检索host字段值不为123的日志: not host:123.*
场景一:按分钟统计 GET 请求中失败(状态码大于400)的日志条数
method:GET AND status:>400 | select histogram(__TIMESTAMP__, interval 1 minute) as analytic_time_minute, count(*) as errorCount group by analytic_time_minute limit 1000
场景二:查询 request_method 字段以GE开头,且 client_ip 字段范围是 116.178.232. 的数据,使用 host 、 method 、request_uri 分组统计
method:GE* and remote_addr:116.178.232.* | SELECT http_host AS host,method AS method,request_uri AS url,count(*) AS count GROUP BY host,method,url
场景三:查询请求时间小于1秒的成功请求的日志中包含 flashcat 字符串的日志,使用 host 、 method 、request_uri 、status 、request_uri 分组统计。
flashcat AND read_request_time < 1 AND (status >= 200 AND status <= 299) | SELECT host AS host, request_method AS method, request_uri AS url,status as st, read_request_time as rqt,count(*) AS COUNT GROUP BY host, method, url,st,rqt