本文介绍了如何开通和快速使用DDoS高防全量日志分析服务。

前提条件

  • 已购买DDoS高防实例并将网站业务接入DDoS高防进行防护。具体操作,请参见添加网站

    只有完成网站接入后,您才可以通过全量日志分析采集和存储网站的日志数据,并对采集到的日志数据进行查询与分析。

  • 已开通阿里云日志服务。

    首次登录日志服务控制台时,您可以根据页面提示开通日志服务。

步骤1:开通全量日志分析

使用全量日志分析前,您需要开通服务并授权DDoS高防访问日志服务。

  1. 登录DDoS高防控制台
  2. 在顶部菜单栏左上角处,选择服务所在地域:
    • DDoS高防(新BGP):选择中国内地地域。
    • DDoS高防(国际):选择非中国内地地域。
    您可以通过切换地域分别管理和配置DDoS高防(新BGP)和DDoS高防(国际)实例。在使用DDoS高防服务时,请确认您已选择正确的地域。
  3. 在左侧导航栏,选择调查分析 > 全量日志分析
  4. 全量日志分析页面,单击立即购买
    如果您已经开通全量日志分析服务,则不会出现立即购买按钮,您可以直接使用该服务。相关操作,请参见步骤2:开启日志采集立即购买
  5. 全量日志购买页面,完成以下购买配置。
    全量日志购买页
    参数 说明
    适用产品 选择新BGP高防DDoS高防(国际)
    日志存储量 选择日志数据的最大存储空间,单位:TB。可选项:3T、5T、10T、20T、50T、100T、1000T。

    当日志存储空间足够大且在服务有效期内,将从使用服务的第一天开始,连续存储180天的日志数据。第181天的日志数据,将覆盖第一天存储的日志数据,即始终保持存储最近180天的全量日志数据。

    一般情况下,每条请求日志大约占用2 KB存储空间,如果您的业务的平均请求量为500 QPS,则一天的日志存储所需要的存储空间为:500*60*60*24*2 = 86,400,000 KB(约82 GB);系统默认的存储周期为180天,如果您需要存储最近180天的日志,则需要选择的日志存储量规格为14,832 GB(约14.5 TB)。

    重要 当您选购的日志存储空间占满后,将不再继续存储新的日志数据。
    购买时长 选择服务有效期。可选项:1个月、2个月、3个月、6个月、1年、2年。
    重要 全量日志分析服务到期后,将停止存储新的日志数据。
  6. 单击立即购买并完成支付。
    购买全量日志分析服务后,日志服务将自动为DDoS高防创建一个专属的日志项目(Project),用于管理DDoS高防的日志数据。您可以在日志服务控制台的首页查看DDoS高防专属日志项目。日志项目

    DDoS高防(新BGP)服务的专属日志项目名称以ddoscoo-project开头,DDoS高防(国际)服务的专属日志项目名称以ddosdip-project开头。

    DDoS高防专属日志项目默认包含以下资源:
    • 1个专属日志库(Logstore),用于存储DDoS高防的日志数据。DDoS高防(新BGP)服务的专属日志库名称为ddoscoo-logstore,DDoS高防(国际)服务的专属日志库名称为ddosdip-logstore
    • 2个预设的日志仪表盘(DDoS访问中心、DDoS运营中心),用于展示日志分析图形报表。DDoS高防(新BGP)和DDoS高防(国际)服务的日志仪表盘内容相同。
  7. 返回全量日志分析页面,授权DDoS高防服务将日志数据存储到日志服务专属日志库。
    说明 您只需完成一次授权即可。如果您已经完成授权,则无需执行该步骤。
    授权步骤如下:
    1. 单击立即授权
    2. 云资源访问授权页面,单击同意授权云资源访问授权

成功开通全量日志分析服务并完成授权后,您就可以在全量日志分析页面开始使用该服务。

步骤2:开启日志采集

DDoS高防默认不采集已接入DDoS防护的网站业务的日志数据。只有当您为网站域名开启日志采集后,DDoS高防才会采集该网站的日志数据,并将采集到的日志数据存储到日志服务专属日志库中,供您进行查询与分析。

  1. 登录DDoS高防控制台
  2. 在顶部菜单栏左上角处,选择服务所在地域:
    • DDoS高防(新BGP):选择中国内地地域。
    • DDoS高防(国际):选择非中国内地地域。
    您可以通过切换地域分别管理和配置DDoS高防(新BGP)和DDoS高防(国际)实例。在使用DDoS高防服务时,请确认您已选择正确的地域。
  3. 在左侧导航栏,选择调查分析 > 全量日志分析
  4. 全量日志分析页面,为网站域名开启日志采集。
    重要 网站业务必须已经完成域名接入,才可以开启日志采集。域名列表中仅显示已完成域名接入的域名。
    您可以从以下方式中选择一种,为域名开启日志采集:
    • 单独为某个域名开启日志采集:从选择域名下拉列表选择一个域名,打开状态开关。
    • 批量配置:单击页面右上方的批量配置,并在批量配置面板选中多个域名,单击批量开启
    选择域名
    开启日志采集后,DDoS高防会采集和存储网站的日志数据,供您进行查询与分析。关于查询与分析日志的方法,请参见步骤3:使用全量日志

