WAF3.0 API
POST 查询日志(新)
POST /prod-api/waf/wafv3/log/V2/describeLogV2
分页查询 WAF 访问/防护日志。同一接口通过 action[].metricName 区分两种能力:
metricName |
用途 |
logs |
日志列表(分页明细) |
logTread |
日志趋势图(按时间统计日志条数,拼写固定为 logTread,非 logTrend) |
控制台通常 分两次请求:先 logTread 画趋势图,再 logs 拉列表;也可写在同一 action 数组中一次返回。
Body 请求参数
查询日志趋势图(logTread):
{
"action": [
{
"metricName": "logTread"
}
],
"otherFilter": [],
"params": {
"beginTime": "2026-05-21 00:00:00",
"endTime": "2026-05-21 23:59:59"
}
}
logTread 不需要传 pageNo、pageSize;筛选条件与列表查询相同(otherFilter、searchHeader、params)。
查询日志列表(logs):
{
"action": [
{
"metricName": "logs",
"pageNo": 1,
"pageSize": 15
}
],
"otherFilter": [],
"params": {
"beginTime": "2026-05-21 00:00:00",
"endTime": "2026-05-21 23:59:59"
}
}
一次请求同时返回趋势 + 列表(可选):
{
"action": [
{ "metricName": "logTread" },
{
"metricName": "logs",
"pageNo": 1,
"pageSize": 15
}
],
"otherFilter": [],
"params": {
"beginTime": "2026-05-21 00:00:00",
"endTime": "2026-05-21 23:59:59"
}
}
限定套餐 + 筛选示例:
{
"action": [
{ "metricName": "logs", "pageNo": 1, "pageSize": 15 }
],
"otherFilter": [
{
"oneVal": "oid",
"twoVal": "eq",
"threeVal": ["20240412279097884616"]
},
{
"oneVal": "client_ip",
"twoVal": "eq",
"threeVal": ["203.0.113.10"]
}
],
"params": {
"beginTime": "2026-05-21 00:00:00",
"endTime": "2026-05-21 23:59:59"
}
}
Body 字段说明
| 字段 |
类型 |
必选 |
说明 |
action |
array |
是 |
查询项,见下表 |
params |
object |
是 |
beginTime、endTime(yyyy-MM-dd HH:mm:ss) |
otherFilter |
array |
否 |
高级筛选条件,见下表 |
action[] 单项
| 字段 |
类型 |
必选 |
说明 |
metricName |
string |
是 |
logs:分页日志列表;logTread:日志趋势图数据 |
pageNo |
integer |
条件 |
仅 logs 必填,从 1 开始;logTread 不传 |
pageSize |
integer |
条件 |
仅 logs 必填,如 15;logTread 不传 |
logTread(日志趋势图)
- 返回
objectArrayList:[[时间戳毫秒, 该时段日志条数], ...],用于折线图/柱状图。
- 返回
count:所选时间范围内日志 总条数(与图上各点之和一致)。
otherFilter[] 单项
| 字段 |
类型 |
说明 |
oneVal |
string |
日志字段,与统计接口一致(如 request_Id、domain、client_ip、server_port、status、client_country_name、URL 。) |
twoVal |
string |
eq、ne、contain(模糊) |
threeVal |
string[] |
比较值 |
请求参数
| 名称 |
位置 |
类型 |
必选 |
中文名 |
说明 |
| Authorization |
header |
string |
是 |
鉴权 |
Bearer Token |
| body |
body |
object |
是 |
请求体 |
见上文 |
返回示例
200 Response
logs 有数据(结构示例,单条完整 + 列表多条):
{
"msg": "成功",
"code": 200,
"data": [
{
"metricName": "logs",
"list": [
{
"oid": "202501032327876983",
"requestId": "e8e2ebbcbc31f910d2fb08b71474fd24",
"wafId": "148",
"clientIp": "5.175.189.32",
"hostPort": 443,
"timeStamp": "2026-05-21T01:18:25.000Z",
"severityLevel": "高风险",
"ua": null,
"response": { "httpCode": 417 },
"geoip": {
"country": "United States",
"regionName": "Illinois",
"latitude": 41.8483,
"longitude": -87.6517,
"countryCode": "US"
},
"request": {
"method": "GET",
"uri": "/wp-config.php.bak",
"headers": {
"Host": "wap.ca168.com",
"accept": "*/*",
"user-agent": "Mozilla/5.0 ..."
}
},
"rules": [
{
"match": "Matched \"Operator `Within' with parameter ...",
"ruleId": "920440",
"maturity": "0",
"accuracy": "0",
"severity": "2",
"severityLevel": "高风险",
"ruleMessage": "URL文件扩展名受策略限制",
"group": "基础防护规则"
},
{
"ruleId": "930130",
"ruleMessage": "限制文件访问尝试",
"group": "基础防护规则",
"severity": "2",
"severityLevel": "高风险",
"match": "Matched \"Operator `PmFromFile' ..."
},
{
"ruleId": "949110",
"ruleMessage": "超过了入站异常分数阈值,拦截请求",
"group": "基础防护规则",
"severity": "0",
"severityLevel": "高风险",
"match": "Matched \"Operator `Ge' ..."
}
]
}
]
}
]
}
logTread 日志趋势图返回:
{
"msg": "成功",
"code": 200,
"data": [
{
"metricName": "logTread",
"objectArrayList": [
[1747785600000, 120],
[1747785900000, 85]
],
"count": 205
}
]
}
返回结果
| 状态码 |
状态码含义 |
说明 |
| 200 |
OK |
成功 |
| 401 |
Unauthorized |
未授权 |
| 403 |
Forbidden |
无权限 |
返回数据结构
状态码 200
| 名称 |
类型 |
说明 |
code |
integer |
200 表示成功 |
msg |
string |
提示信息 |
data |
array / null |
与 action 中各项对应;无数据时可能为 null |
metricName = logs 时
| 字段 |
类型 |
说明 |
metricName |
string |
固定 logs |
list |
array |
日志明细列表,按时间 降序(最新在前) |
list[] 单条日志
| 字段 |
类型 |
说明 |
oid |
string |
套餐/订单 ID |
requestId |
string |
请求唯一 ID; |
wafId |
string |
策略组 ID(与域名资源列表 wafAclId 对应) |
clientIp |
string |
客户端 IP |
hostPort |
integer |
访问端口,如 443、80 |
timeStamp |
string |
请求时间(ISO 8601,如 2026-05-21T01:18:25.000Z) |
severityLevel |
string |
本条日志 最高 风险等级:高风险 / 中风险 / 低风险(由命中规则聚合) |
ua |
object / null |
UA 解析结果;无法解析时为 null |
response |
object |
响应信息,见下表 |
geoip |
object |
客户端地理位置,见下表 |
request |
object |
请求信息,见下表 |
rules |
array |
本次请求 命中的全部规则,见下表 |
response
| 字段 |
类型 |
说明 |
httpCode |
integer |
HTTP 状态码。常见:417 WAF 拦截;404、200 等表示已放行或未拦截,但仍可能命中规则并记录在 rules 中 |
geoip
| 字段 |
类型 |
说明 |
country |
string |
国家/地区名(英文) |
countryCode |
string |
国家代码,如 US、CN |
regionName |
string |
省/州 |
latitude |
number |
纬度 |
longitude |
number |
经度 |
request
| 字段 |
类型 |
说明 |
method |
string |
请求方法,如 GET、POST |
uri |
string |
请求路径,如 /wp-config.php.bak |
headers |
object |
请求头;域名 一般在 Host 字段(如 wap.ca168.com) |
ua(可为 null)
| 字段 |
类型 |
说明 |
name |
string |
浏览器名称,如 Chrome、Firefox |
os_name |
string |
操作系统,如 Windows |
os |
string |
操作系统(同 os_name) |
major |
string |
浏览器主版本 |
minor |
string |
浏览器次版本 |
device |
string |
设备类型 |
build |
string |
构建号 |
patch |
string |
补丁版本(可选) |
rules[] 单条命中规则
| 字段 |
类型 |
说明 |
ruleId |
string |
规则 ID |
ruleMessage |
string |
规则说明,如「URL文件扩展名受策略限制」 |
group |
string |
规则分组,如「基础防护规则」 |
severity |
string |
严重级别数值(字符串),如 "0"~"9" |
severityLevel |
string |
严重级别文案:高风险 / 中风险 / 低风险 |
maturity |
string |
成熟度评分 |
accuracy |
string |
准确度评分 |
match |
string |
ModSecurity 匹配详情(较长,含运算符、变量、匹配值) |
metricName = logTread 时(日志趋势图)
| 字段 |
类型 |
说明 |
metricName |
string |
固定 logTread |
objectArrayList |
array |
趋势图数据:[[时间戳毫秒, 该时间点日志条数], ...] |
count |
integer |
时间范围内日志总条数(控制台用于展示合计,如 logCount) |