阿里云DCDN按小时颗粒度记录了域名全网访问日志和WAF拦截日志,您可根据需求下载30天内指定域名某一天的日志至本地路径保存,进行分析。
注意事项
通过DCDN控制台(或者OpenAPI)的监控查询、用量查询(实际计费流量)功能查到的加速域名使用的流量数据与通过日志统计的流量数据有差异。通常来说,通过监控查询、用量查询功能查到的加速域名使用的流量数据是通过日志统计的流量数据的1.1倍,详细请参见为什么监控查询流量、用量查询流量与日志统计流量有差异。
业务监控以客户端IP地址所在地区或者运营商归属来统计数据,计量计费以统计各个计费大区的全站加速节点上产生的流量、带宽数据和请求数来统计数据。由于统计方式不同,两者结果会有一定的差异。资源监控的曲线图主要用于带宽趋势的展示,如果您需要查询计费账单对应的计量数据,可通过查询用量详情查看。
少数ISP在特定区域可能会分配私有IP地址给用户端,导致DCDN节点接收到的是用户的私有IP地址。
说明私有IP地址范围有以下三个:
A类私有IP地址:10.0.0.0~10.255.255.255,子网掩码:10.0.0.0/8
B类私有IP地址:172.16.0.0~172.31.255.255,子网掩码:172.16.0.0/12
C类私有IP地址:192.168.0.0~192.168.255.255,子网掩码:192.168.0.0/16
日志下载使用说明
日志文件延迟时间:通常情况下延迟在24小时之内,也有可能超过24小时。
日志命名规则:加速域名_年_月_日_开始时间_结束时间[扩展字段].gz,扩展字段以下划线(_)开头。例如
aliyundoc.com_2018_10_30_000000_010000_xx.gz
。说明扩展字段可能不存在,例如
aliyundoc.com_2018_10_30_000000_010000.gz
。
用户访问日志的字段格式说明
日志示例
[9/Jun/2015:01:58:09 +0800] 10.10.10.10 - 1542 "-" "GET http://www.aliyun.com/index.html" 200 191 2830 MISS "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://example.com/robot/)" "text/html" 1.1.1.1
字段含义
字段
描述
[9/Jun/2015:01:58:09 +0800]
用户访问请求的结束时间。
10.10.10.10
从用户请求携带的请求头X-Forwarded-For中提取左边第一个IP地址(即client_ip,客户端IP,如果客户端与DCDN节点之间没有经过代理的话,等同于客户端与DCDN节点建联使用的IP)。
说明请求头 X-Forwarded-For 的格式为
X-Forwarded-For: <client_ip>, <proxy_ip>
。在客户端与DCDN节点之间没有经过代理的场景下(即x-forwarded-for里面只有<client_ip>),可能会出现日志中<client_ip>的值为私网IP地址的情况,其原因通常为客户端所在的运营商为其分配了私网IP地址(目的是减少公网IP地址的使用,以降低成本)。
在客户端与DCDN节点之间有经过代理的场景下(即x-forwarded-for里面既有<client_ip>,也有<proxy_ip>),也可能会出现日志中<client_ip>的值为私网IP地址的情况,其原因通常为运营商为客户端分配的公网IP地址被配置到了代理上面,而此时客户端上配置的是私网IP地址。
由于X-Forwarded-For可能被伪造,因此当您需要分析日志并配置WAF规则拦截指定恶意IP时,请您使用实时日志采集字段说明 的remote_ip分析,remote_ip是客户端和DCDN的真实建连IP。
-
从用户请求携带的请求头X-Forwarded-For中提取左边第二个IP地址(即proxy_ip,代理IP,如果客户端与CDN节点之间没有经过代理的话,提取到的空值用
-
表示)。1542
请求响应时间,单位为毫秒。
"-"
HTTP请求头中的Referer。
GET
请求方法。
http://www.aliyun.com/index.html
用户请求的URL链接。
200
HTTP状态码。
191
请求大小,单位为字节。
2830
请求返回大小,单位为字节。
MISS
命中信息。
HIT:用户请求命中了DCDN边缘节点上的资源(不需要回源)。
MISS:用户请求的内容没有在DCDN边缘节点上缓存,需要向上游获取资源(上游可能是DCDN L2节点,也可能是源站)。
阿里云DCDN目前仅提供了DCDN边缘节点的日志信息,不包含DCDN L2节点的回源相关信息,因此当该字段为MISS时,无法获取回源信息,因此无法直观地从日志里面看到用户请求是否回源。
Mozilla/5.0(compatible; AhrefsBot/5.0; +http://example.com/robot/)
User-Agent请求头信息。
text/html
文件类型。
1.1.1.1
建连IP地址。
说明其他字段含义:
DYNAMIC:动态请求。
CHARGE:该请求要计费。
NOTLAST:保留字段,无实际含义。
WAF日志的字段格式说明
日志示例
[16/May/2023:10:36:09 +0800] HEAD "http" api.aliyun.com "/block" "_dyc=89e7639543f17ddbe77361c56b9952b9" "-" api.aliyun.com 3d30530216842045692847280e 403 "-" "curl/7.29.0" "-" 1.XX.XX.1 1.XX.XX.1 false "-" deny "custom_acl" 20000014
字段含义
字段名称
示例值
描述
unixtime
[16/May/2023:10:36:09 +0800]
请求时间。
method
HEAD
请求方法。
scheme
http
请求协议。
domain
api.aliyun.com
请求的域名。
uri
/block
请求资源。
uri_param
_dyc=89e7639543f17ddbe77361c56b9952b9
请求参数。
content_type
-
被请求的内容类型。
matched_host
api.aliyun.com
客户端请求匹配到的已接入进行服务的域名。
request_id
3d30530216842045692847280e
请求唯一标识。
return_code
403
请求响应码。
referer
-
HTTP referer字段。
user_agent
curl/7.29.0
用户代理信息。
x_forwarded_for
-
访问请求头部中带有的XFF头信息,用于识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址。
client_ip
1.XX.XX.1
用户真实IP。
remote_addr
1.XX.XX.1
请求IP。
final_test
FALSE
最终匹配的不是观察模式。
cookie
-
访问请求头部中带有的访问来源客户端Cookie信息。
final_action
deny
最终执行的防护动作。
block:表示Web基础防护模块拦截。
deny:表示除Web基础防护模块外其他模块拦截。
captcha表示普通滑块验证。
js:表示JS验证。
空字符串:表示未拦截。即未命中任何防护规则,或者命中了白名单规则、观察类规则,或者客户端完成滑块或JS验证后触发放行的情况。
说明如果一个请求同时触发了多个防护模块,则仅记录最终执行的防护动作。防护动作的优先级由高到低依次为:拦截(block) > 普通滑块验证(captcha) > 动态令牌验证(sigchl)>JS验证(js)。
final_plugin
custom_acl
最终匹配的防护模块信息。
若final_action有值,则该字段为对客户端请求最终执行的防护动作(final_action)对应的防护模块,即此时final_plugin有且仅有一个模块信息。
若final_action为空,则该字段为客户端请求匹配到的所有防护规则所属的防护模块信息(其中匹配的模块不是Web基础防护模块或者白名单模块的话,如果模块名后含有"-T"后缀则表明请求匹配到了该模块下的观察类规则)。
匹配的防护模块可能有多个值,多个值之间用半角逗号(,)分隔。对应防护模块信息:
whitelist:表示命中白名单模块规则。
waf:表示命中Web基础防护模块规则。
custom_acl:表示命中自定义规则模块规则。
ip_blacklist:表示命中IP黑名单模块规则。
region_block:表示命中区域封禁模块规则。
bot:表示命中Bot管理模块规则。
anti_scan:表示命中扫描防护模块规则。
final_rule_id
20000014
最终匹配的防护规则信息。
若final_action有值,则该字段为对客户端请求最终应用的防护规则的ID,即final_action对应的防护规则的ID(只有防护规则ID数字信息,不含模块信息)。
若final_action为空,则该字段为对客户端请求匹配到的所有防护规则ID相关信息,防护规则ID相关信息按如下规则输出:"模块名-防护规则ID(-T)"组成(其中白名单模块及Web基础防护模块对应防护规则信息不含-T标识,其余模块若还有-T标识表明对应防护规则ID为观察类规则)。
匹配的防护规则ID可能有多个值,多个值之间用半角逗号(,)分隔。
操作步骤
登录DCDN控制台。
在左侧导航栏,选择 。
在离线日志下载页签下,选择域名和查询时间,单击查询。
根据查询结果,单击操作列下的下载,即可下载日志。
相关API
获取加速域名的日志信息:查询域名的离线日志下载地址。