功能简介
访问日志功能用于记录 Web 应用防火墙防护域名的访问日志信息,提供开启访问日志开关的域名在用户自定义的日志保存天数内(最大180天)的访问日志记录、查询和下载功能。启用访问日志功能后,您可以根据需要查询和下载访问日志,满足安全合规、安全运维等需求。
注意:
关闭日志服务:如需关闭访问日志存储功能,可以在 续费管理 中,找到相应计费项取消自动续费。安全日志包资源到期销毁后将停止存储新增日志,并在24小时内清空历史日志,请谨慎操作。
升级日志服务容量:当存储的日志容量超过购买容量后,系统将自动停止新的访问日志写入,历史的访问日志不受影响,直到到达存储周期后开始自动删除。为了避免超量导致丢失访问日志,建议关注日志使用量,提前扩容避免超量导致访问日志丢失。
操作步骤
启用访问日志
配置访问日志存储
注意:
全部日志存储配置仅在选中“全部实例”且“全部域名”时展示,选中“单个域名”时,仅支持修改该域名的日志存储字段设置。
1. 登录 Web 应用防火墙控制台,在左侧导航栏中,选择访问日志 > 日志服务。
2. 在日志服务页面,单击右上角存储配置,可以查看并修改日志存储相关配置。
生效域名范围:支持查看已经开启访问日志的域名数量,并支持单击前往设置,在域名列表中修改单个域名的访问日志开关开启状态。
日志保存天数:单击编辑,即可修改日志保存天数。支持修改为7天、30天、32天、60天、90天、180天。每2个月支持修改1次存储时长。
说明:
日志保存天数支持设置最大180天。为满足等保合规要求,建议用户访问日志存储天数设置为180天。
修改日志存储时长后,修改前存储的日志将按原存储时长淘汰,新存储的日志按修改后的存储时长淘汰。
日志字段设置:单击编辑,支持自定义勾选保存 BOT 信息、请求内容 Request Body、自定义 Headers。
说明:
日志字段设置支持基于全部域名、单个域名进行设置。全部域名及单个域名均配置策略时,针对单个域名配置的策略优先生效。
日志清空次数:单击手动清空,支持删除当前存储的所有历史日志,部分统计和报表数据将被丢弃,操作不可恢复。每个自然月支持最多清空4次。
说明:
手动清空仅能针对当前所有日志,且操作预计耗时10分钟左右,操作期间停止写入日志。
存储告警设置:单击编辑,支持通知的阈值百分比。当日志存储量达到您设定的阈值百分比,即会触发对当前账户短信、站内信、邮件、微信、企业微信等渠道的告警通知。
3. 在日志服务页面,右上角可查看日志已使用容量进度条,单击了解详情,可跳转到 Web 应用防火墙的计费详情页面。
检索访问日志
1. 登录 Web 应用防火墙控制台,在左侧导航栏中,选择访问日志 > 日志服务。
2. 快速检索:在日志查询页签,您可以根据需要选择实例、域名、时间维度等信息,快速筛选访问日志。
字段名称 | 字段说明 |
实例过滤 | 支持多选,默认显示全部实例。 |
域名过滤 | 支持多选,默认显示全部域名。 |
时间范围 | 默认为今天,支持筛选最近时间及相对时间。可检索的时间范围和日志存储时长保持一致,每次最多选择30天。 |
3. 过滤检索:选择字段、操作符、输入字段值,单击确定即可快捷添加检索条件;支持添加多个检索条件,多个检索条件间是“与”的关系。
说明:
匹配字符:精准匹配,需要输入完整需要检索的字段值。
模糊匹配字符:前缀匹配,需要输入字段值前缀(如示例图),不需要添加通配符
*
。不包含字符:精准匹配,需要输入完整需要排除检索的字段值。
匹配以下任意字符:精准匹配,需要输入多个完整的需要检索的字段值。
不包含以下任意字符:精准匹配,需要输入多个完整的需要排除检索的字段值。
4. 语句检索:为用户提供专业的语句实现日志检索功能,满足更复杂的日志检索需求。
输入所需检索条件后,单击
,即可查询检索结果。单击
,即可展开检索语法说明。单击检索语法,查看更多检索语法说明。
检索语法
保留字符 | 说明 |
AND | “与”逻辑操作符,例如 level:ERROR AND pid:1234 |
OR | “或”逻辑操作符,例如 level:ERROR OR level:WARNING |
NOT | “非”逻辑操作符,例如 level:ERROR NOT pid:1234 |
() | 分组操作符,控制逻辑运算优先级,例如 (ERROR OR WARNING) AND pid:1234 |
: | 冒号,表示作用于的 key 字段,即键值检索,例如 level:ERROR |
"" | 双引号,引用一个短语词组(短语当作一个整体词组),例如 name:"john Smith" |
* | 通配符查询,匹配零个、单个、多个字符,例如 host:www.test*.com ,不支持前缀模糊查询还可以通过 key:* 的方式查询字段(key)存在的日志,等价于 _exists_:key |
? | 通配符查询,匹配单个字符,例如 host:www.te?t.com 与* 类似,不支持前缀模糊查询 |
> | 范围操作符,表示大于某个数值,例如 status:>400 |
>= | 范围操作符,表示大于等于某个数值,例如 status:>=400 |
< | 范围操作符,表示小于某个数值,例如 status:<400 |
<= | 范围操作符,表示小于等于某个数值,例如 status:<=400 |
TO | “范围”逻辑操作符,例如 request_time:[0.1 TO 1.0] |
[] | 范围操作符,包含边界值的范围,例如 age:[20 TO 30] |
{} | 范围操作符,不包含边界值的范围,例如 age:{20 TO 30} |
注意:
语法区分大小写,例如 AND、OR 表示检索逻辑操作符,而 and、or 视为普通文本。
多个检索条件使用空格连接时,视为“或”逻辑,例如 warning error 等价于 warning OR error。
检索关键字中存在特殊字符时,需使用转义符进行转义,特殊字符包括 + - && || ! ( ) { } [ ] ^ " ~ * ? : \\。
同时使用 AND 和 OR 逻辑运算符时,请使用()对检索条件进行分组,以明确逻辑优先级,例如(ERROR OR WARNING) AND pid:1234。
分析访问日志
1. 登录 Web 应用防火墙控制台,在左侧导航栏中,选择访问日志 > 日志服务。
2. 在访问日志数据列表左侧,单击“字段名称”,会按日志数大小排序展示与本字段匹配的 TOP 5 字段详情及日志数占比。各字段说明,请参见 日志详情字段说明。
3. 在访问日志数据列表中,单击每条展示日志发生时间左侧的
,可以查看字段详情;单击 JSON,可以查看 JSON 格式的字段详情。各字段说明,请参见 日志详情字段说明。
4. 在访问日志数据列表右上角,支持切换列表和字段两种展示方式。默认展示字段模式,单击右上角
切换至列表模式。
下载访问日志
1. 登录 Web 应用防火墙控制台,在左侧导航栏中,选择访问日志 > 日志服务。
2. 在访问日志数据列表右上角, 单击
,侧边栏展开下载任务页面。注意:
默认下载当前检索的日志范围。
同一时间段内只允许创建一个下载任务,请耐心等待。
单次最多下载100万条日志,如果您需要下载的日志超过100万条,建议您分多次任务进行下载。
当选择泛域名(如:
*.abc.com
)时,所有关联子域名(以.abc.com
结尾)的日志也将会被下载。最多创建五条下载任务,请注意下载的任务数。
3. 在下载任务页面,单击创建任务。
4. 在创建下载任务弹窗中,单击确认。
5. 创建任务后,在下载任务页面,可以查看创建日志文件的序号、创建时间、日志总数、投递状态。单击下载,即可下载 json 格式的日志文件。
说明
创建成功的日志下载任务,保留3天,超过3天之后日志文件将会删除,请及时下载。
附录
日志详情字段说明
信息类型 | 字段名 | 说明 |
基础信息 | domain | 域名:所属泛域名。 |
| request_time | 请求耗时:客户端请求达到 Web 应用防火墙和从 Web 应用防火墙返回需要的时间。 |
| client | 访问源 IP:客户端请求源 IP。 |
| uuid | 请求 UUD:HTTP 请求唯一标识。 |
| schema | 请求协议:HTTP 或者 HTTPS。 |
| method | 客户端请求方法。 |
| instance | 域名接入的 Web 应用防火墙实例名称。 |
| edition | 域名接入的 Web 应用防火墙实例类型:分为 sparta-waf(SaaS 型 WAF)和 clb-waf(负载均衡型 WAF)。 |
| appid | 用户腾讯云账号的 APPID。 |
访问 IP 信息 | ipinfo_nation | 访问 IP 所属国家名称。 |
| ipinfo_state | 访问 IP 所属国家英文简称。 |
| ipinfo_city | 访问 IP 所属城市。 |
| ipinfo_province | 访问 IP 所属省份。 |
| ipinfo_isp | 访问 IP 所属运营商。 |
| ipinfo_detail | 访问 IP 详情。 |
| ipinfo_longitude | 访问 IP 所属经度信息。 |
| ipinfo_dimensionality | 访问 IP 所属纬度信息。 |
请求详情信息 | url | 请求的 uri:客户端完整请求路径中,域名后第一个“/”到“?”之间的内容。 |
| accept | HTTP 请求头部字段,用于告知服务器客户端所支持的响应内容类型。 |
| encoding | HTTP 请求头部字段,用于告知服务器客户端所支持的压缩算法。 |
| language | HTTP 请求头部字段,用于告知服务器客户端所支持的语言。 |
| connection | HTTP 请求头部字段,控制连接行为,例如保持连接、关闭连接等。 |
| content_type | HTTP 请求头部字段,指定请求体的 MIME 类型。 |
| cookie | 请求的 cookie 信息,最大长度为 1K。 |
| host | 客户端请求域名。 |
| referer | 源页面。 |
| x_forwarded_for | 记录客户端请求经过的所有代理 IP 地址及客户端真实 IP 地址。 |
| user_agent | 请求 UA:服务器客户端的软件和操作系统信息。 |
| headers | HTTP 请求的头部信息。 |
| request_length | 请求的大小,上行带宽。 |
| query | HTTP 请求的 Query String,最大长度为 1K。 |
| msec | 请求发生时候的时间戳。 |
| time | NGINX 的本地可读性的时间字符串。 |
应答详情信息 | upstream_status | 源站返回给 Web 应用防火墙的响应状态码。 |
| status | SAAS 型 Web 应用防火墙返回给客户端的响应状态码: 200:正常请求 202:前端对抗 302:重定向 403:拦截 4XX:参考 HTTP 响应状态码标准定义 5XX:参考 HTT P响应状态码标准定义 负载均衡型 Web 应用防火墙返回给负载均衡的响应状态码: 600:正常请求 624:前端对抗 621:重定向 615:拦截 |
| bytes_sent | 响应体大小。 |
| upstream_connect_time | 客户端请求从 Web 应用防火墙到源站需要的连接时间。 |
| upstream_response_time | 客户端请求从源站返回到 Web 应用防火墙需要的时间。 |
| upstream | 上游服务器 IP。 |
BOT 流量信息 | bot_module | 当前访问请求命中的 BOT 检测模块。 |
| bot_action | 当前访问请求对应执行的 BOT 处置动作。 |
| bot_score | 当前访问请求的 BOT 得分信息。 |
| bot_label | 当前访问请求命中的 BOT 标签。 |
| ua_type | 当前访问请求中访问用户的 User-Agent 类型。 |
| ua_crawlername | 当前访问请求中疑似爬虫的 User-Agent 名称。 |
| ua_fake | 当前访问请求中的 User-Agent 是否伪造,0为否,1为是。 |
| ua_goodbot | 当前访问请求中的 BOT 是否为 goodbot,0为否,1为是。 |
| bot_ai | 当前访问请求是否命中 AI 引擎的异常请求,0为无异常,1为异常。 |
| bot_stat | 当前访问请求是否命中智能统计的异常请求,0为无异常,1为异常。 |
| bot_ti_tags | 当前访问请求是否命中威胁情报,展示命中的情报标签。 |
| bot_id | 当前访问请求的 BOT ID。 |
| bot_scene_id | 当前访问请求命中的 BOT 场景ID。 |
| bot_action_id | 当前访问请求命中的 BOT 动作策略 ID。 |
| bot_rule_id | 当前访问请求命中的 BOT 规则 ID。 |
| bot_rule_name | 当前访问请求命中的 BOT 规则名称。 |
| bot_token | 当前访问请求的 BOT 会话 ID。 |