
接入CDN后,流量路径与日志采集点会发生变化,常见问题包括真实访客IP被替换、WAF或CDN在边缘已拦截或采样导致日志不完整。本文概括了在宝塔云waf环境下,如何定位日志来源与缺失原因、在哪里查看关键字段、怎样用指标识别异常流量,并给出可操作的命令与处置建议,帮助快速定位并修正异常访问或攻击。
接入CDN后,用户请求先到达CDN节点再到源站,导致一是源站看到的客户端IP可能变成CDN节点IP,二是CDN在边缘已缓存或拦截(如WAF/CAPS/RateLimit),这些动作会让源站的WAF日志不完整。此外,CDN可能对日志做采样、合并或延迟上报,需确认CDN与宝塔云waf的真实IP透传设置与日志策略。
检查三处日志:一是CDN侧访问与边缘拦截日志(控制台或API下载);二是源站的Nginx/Apache访问日志与宝塔云waf告警日志;三是操作系统/应用层日志(如PHP、业务API)。若CDN支持回源头透传X-Forwarded-For或Proxy Protocol,应同时开启并在源站做字段还原以保留真实IP。
通过比对CDN访问总量与源站日志量来估算丢失比例:在相同时间窗口分别统计CDN请求数与源站日志行数(例如用wc -l、awk、jq)。若CDN记录远大于源站,则说明CDN已拦截或缓存大量请求;通过状态码分布(200/304/403/429/500)可以判断是缓存命中、边缘拦截还是回源错误。
关键字段包括时间戳、客户端IP(或X-Forwarded-For)、请求方法、URI、Referer、User-Agent、响应码、响应大小和耗时。把CDN与源站日志合并时要按时间和访客IP(如存在真实IP)关联,常用指标:每IP每分钟请求数、URI请求频次、404/403比、UA多样性、相同Referer的并发量,用聚合(awk/sort/uniq、Elasticsearch)快速定位异常模式。
常见判定规则:短时间内单IP高并发(>阈值)疑似爬虫或扫库;大量404或路径暴力枚举指向扫描;大量POST到静态资源或异常Content-Type为攻击行为;UA空或极短、Referer异常、请求参数重复出现则可能是自动化攻击。结合地理位置、ASN、时间段(凌晨突增)可以更准确区分真实热点与异常流量。
实时告警可用Prometheus+Grafana或CDN/WAF自带告警规则;中台分析推荐ELK/Opensearch做索引与可视化,或用GoAccess、Graylog做快速聚合。命令行快速排查:tail + awk 统计URI热度、cut|sort|uniq -c找高频IP、jq解析JSON日志。结合阈值触发自动化脚本(如封IP、限速、下发WAF规则)可以缩短响应时间。
根据识别出的异常模式,采取分级处置:轻度异常先用限速/挑战(Captcha),中度用单IP/ASN黑名单或Geo阻断,严重攻击下发全局规则或临时规则(阻断特定URI或User-Agent)。把高频恶意IP写入WAF或CDN黑名单,并调整WAF自定义规则(正则匹配、速率阈值)。同时保留误报撤销流程,监控修正效果并将日志中的证据(示例请求)作为规则样本。