日志查询

更新时间:
复制为 MD 格式

Web 应用防火墙 WAF(Web Application Firewall)防护对象开启日志采集后,您可以通过日志查询,对防护对象的日志数据进行查询与分析,并基于查询与分析结果生成统计图表、创建告警等。

适用范围

查询与分析日志

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地

  2. 在左侧导航栏,选择检测响应 > 日志服务

  3. 日志服务页面左上角,选择要查询日志的防护对象。

    重要

    防护对象必须开启日志采集(状态已开启),否则WAF无法采集其日志数据。若所选防护对象未开启日志采集,请在当前页面搜索该防护对象,单击其名称,并开启状态开关以启用日志采集。

  4. 日志查询页签,通过查询与分析语句,对WAF日志数据进行查询与分析。

    1. 在语句输入框,输入查询语句。

      查询语句采用阿里云日志服务专用语法,关于该语法的详细介绍,请参见查询语法与功能。查询语句中使用WAF日志包含的字段作为查询字段,关于支持使用的查询字段,请参见日志字段说明

      如果您不了解日志查询语法,推荐使用高级搜索。只需在语句输入框上方展开高级搜索,设置搜索条件并单击搜索,语句输入框即可自动生成与搜索条件匹配的日志查询语句。下表描述了高级搜索支持设置的搜索条件。

      搜索条件

      说明

      IP

      发起请求的客户端的IP地址。

      请求ID

      WAF为客户端请求生成的唯一标识。WAF向客户端返回拦截页面或者滑块验证响应时会提供该ID,用于问题分析与故障排查。

      规则ID

      请求命中的WAF防护规则的ID。您可以防护规则页面,查询具体规则的规则ID;或者在安全报表页面,通过规则命中纪录或统计数据,获取请求命中的规则ID。更多信息,请参见安全报表

      服务器响应状态码

      源站服务器响应WAF回源请求的HTTP状态码。

      WAF返回客户端响应码

      WAF响应客户端请求的HTTP状态码。

      防护模块

      请求命中的WAF防护模块的类型。关于WAF防护模块的介绍及不同模块防护规则的配置方法,请参见防护配置概述

    2. 如果您需要对查询结果进行计算和统计分析,可以在语句输入框已输入的查询语句后,输入分析语句;如果您只需要查询满足条件的日志数据,可以跳过该步骤。

      分析语句和查询语句间使用竖线(|)分隔。分析语句采用标准的SQL 92语法,关于分析语句的更多介绍,请参见查询与分析概述

    3. 通过时间选择器,设置要查询的日志的创建时间范围。

    4. 单击查询 / 分析

      查询与分析结果(即命中查询条件的WAF日志数据)将会显示在页面下方,包含日志分布直方图原始日志统计图表日志聚类。可以基于查询结果进行快速分析、生成统计图表、设置告警等,具体说明,请参见查询/分析页面说明

常见查询场景示例

以下示例展示 WAF 日志常见的查询与分析场景。查询语句中的时间范围通过控制台上方的时间选择器设置,无需在语句中编写时间过滤条件。

说明

请根据实际业务情况,将下文中的域名与IP地址等信息替换为真实值。

  • 查询访问IP TOP 10:

    host:example.com |SELECT real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10
  • 查询访问URL TOP 10:

    host:example.com |SELECT request_path,COUNT(*) as c group by request_path order by c desc limit 10
  • 查询某个IP访问的URL(遭受CC攻击时,被攻击的接口通常较为集中):

    host:example.com and real_client_ip:1.2.3.4 |SELECT request_path,COUNT(*) as c group by request_path order by c desc limit 10
  • 查询某个接口访问TOP 10 IP(遭受攻击时,通常恶意IP排行靠前):

    host:example.com and request_path: "/login.php" |SELECT real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10
  • 查询状态码(通过异常状态码确认业务是否正常):

    host:example.com|select status, upstream_status,COUNT(*) as c GROUP by status, upstream_status order by c desc limit 10
  • 查找命中CC防护模块的IP:

    host:example.com and final_plugin:cc |select real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10

导出查询结果

执行查询后,您可以在原始日志页签单击下载日志,将当前查询结果中的原始日志数据导出为 CSV 文件。

说明

统计图表页签不支持直接下载数据表。

大数据量日志分析建议

