How to use Log Analysis filter condition
日志分析筛选条件用于对实时日志数据进行精准过滤,支持通过控制台可视化界面或检索表达式进行配置。
筛选条件类型
日志分析支持的筛选条件分为三种类型:
1. 日志源(必选):查看所选日志类型(七层访问日志或托管规则日志)和数据可用区的日志数据。
2. 时间筛选条件(必选):查看所选的时间范围内的数据,详情请参见 如何修改日志分析查询时间范围。
3. 其他筛选条件:根据支持的筛选项,自定义筛选需要的日志数据。不同日志类型支持的筛选项不同,下文分别说明。
多个筛选条件之间的关系
多个筛选条件之间的关系为“且”关系,同一个筛选条件内的多个取值之间的关系为“或”关系。
例如:同时添加筛选条件
国家/地区=新加坡;泰国和状态码=404,意味着查询满足来自新加坡或泰国客户端的访问且边缘响应状态码为 404 的数据。检索表达式语法
表达式结构
日志分析检索表达式由三个基本组成部分构成:筛选项、运算符和值,其基本格式如下图所示:

筛选项:为 ${…} 形式的内置日志字段,例如
${RequestID}、${RequestHost} 等,用于提取请求中的特定信息。使用大驼峰格式。运算符:例如 in、> 等,用于判断目标字段与值之间的关系。
值:可以是字符串、数字、列表或其他变量,需根据运算符使用方括号
[ ]包裹,例如 ['POST'] 或 [100, 200]。运算符
匹配运算符
名称 | 运算符 | 示例 |
等于 | in | ${RequestHost} in ['example.com', 'demo.com'] |
大于 | > | ${EdgeResponseTime} > 500 |
逻辑运算符
支持筛选项
七层访问日志
通用字段
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
日志时间 | LogTime | 等于 | |
请求 ID | RequestID | String | 等于,不等于 |
内容标识符 | ContentID | String | 等于,不等于 |
请求完成时间 | EdgeEndTime | 等于,大于 | |
边缘函数子请求 | EdgeFunctionSubrequest | Integer | 等于,不等于 |
边缘函数父请求 ID | ParentRequestID | String | 等于,不等于 |
请求信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
请求域名 | RequestHost | String | 等于 |
请求方式 | RequestMethod | String | 等于,不等于 |
请求时间 | RequestTime | 等于 | |
请求 URL | RequestUrl | String | 等于,不等于 |
请求 URL 参数 | RequestUrlQueryString | String | 等于,不等于 |
Referer | RequestReferer | String | 等于,不等于 |
User-Agent | RequestUA | String | 等于,不等于 |
HTTP 协议 | RequestProtocol | String | 等于,不等于 |
HTTP/HTTPS | RequestScheme | String | 等于,不等于 |
TLS 版本 | RequestSSLProtocol | String | 等于,不等于 |
请求状态 | RequestStatus | String | 等于,不等于 |
请求范围 | RequestRange | String | 等于 |
请求长度(字节) | RequestBytes | Integer | 等于,大于 |
请求正文长度(字节) | RequestBodyBytes | Integer | 等于,大于 |
边缘节点端口 | RemotePort | Integer | 等于,不等于 |
客户端信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
客户端 IP | ClientIP | String | 等于,不等于 |
客户端国家/地区 | ClientRegion | String | 等于,不等于 |
客户端行政区(中国大陆) | ClientState | String | 等于,不等于 |
客户端运营商 | ClientISP | String | 等于,不等于 |
设备类型 | ClientDeviceType | String | 等于,不等于 |
客户端端口 | ClientPort | Integer | 等于,不等于 |
客户端连接 ID | ClientConnectionID | String | 等于,不等于 |
响应信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
缓存状态 | EdgeCacheStatus | String | 等于,不等于 |
响应状态码 | EdgeResponseStatusCode | Integer | 等于,不等于 |
响应总长度(字节) | EdgeResponseBytes | Integer | 等于,大于 |
响应正文长度(字节) | EdgeResponseBodyBytes | Integer | 等于,大于 |
内部处理耗时(毫秒) | EdgeInternalTime | Integer | 等于,大于 |
响应整体耗时(毫秒) | EdgeResponseTime | Integer | 等于,大于 |
边缘服务端信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
边缘服务器 ID | EdgeServerID | String | 等于,不等于 |
边缘服务器 IP | EdgeServerIP | String | 等于,不等于 |
边缘节点国家/地区 | EdgeServerRegion | String | 等于,不等于 |
边缘节点行政区(中国大陆) | EdgeServerRegionTopDivision | String | 等于,不等于 |
边缘异常信息 | EdgeException | String | 等于,不等于 |
源站信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
回源解析耗时(毫秒) | OriginDNSResponseDuration | Double | 等于,大于 |
源站 IP | OriginIP | String | 等于,不等于 |
回源请求头耗时(毫秒) | OriginRequestHeaderSendDuration | Double | 等于,大于 |
回源响应头等待耗时(毫秒) | OriginResponseHeaderDuration | Double | 等于,大于 |
源站响应状态码 | OriginResponseStatusCode | Integer | 等于,不等于 |
回源 TLS 版本 | OriginSSLProtocol | String | 等于,不等于 |
回源 TCP 握手耗时(毫秒) | OriginTCPHandshakeDuration | Double | 等于,大于 |
回源 TLS 握手耗时(毫秒) | OriginTLSHandshakeDuration | Double | 等于,大于 |
安全防护信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
处置方式 | SecurityAction | String | 等于,不等于 |
规则 ID | SecurityRuleID | String | 等于,不等于 |
规则类别 | SecurityModule | String | 等于,不等于 |
Bot 智能分析特征 | BotCharacteristic | String | 等于,不等于 |
网络攻击风险等级 | BotClassAttacker | String | 等于,不等于 |
恶意 Bot 风险等级 | BotClassMaliciousBot | String | 等于,不等于 |
网络代理风险等级 | BotClassProxy | String | 等于,不等于 |
扫描器风险等级 | BotClassScanner | String | 等于,不等于 |
账号接管攻击风险等级 | BotClassAccountTakeOver | String | 等于,不等于 |
Bot 标签 | BotTag | String | 等于,不等于 |
请求 JA3 指纹 | JA3Hash | String | 等于,不等于 |
托管规则日志
请求信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
站点 | RequestHost | String | 等于,不等于 |
请求 ID | RequestID | String | 等于,不等于 |
请求时间 | RequestTime | Integer | 等于 |
请求方式 | RequestMethod | String | 等于,不等于 |
User-Agent | RequestUA | String | 等于,不等于 |
请求 URI | RequestURI | String | 等于,不等于 |
请求正文(前 10 KB) | RequestBody | String | 等于,不等于 |
客户端信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
客户端 IP | ClientIP | String | 等于,不等于 |
客户端国家/地区 | ClientCountry | String | 等于,不等于 |
安全防护信息
筛选项名称 | 日志字段名称 | 数据类型 | 运算符 |
规则 ID | SecurityRuleID | String | 等于,不等于 |
规则类别 | SecurityModule | String | 等于,不等于 |
处置方式 | SecurityAction | String | 等于,不等于 |
匹配字段 | SecurityMatchingField | String | 等于,不等于 |
匹配位置 | SecurityMatchingPosition | String | 等于,不等于 |
检索表达式示例
单条件查询
1. 筛选指定域名的请求:
${RequestHost} in ['example.com']
2. 筛选 404 状态码的请求:
${EdgeResponseStatusCode} in ['404']
3. 筛选响应耗时大于 500ms 的请求:
${EdgeResponseTime} > 500
多条件组合
1. 筛选指定域名下状态码为 404 或 500 的请求:
${RequestHost} in ['example.com'] and ${EdgeResponseStatusCode} in ['404', '500']
2. 筛选非 GET 请求且响应耗时大于 1000ms:
not ${RequestMethod} in ['GET'] and ${EdgeResponseTime} > 1000
3. 筛选来自中国大陆的 POST 请求:
${ClientRegion} in ['CN'] and ${RequestMethod} in ['POST']
使用括号改变优先级
1. 筛选来自中国或美国的非 GET 请求:
(${ClientRegion} in ['CN'] or ${ClientRegion} in ['US']) and ${RequestMethod} not in ['GET']
2. 筛选指定域名下状态码为 5xx 或响应耗时大于 2000ms 的请求:
${RequestHost} in ['example.com'] and (${EdgeResponseStatusCode} in ['500', '502', '503', '504'] or ${EdgeResponseTime} > 2000)
安全防护场景
1. 在七层访问日志中筛选触发指定规则且处置方式为拦截或观察的请求:
${SecurityRuleID} in ['2123456789'] and ${SecurityAction} in ['Deny', 'Monitor']
2. 在七层访问日志中筛选触发速率限制模块的请求:
${SecurityModule} in ['RateLimitingCustomRule', 'L7DDoS', 'BandwidthAbuseProtection']
3. 在七层访问日志中筛选客户端画像中任一维度为高风险的请求:
${BotClassAttacker} in ['high'] or ${BotClassMaliciousBot} in ['high'] or ${BotClassProxy} in ['high'] or ${BotClassScanner} in ['high'] or ${BotClassAccountTakeOver} in ['high']
4. 在托管规则日志中筛选请求路径命中托管规则且最终被拦截的请求:
${SecurityMatchingPosition} in ['Full request path'] and ${SecurityAction} in ['drop']