七层访问日志
以下是七层访问日志(站点加速日志、速率限制和 CC 攻击防护日志、自定义规则日志、Bot 管理日志、托管规则日志)的详细字段说明。
说明
实时日志-站点加速日志记录全量 L7 请求日志、包含 L7 防护拦截日志的功能在内测中,如有需求请 联系我们。
速率限制和 CC 攻击防护日志、自定义规则日志、Bot 管理日志预计将于2024年7月31日下线,建议您使用站点加速日志来获取全量 L7 防护日志。
字段说明
通用字段
字段名称 | 数据类型 | 说明 | 离线日志是否支持该字段 | 实时日志是否支持该字段 |
ContentID | String | ✓ | ✓ | |
EdgeEndTime | Timestamp ISO8601 | 完成响应客户端请求的时间。示例值:2024-10-14T05:13:43Z,表示 2024年10月14日 UTC+0 时区时间 05:13:43,等同于 2024年10月14日 UTC+8 时区(北京时间)13:13:43。 | ✕ | ✓ |
EdgeFunctionSubrequest | Integer | 标识此条日志是否属于边缘函数发起的子请求,取值有: 1:边缘函数发起的子请求。 0:非边缘函数发起的子请求。 | ✓ | ✓ |
LogTime | Timestamp ISO8601 | 日志生成的时间。示例值:2024-10-14T05:13:43Z。 | ✕ | ✓ |
ParentRequestID | String | 当该请求是使用边缘函数发起时,记录父请求的 RequestID ;否则记录为“-”。 | ✓ | ✓ |
RequestID | String | 客户端请求的唯一标识 ID。 | ✓ | ✓ |
客户端信息
字段名称 | 数据类型 | 说明 | 离线日志是否支持该字段 | 实时日志是否支持该字段 |
ClientConnectionID | String | 客户端与边缘节点之间连接的唯一标识。示例值:"5692760165714882237"。 | ✕ | ✓ |
ClientDeviceType | String | 客户端请求设备类型,取值有: TV:电视 Tablet:平板电脑 Mobile:手机 Desktop:电脑 Other:其他 | ✕ | ✓ |
ClientIP | String | 与 EdgeOne 节点建连的客户端 IP。 | ✓ | ✓ |
ClientISP | String | 客户端 IP 解析出的运营商信息。 中国大陆境内数据,记录为 ISP 中文名称; 全球可用区(不含中国大陆)数据,记录为 自治系统编号(ASN)。 | ✓ | ✓ |
ClientPort | Integer | 与 EdgeOne 节点建连的客户端端口。 | ✕ | ✓ |
ClientRegion | String | ✓ | ✓ | |
ClientState | String | ✓ | ✓ |
请求信息
字段名称 | 数据类型 | 说明 | 离线日志是否支持该字段 | 实时日志是否支持该字段 |
RemotePort | Integer | TCP 协议下与客户端建立连接的 EdgeOne 节点端口。 | ✓ | ✓ |
RequestBodyBytes | Integer | 客户端请求发送给 EdgeOne 节点的请求体大小,单位:Byte。 | ✕ | ✓ |
RequestBytes | Integer | 客户端请求过程中向 EdgeOne 节点发送的总流量,根据请求头大小、请求体大小、SSL 握手中客户端向 EdgeOne 节点发送的数据统计而来。单位:Byte。 | ✓ | ✓ |
RequestHost | String | 客户端请求的 Host。 | ✓ | ✓ |
RequestMethod | String | 客户端请求的 HTTP Method,取值有: GET POST HEAD PUT DELETE CONNECT OPTIONS TRACE PATCH | ✓ | ✓ |
RequestProtocol | String | 客户端请求的应用层协议,取值有: HTTP/1.0 HTTP/1.1 HTTP/2.0 HTTP/3 WebSocket | ✓ | ✓ |
RequestRange | String | 客户端请求的 Range 参数信息。 | ✓ | ✓ |
RequestReferer | String | 客户端请求的 Referer 信息。 | ✓ | ✓ |
RequestScheme | String | 客户端请求的 HTTP 协议。取值有:HTTP、HTTPS。 | ✕ | ✓ |
RequestSSLProtocol | String | 客户端的使用的 SSL(TLS)协议,若取值为“-”,则表示请求没有 SSL 握手;取值有: TLS1.0 TLS1.1 TLS1.2 TLS1.3 | ✕ | ✓ |
RequestStatus | String | 客户端请求的状态,若使用 WebSocket 协议的请求,EdgeOne 会周期打印日志,可以使用此字段确定连接状态,取值有: 0:未结束 1:请求正常结束 2:WebSocket 协议下,表示同连接的首条日志 3:WebSocket 协议下,表示同连接的非首条、非末条日志 | ✓ | ✓ |
RequestTime | Timestamp ISO8601 | EdgeOne 节点收到客户端请求的时间,时区:UTC +00:00。示例值:2024-10-14T05:13:43Z。 | ✓ | ✓ |
RequestUA | String | 客户端请求的 User-Agent 信息。 | ✓ | ✓ |
RequestUrl | String | 客户端请求的 URL Path ,不包含查询参数。 | ✓ | ✓ |
RequestUrlQueryString | String | 客户端请求的 URL 携带的查询参数。 | ✓ | ✓ |
响应信息
字段名称 | 数据类型 | 说明 | 离线日志是否支持该字段 | 实时日志是否支持该字段 |
EdgeCacheStatus | String | 客户端请求是否命中节点缓存,取值有: hit:资源由节点缓存提供 miss:资源可缓存,但由源站提供 dynamic:资源不可缓存 other:无法被识别的缓存状态 | ✓ | ✓ |
EdgeInternalTime | Integer | 从 EdgeOne 接收到客户端发起的请求开始,到响应给客户端的第一个字节,整个过程的耗时;单位:ms。 | ✓ | ✓ |
EdgeResponseBodyBytes | Integer | 节点返回给客户端的响应体大小,单位:Byte。 | ✓ | ✓ |
EdgeResponseBytes | Integer | 节点返回给客户端的总流量,根据响应头大小、响应体大小、SSL 握手中 EdgeOne 节点向客户端发送的数据统计而来。单位:Byte。 | ✓ | ✓ |
EdgeResponseStatusCode | Integer | 节点响应返回给客户端的状态码。 | ✓ | ✓ |
EdgeResponseTime | Integer | 从 EdgeOne 接收到客户端发起的请求开始,到客户端接收到服务器端的响应结束,这个过程所耗费的时间;单位:ms。 | ✓ | ✓ |
边缘服务端信息
字段名称 | 数据类型 | 说明 | 离线日志是否支持该字段 | 实时日志是否支持该字段 |
EdgeException | String | ✕ | ✓ | |
EdgeServerID | String | 客户端访问到的 EdgeOne 服务器唯一标识。示例值:"28a1672eeaa86c145501d3950bff06cc-501d3fb0abce346ac9a5598b665bfcfe"。 | ✓ | ✓ |
EdgeServerIP | String | DNS 解析 Host 得到的 EdgeOne 服务器 IP 地址。 | ✓ | ✓ |
EdgeServerRegionTopDivision | String | ✕ | ✓ | |
EdgeSeverRegion | String | ✕ | ✓ |
源站信息
字段名称 | 数据类型 | 说明 | 离线日志是否支持该字段 | 实时日志是否支持该字段 |
OriginDNSResponseDuration | Float | 接收到源站 DNS 解析响应的耗时,若没有回源,记录为 -1 ,单位:ms。 | ✕ | ✓ |
OriginIP | String | 回源访问的源站 IP,若没有回源,记录为“-”。 | ✕ | ✓ |
OriginRequestHeaderSendDuration | Float | 向源站发送请求头的耗时,一般是 0,若没有回源,记录为 -1 ,单位:ms。 | ✕ | ✓ |
OriginResponseHeaderDuration | Float | 向源站发送请求头到接受到源站响应头的耗时,若没有回源,记录为 -1 ,单位:ms。 | ✕ | ✓ |
OriginResponseStatusCode | Integer | 源站响应状态码,若没有回源,记录为 -1。 | ✕ | ✓ |
OriginSSLProtocol | String | 请求源站使用的 SSL 协议版本,若没有回源,记录为“-”;取值有: TLS1.0 TLS1.1 TLS1.2 TLS1.3 | ✕ | ✓ |
OriginTCPHandshakeDuration | Float | 请求源站时,完成 TCP 握手的耗时,若没有回源,记录为 -1 ,单位:ms;注意:当连接重复利用时为0。 | ✕ | ✓ |
OriginTLSHandshakeDuration | Float | 请求源站时,完成 TLS 握手的耗时,若没有回源或回源协议为 HTTP,记录为 -1 ,单位:ms;注意:当连接重复利用时为0。 | ✕ | ✓ |
安全防护相关字段
字段名称 | 数据类型 | 说明 | 离线日志是否支持该字段 | 实时日志是否支持该字段 |
BotCharacteristic | String | ✕ | ✓ | |
BotClassAccountTakeOver | String | 基于近期 IP 情报数据,请求客户端 IP 有恶意破解登录、发起账号接管攻击的风险等级,取值有: high:高风险 medium:中等风险 low:一般风险 -:无历史数据或域名没有开启客户端画像分析功能 | ✕ | ✓ |
BotClassAttacker | String | 基于近期 IP 情报数据,请求客户端 IP 有攻击(如 DDoS,高频恶意请求、站点攻击等)行为的风险等级,取值有: high:高风险 medium:中等风险 low:一般风险 -:无历史数据或域名没有开启客户端画像分析功能 | ✕ | ✓ |
BotClassMaliciousBot | String | 基于近期 IP 情报数据,请求客户端 IP 有恶意爬虫、刷量和暴力破解行为的风险等级,取值有: high:高风险 medium:中等风险 low:一般风险 -:无历史数据或域名没有开启客户端画像分析功能 | ✕ | ✓ |
BotClassProxy | String | 基于近期 IP 情报数据,请求客户端 IP 开放可疑代理端口、并且被用作网络代理(包括秒拨IP)的风险等级,取值有: high:高风险 medium:中等风险 low:一般风险 -:无历史数据或域名没有开启客户端画像分析功能 | ✕ | ✓ |
BotClassScanner | String | 基于近期 IP 情报数据,请求客户端 IP 有攻击已知漏洞的扫描器行为的风险等级,取值有: high:高风险 medium:中等风险 low:一般风险 -:无历史数据或域名没有开启客户端画像分析功能 | ✕ | ✓ |
BotTag | String | evil_bot:恶意 Bot 请求 suspect_bot:疑似 Bot 请求 good_bot:正常 Bot 请求 normal:正常请求 -:未分类 | ✕ | ✓ |
JA3Hash | String | ✕ | ✓ | |
SecurityAction | String | 请求命中安全规则后的最终处置动作,取值有: -:未知/未命中 Monitor:观察 JSChallenge:JavaScript 挑战 Deny:拦截 Allow:放行 BlockIP:IP 封禁 Redirect:重定向 ReturnCustomPage:返回自定义页面 ManagedChallenge:托管挑战 Silence:静默 LongDelay:长时间等待后响应 ShortDelay:短时间等待后响应 | ✕ | ✓ |
SecurityModule | String | 最终处置请求的安全模块名称,与 SecurityAction 对应,取值有:-:未知/未命中 CustomRule:Web防护 - 自定义规则 RateLimitingCustomRule:Web防护 - 速率限制规则 ManagedRule:Web防护 - 托管规则 L7DDoS:Web防护 - CC攻击防护 BotManagement:Bot管理 - Bot基础管理 BotClientReputation:Bot管理 - 客户端画像分析 BotBehaviorAnalysis:Bot管理 - Bot智能分析 BotCustomRule:Bot管理 - 自定义Bot规则 BotActiveDetection:Bot管理 - 主动特征识别 | ✕ | ✓ |
SecurityRuleID | String | 最终处置请求的安全规则 ID,与 SecurityAction 对应。 | ✕ | ✓ |
相关参考
日志示例
{"ClientState": "CN-LN","BotTag": "normal","EdgeSeverRegion": "US","RequestID": "13719873400522703510","EdgeException": "client_request_exception.upstream_failed","RequestMethod": "GET","RequestUrlQueryString": "-","LogTime": "2024-10-13T23:30:39Z","RequestUrl": "/app/","ClientPort": 62389,"RequestBodyBytes": 0,"SecurityRuleID": "-","ContentID": "zone-2mxigizoh600","OriginRequestHeaderSendDuration": 0.001,"EdgeResponseTime": 379,"ParentRequestID": "-","EdgeServerRegionTopDivision": "CN-LN","RequestSSLProtocol": "-","RequestScheme": "HTTPS","RequestTime": "2024-10-13T23:30:39Z","EdgeResponseStatusCode": 404,"ClientIP": "0.0.0.0","BotCharacteristic": "-","SecurityAction": "-","EdgeEndTime": "2024-10-13T23:30:39Z","RequestRange": "-","BotClassScanner": "-","BotClassProxy": "-","ClientDeviceType": "Desktop","RequestHost": "www.example.com","OriginSSLProtocol": "-","EdgeResponseBodyBytes": 548,"RequestProtocol": "HTTP/1.1","EdgeServerID": "b3da9837137ad37f8e430b1d6de51dc5-d41d8cd98f00b204e9800998ecf8427e","EdgeCacheStatus": "miss","EdgeFunctionSubrequest": 0,"EdgeResponseBytes": 825,"OriginTCPHandshakeDuration": 182.485,"SecurityModule": "-","ClientConnectionID": "5692760165714882237","EdgeInternalTime": 378,"RequestBytes": 769,"OriginIP": "0.0.0.0","JA3Hash": "-","OriginResponseHeaderDuration": 182.676,"OriginResponseStatusCode": 404,"ClientRegion": "US","RemotePort": 80,"ClientISP": "AS396982","BotClassMaliciousBot": "-","BotClassAccountTakeOver": "-","OriginDNSResponseDuration": 0.0,"RequestReferer": "-","BotClassAttacker": "-","RequestUA": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","EdgeServerIP": "0.0.0.0","OriginTLSHandshakeDuration": -1,"RequestStatus": "1"}
EdgeException 字段说明
字段格式:
[请求阶段].[异常描述]
若无异常,则字段值为
no_exception
请求阶段
请求阶段取值 | 含义 |
client_request_exception | 客户端向 EdgeOne 边缘节点发起请求过程中发生异常。 |
edge_response_exception | EdgeOne 边缘节点向客户端响应请求过程中发生异常。 |
异常描述
说明:
以下仅列出常见异常情况,后续 EdgeOne 有可能追加新的异常情况描述。
异常描述取值 | 含义 |
timeout | 超时 |
peer_close | 对端关闭(对端关闭以是否收到 FIN 包为准);对于 EdgeOne 边缘服务端来说,对端指的是客户端。 |
closed | 本端主动关闭 |
read_buffer_full | 读 buffer 满 |
package_write_failed | 写失败(仅针对 UDP) |
peer_error | 读写数据出现异常(RST 等) |
peers_is_empty | 回源 peers 为空 |
module_load_failed | HTTP 模块加载失败 |
header_too_large | HTTP 头部过大 |
parse_header_failed | HTTP 解析头部失败 |
read_offset_out_of_upstream_range | 读取回源数据的偏移超出了回源响应的 range |
no_cache | 不使用缓存 |
partial_compress_cache | 仅包含部分压缩缓存 |
upstream_no_mtime | 回源响应无 mtime |
cache_no_mtime | 本地缓存无 mtime |
upstream_mtime_change | 回源 mtime 变化 |
upstream_no_etag | 回源响应无 etag |
cache_no_etag | 本地缓存无 etag |
upstream_etag_change | 回源 etag 变化 |
upstream_length_change | 回源长度变化 |
upstream_status_change | 回源状态码变化 |
upstream_data_not_set | 回源模块数据未初始化 |
upstream_respond_extra_data | 源站响应多余数据 |
domain_resolve_failed | 回源域名解析失败 |
domain_resolve_none | 回源域名解析结果为空 |
upstream_server_is_empty | 源站列表为空 |
upstream_failed | 回源失败 |
upstream_content_range_with_content_encoding | 源站响应同时包含 Content-Range 和 Content-Encoding |
upstream_unknown_transfer_encoding | 源站响应未知 Transfer-Encoding |
upstream_transfer_encoding_with_content_length | 源站响应同时包含 Transfer-Encoding 和 Content-Length |
upstream_keepalive_without_length | 源站响应未知长度文件并要求 keep-alive |
chunked_error | chunked 解析失败 |
read_file_info_failed | 缓存文件信息读取失败 |
set_cache_data_failed | 尝试设置缓存数据失败 |
unknown_compress_method | 未知压缩算法 |
compress_size_too_large | 压缩文件过大 |
compress_error | 压缩异常 |
upstream_verify_failed | UUID 防劫持校验失败 |
scheme_error | 未知 schema |
empty_domain | 域名为空 |
reset_client | 需 RST 客户端 |
blacklist_fatal_error | 封禁名单异常 |
range_index_error | 多 Range 下标异常 |
upstream_respond_206_without_content_range | 源站响应 206 未携带 Range |
upstream_respond_content_range_without_size | 源站响应 Content-Range 未携带文件总大小 |
upstream_respond_error_content_range | 源站响应 Range 异常 |
BotCharacteristic 字段说明
说明:
字段取值 | 对应规则名称 | 详细描述 | 映射 Bot 标签( BotTag ) | 可能命中攻击或业务场景 |
Client Inconsistency | 客户端不一致 | 请求头部和特征不一致,或四层操作系统指纹与 User-Agent 不匹配 | 恶意 Bot | 伪造 UA,例如 Linux 服务器请求却声明为 Windows UA; 某些用户使用代理、办公网/校园网等出口时,四层指纹来自代理机器,与用户 UA 不匹配。 |
Irregular TLS Fingerprint | TLS 指纹异常 | 工具的 TLS 指纹异常 | 恶意 Bot,疑似 Bot | 脚本工具发起的请求; 某些客户端用工具/组件调用 API、静态资源。 |
High Frequency | 高频请求 | 同一或几个 IP/User-Agent 发送大量请求 | 恶意 Bot,疑似 Bot | / |
Irregular Path Access | 非常规路径访问 | 请求路径出现随机或集中在特定接口,可能是扫描或数据抓取 | 恶意 Bot,疑似 Bot | 某些站点资源少或做活动时,用户请求在短时间内高频集中访问某特定路径。 |
Real-time Proxy Detection | 实时代理检测 | 基于实时流量模式,判断请求是否可能经由代理转发 | 恶意 Bot,疑似 Bot | 黑产用秒拨代理换 IP 绕风控策略; 用户用代理 VPN、办公网/校园网出口 IP; 网络波动较大。 |
TLS Fingerprint Inconsistency | TLS 指纹不一致 | TLS 指纹与 User-Agent 不匹配 | 恶意 Bot,疑似 Bot | 某些小众客户端(非常见 UA); 脚本工具请求; 篡改 UA 请求; 办公网/校园网出口。 |
UA with Bot Identifier | UA 含 Bot 标识 | User-Agent 中包含常见的 bot 工具标识 | 恶意 Bot | 用户 UA 含常见脚本工具标识字符串。 |
Python-Requests | Python-requests 请求 | 使用 python-requests 工具发送请求 | 恶意 Bot | 用户 UA 含 python-requests 字符串。 |
Python-Urllib | Python-urllib 请求 | 使用 python-urllib 工具发送请求 | 恶意 Bot | 用户 UA 含 python-urllib 字符串。 |
Curl | cURL 请求 | 使用 curl 工具发送请求 | 恶意 Bot | 用户 UA 含 curl 字符串。 |
Go HTTP Client | Go HTTP 客户端请求 | 使用 go-http-client 工具发送请求 | 恶意 Bot | 用户 UA 含 go-http-client 字符串。 |
Phpcrawl | phpcrawl 请求 | 使用 phpcrawl 工具发送请求 | 恶意 Bot | 用户 UA 含 phpcrawl 字符串。 |
Libcurl | libcurl 请求 | 使用 libcurl 工具发送请求 | 恶意 Bot | 用户 UA 含 libcurl 字符串。 |
WinHTTP Client | WinHTTP 请求 | 使用 WinHttpClient 工具发送请求 | 恶意 Bot | 用户 UA 含 WinHttpClient 字符串。 |
Headless Browser | 无头浏览器 | 使用无头浏览器(如 Puppeteer,Selenium 等)发送请求 | 恶意 Bot | 用户 UA 含 headless 字符串。 |
Triggered by Known Tool#{Num} | 特定工具特征#{Num} | 恶意 Bot,疑似 Bot | / |