查询及分析日志

通过实时查询与分析采集的日志数据,您可以准确把握网络活动的具体情况,并识别出流量的异常情况,从而实现安全监控的加强和安全事件响应效率的提升。本文将指导您如何运用查询和分析语句操作日志分析工具,并展示如何查阅和理解查询结果。

语句说明

查询语句和分析语句

日志分析的语句分为查询语句和分析语句,查询语句和分析语句之间以竖线(|)分隔。

查询语句|分析语句
  • 查询语句的语法为日志服务专有语法,查询满足条件的日志数据,可以单独使用。查询语句可以为关键词、数值、数值范围、空格、星号(*)等;如果为空格或星号(*),表示无过滤条件。

    查询语法根据索引配置方式可分为全文查询和字段查询。更多信息,请参见查询语法

    全文查询

    指定关键字进行全文查询。您可以用双引号("")包裹关键字,查询包含该关键字的日志;也可以用空格或and分隔多个关键字,查询包含指定关键字的日志。

    • 多关键字查询

      搜索包含所有www.aliyun.compass的日志。

      www.aliyun.com pass

      www.aliyun.com and pass
    • 条件查询

      搜索所有包含www.aliyun.com,并且包含pass或者tcp的日志。

      www.aliyun.com and (pass or tcp)
    • 前缀查询

      搜索所有包含www.aliyun.com,并且以tcp_开头的日志。

      www.aliyun.com and tcp_*
      说明

      查询中只支持后缀添加*,不支持以*作为前缀(如*_not_establish)。

    字段查询

    指定字段名称和字段值进行查询。字段查询支持数值类型字段的比较查询,格式为字段:值字段 >= 值;同时,通过andor等可进行组合查询,并支持与全文搜索组合使用。

    云防火墙日志分析支持索引的字段,请参见支持索引的字段

    • 查询多字段

      查询指定客户端192.XX.XX.22访问目的地址192.XX.XX.54的访问日志。

      src_ip: 192.XX.XX.22 and dst_ip: 192.XX.XX.54
    • 查询字段是否存在

      • 查询包含cloud_instance_id字段的日志。

        cloud_instance_id: *
      • 查询不包含cloud_instance_id字段的日志。

        not cloud_instance_id: *
  • 分析语句是对查询结果或全量数据进行计算和统计,必须与查询语句一起使用。如果分析语句为空,表示只返回查询结果,不进行分析。分析语句的语法与函数说明,请参见分析概述

常用的查询语句

以下为您介绍云防火墙日志的常用查询语法和示例。

流量大小查询语句

  • 查询互联网主动向内部资产1.2.*.*发起访问的网络记录,并统计流入资产的流量总大小和报文总数。

    log_type:internet_log and direction:"in" and dst_ip:1.2.*.* | select sum(in_packet_bytes) as flow, sum(in_packet_count) as packet
  • 查询NAT边界防火墙流量,并以源IP、目的IP、目的端口字段聚合,分析流入资产和流出资产的总流量大小Top 10情况。

    log_type:nat_firewall_log | select src_ip, dst_ip, dst_port, sum(in_packet_bytes) as in_bytes, sum(out_packet_bytes) as out_bytes, sum(total_packet_bytes) as total_bytes group by src_ip, dst_ip, dst_port order by total_bytes desc limit 10

访问控制常见语句

  • 查询互联网主动向内部资产发起访问,并且命中访问控制策略的流量日志。

    log_type:internet_log and direction:"in" and not acl_rule_id:00000000-0000-0000-0000-000000000000

    其中,not acl_rule_id全为0表示命中访问控制策略,其他情况则表示未命中访问控制策略。

  • 查询内部资产主动向互联网发起访问、并且命中访问控制策略被拦截的流量日志,分析Top 10目的IP、目的端口的分布情况。

    log_type:internet_log and direction:out and not acl_rule_id:00000000-0000-0000-0000-000000000000 and rule_result:drop | select dst_ip, dst_port, count(*) as cnt group by dst_ip, dst_port order by cnt desc limit 10
  • 查询内部资产主动向互联网发起访问、目的端口443、报文数大于3(完成TCP 3次握手)、未识别到域名信息的流量日志,并以目的IP段、应用字段聚合,分析源IP、目的IP、应用的Top 10情况。

    log_type:internet_log and direction:out and dst_port:443 and total_packet_count>3 and domain:""| select array_agg(distinct src_ip) as srcip, array_agg(distinct dst_ip) as dstip, slice(split(dst_ip,'.' ,4),1,3) as dstip_c, app_name, COUNT(1) as cnt GROUP by dstip_c,app_name order by cnt desc limit 10

