在云防火墙控制台开通日志分析服务后,您可对采集到的日志数据进行实时查询与分析、查看或编辑仪表盘、设置监控告警等操作。本文介绍如何查询日志。

操作步骤

  1. 登录云防火墙控制台。在左侧导航栏,选择日志分析 > 日志分析
  2. 日志分析页面的日志查询页签,单击投递开关
    log
  3. 日志投递开关气泡,开启日志投递开关。
  4. 在输入框中输入查询和分析语句。

    日志服务定义了一系列查询语法和分析语法,支持多种复杂场景下的日志查询。更多详细介绍,请参见自定义查询与分析

  5. 单击15分钟(相对),设置查询分析的时间范围。
    您可以设置相对时间、整点时间和自定义时间。 此处设置的查询时间最小粒度为分钟。如果需要精确到秒,请在分析语句中指定时间范围,例如* | SELECT * FROM log WHERE __time__>1558013658 AND __time__< 1558013660
    说明 查询和分析结果有1分钟以内的误差。
  6. 单击查询/分析,查看查询分析结果。

操作查询和分析结果

日志服务为您提供日志分布直方图、原始日志和统计图表形式的展示查询和分析结果,并支持设置告警、快速查询等操作。
重要 执行查询和分析语句后,默认只返回100条结果,您可以使用LIMIT语句控制返回结果数量。更多信息,请参见LIMIT子句
  • 查询直方图
    查询直方图主要展示查询到的日志在时间上的分布情况。 查询直方图
    • 将鼠标悬浮在绿色数据块上时,您可以查看该数据块代表的时间范围和日志命中次数。
    • 双击绿色数据块,您可以查看更细时间粒度的日志分布,同时在原始日志页签中同步展示指定时间范围内的查询结果。
  • 原始日志
    原始日志页签中展示当前查询结果,您可单击表格原始查看日志并可执行如下操作。 原始日志
    • 快速分析:用于快速分析某一字段在一段时间内的分布情况。具体操作,请参见快速分析
      您还可以单击别名图标,选择显示Key或Key的别名。您可以在创建索引时设置字段的别名。例如host_name的别名为host,如果你选择显示别名,则在快速分析列表中显示host
      说明 当某字段没有别名时,您选择显示别名,则快速分析列表中仍显示字段名(Key)。
    • 上下文浏览:在原始页签中,单击目标日志中的查询日志-004图标,查看指定日志在原始文件中的上下文信息。具体操作,请参见上下文查询
      重要 只有通过Logtail采集到的日志才支持上下文浏览功能。
    • LiveTail:在原始页签中,单击目标日志中的LiveTail图标,实时监控日志内容,提取关键日志信息。具体操作,请参见LiveTail
      重要 只有通过Logtail采集到的日志才支持LiveTail功能。
    • 设置Tag:在原始页签中,单击设置图标下的Tag设置,将次要的字段内容简化展示。Tag
    • 设置列:在表格页签中,单击设置图标下的列设置,设置表格中要展示的日志信息,其中列名称为字段名,内容为字段值。 列设置
    • 设置JSON:在表格原始页签中,单击设置图标下的JSON设置,设置JSON展开级别。
    • 设置事件:在表格原始页签中,单击设置图标下的事件配置,为原始日志设置事件。 具体操作,请参见事件配置
    • 下载日志:在表格原始页签中,单击下载日志图标下载日志,支持选择下载范围和下载工具。具体操作,请参见下载日志
  • 统计图表
    执行查询和分析语句后,您可以在统计图表页签中查看可视化的查询和分析结果。
    • 查看查询和分析结果:统计图表是日志服务根据查询与分析语句渲染出的结果。日志服务提供表格、线图、柱状图等多种图表类型。目前,统计图表包括Pro版本和普通版本。具体操作,请参见统计图表(Pro版本)概述统计图表概述
    • 添加图表到仪表盘:仪表盘是日志服务提供的实时数据分析大盘。单击添加到仪表盘,将查询和分析结果以图表形式保存到仪表盘中。具体操作,请参见可视化概述
    • 设置交互事件:交互事件是数据分析中不可缺少的功能之一,通过改变数据维度的层次、变换分析的粒度从而获取数据中更详尽的信息。具体操作,请参见交互事件
  • 日志聚类

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

  • 告警

    在查询和分析页面上,选择另存为告警 > 新版告警,可为查询和分析结果设置告警。具体操作,请参见快速设置日志告警

  • 快速查询

    在查询和分析页面上,单击快速查询图标,将某一查询和分析语句保存为快速查询。具体操作,请参见快速查询