当 WAF 日志数据量较大时(例如百万级以上),不建议导出全量原始日志后在本地处理。推荐直接使用日志查询页面的 SQL 分析功能进行聚合统计,在云端完成计算后仅下载统计结果。

例如,统计各防护规则的命中数量:

* | SELECT matched_host, final_action, COUNT(*) as c GROUP BY matched_host, final_action ORDER BY c DESC LIMIT 1000

统计指定时间段内各域名的访问量:

* | SELECT host, COUNT(*) as pv GROUP BY host ORDER BY pv DESC LIMIT 100

利用 GROUP BYCOUNTSUM 等 SQL 聚合函数在云端完成计算,可以显著提高大数据量场景下的分析效率,避免因导出全量原始日志导致的超时或文件过大问题。

查询/分析页面说明

页面概览image

直方图

image

  • 将鼠标悬浮在绿色数据块上时,您可以查看该数据块代表的时间范围和日志命中次数。

  • 双击绿色数据块,您可以查看更细时间粒度的日志分布,同时原始日志页签中将同步展示指定时间范围内的查询结果。

原始日志

  • 日志详情image

    • 单击表格原始,切换日志格式。

    • 下载日志 > 下载日志:可下载日志到本地。具体操作,请参见下载日志

    • image.png>JSON设置:设置JSON展示类型和展示级别。

    • image.png>事件配置:为原始日志配置事件

    • image.png:复制日志内容。

    • image.png:SLS Copilot,基于日志内容总结信息、查找错误信息等。

    • 查询日志-004:查看指定日志在原始文件中的上下文信息。只有通过Logtail采集到的日志才支持上下文浏览功能。具体操作,请参见上下文查询

    • LiveTail:实时监控日志内容,提取关键日志信息。只有通过Logtail采集到的日志才支持LiveTail功能。 具体操作,请参见LiveTail

  • 显示字段image

    • 显示字段区域,单击目标字段后的image.png,将索引字段从显示字段中清除,右侧的日志信息中不再显示。

    • image.png:收藏视图。在区域5设置显示字段后,可以收藏显示视图。在区域4上方的下拉列表选择视图。

    • image.png>tag设置:将字段设置为系统Tag。

    • image.png>别名:开启后,字段名称将被别名替换,未设置别名的字段仍展示字段名称。设置字段别名的步骤,请参见创建索引

  • 索引字段image

    • 索引字段区域,单击目标字段后的image.png,将字段添加到显示字段中,在右侧的日志信息中显示。

    • image.png:查看字段的基本分布情况统计指标等信息。具体操作,请参见字段设置

统计图表

统计图表是日志服务根据查询与分析语句渲染出的结果。日志服务提供表格、线图、柱状图等多种图表类型。具体操作,请参见统计图表。 执行查询和分析语句后,您可以在统计图表页签中查看可视化的查询和分析结果。 image

本页签其他功能说明:

  • 添加到仪表盘:仪表盘是日志服务提供的实时数据分析大盘。单击添加到仪表盘,将查询和分析结果以图表形式保存到仪表盘中。具体操作,请参见可视化概述

  • 另存为定时SQL日志服务提供定时SQL功能,用于定时分析数据、存储聚合数据、投影与过滤数据。具体操作,请参见定时SQL

  • 交互事件:交互事件是数据分析中不可缺少的功能之一,通过改变数据维度的层次、变换分析的粒度从而获取数据中更详尽的信息。具体操作,请参见为仪表盘添加交互事件实现下钻分析

日志聚类image

日志聚类页签中,单击开启日志聚类,可实现在采集日志时聚合相似度高的日志。具体操作,请参见日志聚类

SQL增强image

单击右上角SQL独享版图标,可单次开启SQL独享版。当您在使用SQL分析时,如果数据量较大,日志服务无法在一次查询中完整分析这个时间段内的所有日志。通过开启SQL独享版,增加计算资源,可以提升单次分析的数据量。如需设置默认开启,请参见高性能完全精确查询与分析(SQL独享版)

告警image

单击右上角另存为告警图标,将查询和分析结果另存为告警。具体操作,请参见告警设置快速入门

快速查询image

单击右上角快速查询图标,将当前查询和分析语句另存为快速查询。您可通过保存的历史操作,快速执行查询和分析操作。具体操作,请参见快速查询

分享image

单击右上角image.png图标,复制本页面链接,分享给其他用户。具体操作,请参见控制台内嵌及分享