攻击防护常见语句

  • 查询互联网主动向内部资产主动发起访问、并且命中攻击防护策略的流量日志。

    log_type:internet_log and direction:"in" and not ips_rule_id:00000000-0000-0000-0000-000000000000

    其中,not ips_rule_id全为0表示命中攻击防护策略,其他情况则表示未命中攻击防护策略。

  • 查询内部资产主动向互联网发起访问、并且命中攻击防护策略的流量日志,查看IP、端口、应用、域名、IPS策略结果等信息。

    log_type:internet_log and direction:out and not ips_rule_id:00000000-0000-0000-0000-000000000000 | select src_ip, dst_ip, dst_port,app_name, domain,ips_rule_id, ips_rule_name, rule_result

操作步骤

  1. 登录云防火墙控制台

  2. 在左侧导航栏,选择日志监控 > 日志分析,然后单击日志查询

  3. (可选)默认情况下,进入日志查询页面时,系统会自动执行一次查询操作,展示查询结果。您可以单击页面右上角的image图标,在查询设置页签,关闭该功能或设置查询时间。

  4. 在搜索框输入查询语句和分析语句。

    • 查询语句用于日志数据的查看、简单搜索和过滤。您可以使用查询语句,通过特定条件(例如时间范围、请求类型、关键字等)筛选出感兴趣的数据集。查询语句可以单独使用,语法说明请参见查询语法

    • 分析语句用于对日志数据进行过滤、转换、统计、聚合等操作,例如统计一段时间内数据的平均值、获取数据的同比和环比结果。分析语句必须配合查询语句一起使用,格式为查询语句|分析语句,语法说明请参见聚合函数

    • 在搜索框右侧,单击image图标,切换为交互式查询分析方式。您可以使用Data Explorer简单、快速地构建查询和分析语句,无需编写SQL代码。具体操作,请参见通过Data Explorer构建查询和分析语句

  5. 设置日志数据的时间范围。有以下三种设置方式,如果在分析语句中设置了时间范围,则查询分析结果以该时间范围为准。

    重要

    执行查询和分析语句后,默认只返回100行。如果您希望返回更多数据,可使用LIMIT语法。更多信息,请参见LIMIT子句

    • 在页面顶端的下拉列表中,选择时间范围例如最近15分钟

    • 分析语句中通过__time__字段指定时间范围(闭合区间),例如* | SELECT * FROM log WHERE __time__>1558013658 AND __time__< 1558013660

    • 分析语句中指定时间时,使用from_unixtime函数to_unixtime函数转换时间格式。例如:

      • * | SELECT * FROM log WHERE from_unixtime(__time__) > from_unixtime(1664186624) AND from_unixtime(__time__) < now()

      • * | SELECT * FROM log WHERE __time__ > to_unixtime(date_parse('2022-10-19 15:46:05', '%Y-%m-%d %H:%i:%s')) AND __time__ < to_unixtime(now())

  6. 单击查询/分析,查看查询分析结果。详细介绍,请参见查看查询分析结果

查看查询分析结果

您可以通过直方图、原始日志等模块展示的数据,查看日志查询分析结果。

说明
  • 分析语句如果不设置limit,默认返回100条内容。如果您需要返回更多的内容,请手动设置limit

  • 以下为您介绍直方图和原始日志展示的数据信息,其他功能模块,请参见查询和分析日志

直方图

直方图展示查询到的日志在时间上的分布情况。

image

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

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

原始日志

原始日志展示了日志的查询分析结果。

image

序号

说明

图示①

切换日志的展示格式、排序时间等。

图示②

单击image图标,可下载日志到本地或查看日志的下载记录。详细介绍,请参见导出日志

图示③

  • 单击image图标后选择JSON配置,设置JSON展开类型和展开级别。

  • 单击image图标后选择事件配置,为原始日志提供可视化、易操作的日志钻取功能,方便您获取更详尽的日志信息,具体操作,请参见事件配置

图示④

展示日志显示字段、索引日志和系统字段。

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

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

    说明

    未添加任何显示字段时,右侧日志信息展示系统默认配置的字段。

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

图示⑤

  • 设置显示字段后,单击image图标,将显示字段列表收藏为视图,便于后续快速切换展示关注的字段数据。

  • 单击image图标后选择tag设置,将字段设置为系统tag,展示在右侧日志信息上方。例如image

  • 单击image图标后开启别名功能,将字段名称替换为别名,未设置别名的字段仍展示字段名称。设置字段别名的步骤,请参见创建索引

图示⑥

展示日志详情,日志字段的详细介绍,请参见日志字段

  • 单击image图标,负责日志内容。

  • 单击image图标,调用SLS Copilot,基于日志内容总结信息、查找错误信息等。

  • 单击image图标,查看Tag详情。

相关文档