前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一次线上 Node.js 业务流量异常增长问题定位过程

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

作者头像
陈煮酒
发布2022-03-10 17:47:04
3280
发布2022-03-10 17:47:04
举报

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

记一次简单的抓爬虫的过程

问题现象

某日,通过自建的监控系统,我们发现部门下属全部业务的 notFound 页面的性能上报量都有大幅的异常增长,进而影响了单一页面的性能指标以及全量的性能指标。

问题分析

遇到流量突然暴涨的情况,我们首先从两个角度分析:业务自身的正常增长、来自爬虫的异常增长

从正常增长的角度来看:

  • 增长的流量全是来自没有实际内容的 notFound 页面
  • 跟业务方沟通后找不到合法的流量来源
  • 都不带 referrer 以及合法用户的 cookie

通过以上三点,我们基本可以确定异常流量来自于爬虫

定位爬虫

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

我们先在服务端日志中进行分析,发现 IP 和 UA 特征并不明显。

这是由于业务特质导致的。我们业务的 notFound 页面一直有承担部分爬虫流量的职责,所以整体服务调用量一直较多。在大量服务日志中,爬虫部分 IP 并不是特别起眼。

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

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

如图,可以看到在 ISP 分析视图中,来自阿里巴巴的流量占比近70%,这是非常明显的异常聚集

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

image.png
image.png
wecom-temp-8fbafbe2ed5b67889896941a312c4b03.png
wecom-temp-8fbafbe2ed5b67889896941a312c4b03.png

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

问题解决

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

问题总结

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

  1. 通过 UA、IP段、运营商等多个维度来定位爬虫特征,并学会借助平台功能
  2. 熟悉整个服务端请求链条,遇到问题应该从整个链条逐步细化定位环节问题
  3. 前端性能日志与服务端日志结合分析能更快的定位问题
  4. 熟练使用 awk / sort / uniq 等Linux文本分析工具
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/02/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线上 Node.js 业务流量异常增长问题定位
    • 问题现象
      • 问题分析
        • 定位爬虫
      • 问题解决
        • 问题总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档