自定义查询分析

日志查询语句由查询语法(Search)和分析语法(Analytics)两个部分组成,中间通过竖线(|)进行分隔:

$Search | $Analytics
类型说明
查询(Search)查询语句使用日志分析专用语法,查询满足条件的日志数据。查询条件由关键词、模糊、数值、区间范围和组合条件等产生。如果为空或*,代表查询所有数据。
分析(Analytics)分析语句使用SQL/92语法,对查询结果进行统计分析。如果为空,代表只返回查询结果,不进行统计。

查询语法

日志服务查询语法支持全文查询字段查询,查询框支持换行显示、语法高亮等功能。
  • 全文查询

    无需指定字段,直接输入关键字进行全文查询。您可以用双引号("")包裹关键字,查询包含该关键字的日志。也可以用空格或and分隔多个关键字,查询包含这些关键字的日志。

    示例
    • 多关键字查询

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

      www.aliyun.com error或者www.aliyun.com and error

    • 条件查询

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

      www.aliyun.com and (error or 404)
    • 前缀查询

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

      www.aliyun.com and failed_*
      说明 查询中只支持后缀添加*,但不支持以*作为前缀(如*_error)。
  • 字段查询

    基于字段进行更精准的查询。

    字段查询支持数值类型字段的比较查询,格式为字段:值字段 >= 值。同时,通过andor等可进行组合查询,并支持与全文搜索组合使用。
    说明 云防火墙日志服务支持基于字段查询。关于日志中各个字段的含义、类型、格式等信息,请参见日志字段说明
    示例
    • 查询多字段

      如果要搜索指定客户端192.0.2.0访问目的地址192.0.2.54的访问日志,您可以设置以下查询条件:

      src_ip: 192.0.2.0 and dst_ip: 192.0.2.54
      说明 本示例中的src_ip字段和dst_ip都是云防火墙记录的日志字段。
    • 查询字段是否存在
      • 查询包含total_pps字段的日志。
        total_pps: *
      • 查询不包含total_pps字段的日志。
        not total_pps: *
关于日志服务支持的查询语法完整说明,请参见索引与查询

分析语法

您可以使用SQL/92语法对日志数据进行分析与统计。

关于日志服务支持的语法与函数说明,请参见实时分析
说明
  • 分析语句中可以省略SQL标准语法中的from 表格名语句,即from log语句。
  • 日志数据默认返回前100条,您可以通过LIMIT语法修改返回范围。

常见日志分析查询语句

  • 查询时请选择对应的时间区间。
  • 分析语句如果不设置limit,默认返回100条内容。如果您需要返回更多的内容,请手动设置limit
  • 不同的云防火墙类型对应的log_type不同。
    • 互联网边界防火墙:internet_log

      其中,direction:in的数据表示互联网主动向内部资产发起访问的网络记录;direction:out的数据表示内部资产主动向互联网发起访问的网络记录。

    • VPC边界防火墙:vpc_firewall_log

      VPC边界防火墙无出入方向概念,direction字段默认只返回direction:out

    • NAT边界防火墙:nat_firewall_log

      其中,direction:in的记录表示互联网向NAT网关建立连接的日志;direction:out表示NAT网关向互联网建立连接的日志。

关于日志字段的详细介绍,请参见日志字段说明

流量大小查询语句

  • 查询互联网主动向资产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 C段、应用字段聚合,分析源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