步骤3:使用全量日志

为域名开启日志采集后,您就可以在全量日志分析页面,使用全量日志功能对采集的日志数据进行查询和分析、使用日志报表功能查看DDoS高防预设的日志仪表盘报表。全量日志及日志报表

下表罗列了全量日志分析的基本功能。更多操作说明,请参见云产品日志通用操作

功能 子功能项 说明 更多信息
全量日志 查询和分析 对采集到的日志数据进行实时查询分析。查询分析语句由查询语句(Search)和分析语句(Analytics)两个部分组成,查询和分析语句间使用竖线(|)进行分隔。

例如,您可以通过以下查询分析语句,查询域名的访问量:

* | SELECT COUNT(*) as times, host GROUP by host ORDER by times desc limit 100

更多查询语句示例,请参见常用查询语句示例

查询和分析全量日志

全量日志字段说明

分析图表 查询分析语句中包含分析语法,语句执行后默认按表格方式展示分析结果,您还可以选择折线图、柱状图、饼图等多种图形方式进行展示。 统计图表概述
监控告警 您可以根据仪表盘中的查询图表设置告警,实现实时的服务状态监控。 告警简介
日志报表 仪表盘 仪表盘是日志服务提供的实时数据分析大盘。使用常用查询语句获取分析结果后,您可以将结果图表保存到仪表盘中。全量日志分析服务默认为您提供DDoS访问中心DDoS运营中心两个仪表盘。日志报表

您还可以通过订阅仪表盘功能,通过邮件或者钉钉群消息将仪表盘内容定时推送给指定对象。

查询日志报表

订阅仪表盘

步骤4:管理服务配置

全量日志分析页面的右上角展示了当前全量日志分析服务的规格配置,您可以在该区域执行以下操作:全量日志分析
  • 查询全量日志分析服务的有效期。如果全量日志分析服务即将到期,您可以通过续费,延长服务的有效期。
    重要 全量日志分析服务到期后将不再存储新的日志数据。服务到期7天后,已有日志数据将被清空。
  • 查询日志存储空间的使用情况。如果日志存储空间即将占满,您可以通过升级,提升日志存储空间容量;或者通过清空,删除不再需要保存的日志数据。

    控制台中显示的日志存储空间用量并非实时更新,与实际使用情况存在约两个小时的延迟。

    说明 建议您在全量日志分析服务使用期间,定期关注全量日志存储空间的使用情况。当日志存储空间使用量超过70%时,请及时升级日志存储量规格,避免新产生的日志无法存储,影响日志存储的连续性。当日志存储空间长期空闲时,您也可以根据实际日志量的大小,降低日志存储规格。
  • 修改日志存储时长。默认日志存储时长为180天。您可以单击规格详情,在规格详情对话框修改日志存储时长,可选范围:30~180天。规格详情

常用查询语句示例

  • 查询拦截类型
    * | select cc_action,cc_phase,count(*) as t group by cc_action,cc_phase order by t desc limit 10
  • 查询QPS
    * | select time_series(__time__,'15m','%H:%i','0') as time,count(*)/900 as QPS group by time order by time
  • 查询被攻击域名
    * and cc_blocks:1 | select cc_action,cc_phase,count(*) as t group by cc_action,cc_phase order by t desc limit 10
  • 查询被攻击URL
    * and cc_blocks:1 | select count(*) as times,host,request_path group by host,request_path order by times
  • 查询请求详情
    * | select date_format(date_trunc('second',__time__),'%H:%i:%s') as time,host,request_uri,request_method,status,upstream_status,querystring limit 10
  • 查询5XX状态码详情
    * and status>499 | select host,status,upstream_status,count(*)as t group by host,status,upstream_status order by t desc
  • 查询请求时延分布
    * | SELECT count_if(upstream_response_time<20) as "<20",
    count_if(upstream_response_time<50 and upstream_response_time>20) as "<50",
    count_if(upstream_response_time<100 and upstream_response_time>50) as "<100",
    count_if(upstream_response_time<500 and upstream_response_time>100) as "<500",
    count_if(upstream_response_time<1000 and upstream_response_time>500) as "<1000",
    count_if(upstream_response_time>1000) as ">1000"