DDoS高防的网站访问日志(含CC攻击日志)与阿里云日志服务联动,为您提供全量日志分析服务。全量日志分析是增值服务,需要开通后使用。开通全量日志分析后,日志服务将实时采集接入DDoS高防的网站业务的访问日志,并基于采集到的日志数据向您提供查询分析和日志报表服务。

背景信息

根据APNIC 2017年DDoS风险报告,超过80%的DDoS攻击都会混合Web攻击,而其中混合的CC攻击尤其隐蔽,因此通过日志对访问和攻击行为进行即时分析研究并附加防护策略就显得尤其重要。

DDoS高防全量日志分析基于阿里云日志服务,在DDoS高防控制台为您提供日志查询与分析页面,方便您对接入DDoS高防的网站业务进行自主分析。开通全量日志后,您也可以使用日志服务提供的日志消费和投递等功能,全面管理DDoS高防的网站访问日志。

关于阿里云日志服务(Log Service)的详细介绍,请参见什么是日志服务

开通全量日志分析

  1. 登录DDoS高防控制台
  2. 在顶部菜单栏,选择服务所在地域:
    • 中国内地:DDoS高防(新BGP)服务
    • 非中国内地:DDoS高防(国际)服务
    您可以通过切换地域分别管理和配置DDoS高防(新BGP)和DDoS高防(国际)实例。在使用DDoS高防服务时,请确认您已选择正确的地域。
  3. 在左侧导航栏,单击调查分析 > 全量日志分析
  4. 单击立即购买立即购买
    如果您已经开通了全量日志服务,则不会出现立即购买按钮,您可以直接使用全量日志分析,具体操作请参见为网站开启全量日志
  5. 全量日志购买页面,完成以下购买配置。
    全量日志购买页
    参数 说明
    适用产品 选择新BGP高防DDoS高防(国际)
    日志存储量 选择日志信息的最大存储空间,单位:TB。
    说明 当全量日志服务的日志存储量足够大且在服务有效期内,将从使用全量日志服务的第一天开始,连续存储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)。

    说明 当您选购的日志存储空间占满后,将不再继续存储新的日志信息。建议您关注日志存储空间的使用量,及时升级日志存储量规格。
    购买时长 选择全量日志服务的有效期。
    说明 全量日志服务有效期到期后,将停止存储新的日志信息。服务到期七天后如仍未续费延长服务有效期,将自动删除所有日志信息。

    计费说明

    • 新BGP高防全量日志服务的单价为500元/TB(日志存储量)/月(购买时长)
    • DDoS高防(国际)全量日志服务的单价为1000元/TB(日志存储量)/月(购买时长)。
  6. 单击立即购买并完成支付。
  7. 回到DDoS高防控制台的全量日志分析页面,单击立即授权
  8. 云资源访问授权页面,单击同意授权,授权DDoS高防服务将日志存储至您的日志服务专属日志库中。云资源访问授权
    开通全量日志服务并完成云资源访问授权后,您可以单击规格详情,查看当前的全量日志服务规格信息。规格详情
    说明 建议您在全量日志服务使用期间,定期关注全量日志存储空间的使用情况和服务有效期。
    • 当日志存储空间使用量超过70%时,请及时升级日志存储量规格,避免新产生的日志无法存储影响日志存储的连续性。
    • 当日志存储空间长期空闲时,您也可以根据实际日志量的大小,降低日志存储规格。

为网站开启全量日志

  1. 登录DDoS高防控制台
  2. 在顶部菜单栏,选择服务所在地域:
    • 中国内地:DDoS高防(新BGP)服务
    • 非中国内地:DDoS高防(国际)服务
    您可以通过切换地域分别管理和配置DDoS高防(新BGP)和DDoS高防(国际)实例。在使用DDoS高防服务时,请确认您已选择正确的地域。
  3. 在左侧导航栏,单击调查分析 > 全量日志分析
  4. 全量日志分析页面,选择要开启全量日志的网站域名,开启其状态开关。
    说明 网站业务必须已经完成域名接入,才可以开启全量日志。域名列表中仅显示已接入的域名。
    选择域名
    成功开启全量日志后,您可以在全量日志分析页面看到全量日志日志报表操作。已开启全量日志服务

使用全量日志

为域名开启全量日志后,您可以在全量日志分析页面对所采集的网站访问日志进行查询和分析,也可以查看DDoS高防内置的日志报表。

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

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

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

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

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

查询和分析全量日志

全量日志字段说明

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

同时,全量日志服务默认为您提供DDoS访问中心和DDoS运营中心两个仪表盘。

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

查询日志报表

全量日志应用场景

全量日志可以满足您的以下需求:
  • 排查网站访问异常

    配置日志服务采集DDoS高防日志后,您可以对采集到的日志进行实时查询与分析。使用SQL语句分析网站访问日志,对网站的访问异常进行快速排查和问题分析,并查看读写延时、运营商分布等信息。

    例如,您可以使用语句查询网站的访问日志。

    __topic__: DDoS_access_log排查网站访问异常
  • 追踪CC攻击者来源
    访问日志中记录了CC攻击者的分布及来源,通过对DDoS高防访问日志进行实时查询与分析,您可以追踪CC攻击者的来源、溯源攻击事件,为您的应对策略提供参考。示例:
    • 您可以使用以下语句分析DDoS访问日志中记录的CC攻击者国家分布。
      __topic__: DDoS_access_log and cc_blocks > 0| SELECT ip_to_country(if(real_client_ip='-', remote_addr, real_client_ip)) as country, count(1) as "攻击次数" group by country追踪CC攻击者来源
    • 您可以使用以下语句查询访问PV。
      __topic__: DDoS_access_log | select count(1) as PV查看访问PV
  • 网站运营分析

    网站访问日志中实时记录网站访问数据,您可以对采集到的访问日志数据进行SQL查询分析,得到实时的访问情况,例如判断网站热门程度、访问来源及渠道、客户端分布等,并以此辅助网站运营分析。

    例如,您可以使用以下语句查询来自各个网络服务提供商的访问者流量分布。

    __topic__: DDoS_access_log | select ip_to_provider(if(real_client_ip='-', remote_addr, real_client_ip)) as provider, round(sum(request_length)/1024.0/1024.0, 3) as mb_in group by provider having ip_to_provider(if(real_client_ip='-', remote_addr, real_client_ip)) <> '' order by mb_in desc limit 10网站运营分析

常用查询语句示例

  • 拦截类型查询
    * | 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"