凌晨两点事件量从每小时八千涨到五万,翻了六倍,访客 ID 集中在同一段 IDC 机房,页面路径却全是首页和列表页。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,爬虫和预渲染服务会执行页面里的 JS,统计脚本照常发请求,客户端没有任何过滤就把机器流量记成了真实访问。上报接口没有鉴权时,刷起来成本更低。
「爬虫刷埋点」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。报错里带路径的,先去看那个路径在不在、权限对不对。
if (/bot|crawler|spider/i.test(ua) || isDatacenterIp(ip)) return res.status(204).end(); limit_req_zone $binary_remote_addr zone=collect:10m rate=30r/s; limit_req zone=collect burst=60 nodelay;
同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
具体做法是,在统计端开启已知机器人过滤,同时用服务端规则兜底;对 collect 接口按 IP 和会话做频率限制,异常直接丢弃;把来源 IP 段和 UA 拉出来比对,确认后加黑名单。
最后用这个标准收尾,事件量回落到正常区间,异常时段的 IP 段不再出现在报表里。
