一次线上 Node.js 业务流量异常增长问题定位过程

发布时间 - 2025-07-13 00:00:00    点击率:

线上 node.js 业务流量异常增长问题定位

问题现象

某天,通过我们自建的监控系统,发现部门下属所有业务的 notFound 页面性能上报量出现了显著的异常增长,进而影响了单一页面以及整体性能指标。

问题分析

面对流量突然激增的情况,我们从两个角度进行分析:业务自身的正常增长和来自爬虫的异常增长。

从正常增长的角度来看:

增长的流量全部来自于没有实际内容的 notFound 页面。与业务方沟通后,无法找到合法的流量来源,这些流量不带 referrer 以及合法用户的 cookie。通过以上三点,我们基本可以确定异常流量来源于爬虫。

定位爬虫

要解决爬虫问题,首先需要定位爬虫的特征,比如相同的 UA、相似的 IP段等。

我们在服务端日志中进行分析,发现 IP 和 UA 特征并不明显。这是由于业务特性导致的。我们业务的 notFound 页面一直承担部分爬虫流量的职责,因此整体服务调用量一直较高。在大量服务日志中,爬虫的部分 IP 并不特别显眼。

我们换个角度,从前端性能日志进行分析。虽然 notFound 页面服务调用量较高,但由于大部分请求都是直接爬取页面,没有在浏览器中进行渲染,所以前端性能上报量一直比较稳定,可以作为突破口。

在分析前端性能日志时,我们借助了集团内部共建的 TAM 平台的多维度分析视图来进一步定位。

如图所示,在 ISP 分析视图中,来自阿里巴巴的流量占比接近70%,这是一个非常明显的异常聚集。

根据这一特征,我们在前端性能上报的原始日志中进行过滤,发现阿里巴巴的请求 IP 都在一个网段中,再使用 awk 拆解日志进行聚合分析,来自阿里巴巴的网段在头部呈现聚集态势,如图:

现在我们可以得出结论:异常增长的流量来自于阿里巴巴神马搜索的爬虫。

问题解决

能够定位到爬虫的特征,我们就可以根据具体的特征施加不同维度的封禁手段。

问题总结

通过本次异常流量问题的定位和解决,我们应该学会:

通过 UA、IP段、运营商等多个维度来定位爬虫特征,并学会借助平台功能熟悉整个服务端请求链条,遇到问题应该从整个链条逐步细化定位环节。前端性能日志与服务端日志结合分析能更快地定位问题。熟练使用 awk / sort / uniq 等 Linux 文本分析工具。


# 爬虫  # linux  # 浏览器  # 工具  # sort  # Cookie  # JS  # 阿里巴巴  # 进行分析  # 服务端  # 较高  # 来自于  # 神马  # 多维  # 都是  # 这是  # 这一 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  香港服务器部署网站为何提示未备案?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  如何彻底删除建站之星生成的Banner?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  免费网站制作appp,免费制作app哪个平台好?  如何在IIS中新建站点并解决端口绑定冲突?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  使用C语言编写圣诞表白程序  Laravel如何实现文件上传和存储?(本地与S3配置)  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  如何快速重置建站主机并恢复默认配置?  Java垃圾回收器的方法和原理总结  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  使用Dockerfile构建java web环境  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  制作旅游网站html,怎样注册旅游网站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  想要更高端的建设网站,这些原则一定要坚持!  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  javascript基本数据类型及类型检测常用方法小结  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  如何撰写建站申请书?关键要点有哪些?  JavaScript如何实现错误处理_try...catch如何捕获异常?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel如何生成URL和重定向?(路由助手函数)  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  专业商城网站制作公司有哪些,pi商城官网是哪个?  中山网站制作网页,中山新生登记系统登记流程?  java中使用zxing批量生成二维码立牌  手机网站制作与建设方案,手机网站如何建设?  详解阿里云nginx服务器多站点的配置  python中快速进行多个字符替换的方法小结  如何在局域网内绑定自建网站域名?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  如何在万网利用已有域名快速建站?  ,怎么在广州志愿者网站注册?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Android okhttputils现在进度显示实例代码