运维利器之网络流量分析

幸运草 2020年10月18日16:06:58运维评论阅读模式

提起网络流量分析技术,运维的小伙伴们一定不陌生,在日常数据中心运行维护工作中,我们不时遇到网络大流量分析、应用响应缓慢、交易失败率高、第三方专线丢包突发、源端口复用导致拆链异常等等不易定位的问题,这时候常需要网络流量分析技术介入,它像网络世界里的福尔摩斯,通过解码数据流,还原“案发现场”,分析查找故障场景中的蛛丝马迹,最终定位问题根源。这不,这天监控显示我行互联网某出口带宽出现拥堵,由于互联网出口网络健康度将直接影响用户体验,我们必须尽快找到哪一波神秘流量导致带宽拥堵。

运维利器之网络流量分析首先我们对互联网突发流量进行了统计分析,很快发现某客户端访问我行门户网站的行为引起了网络流量突增。通过提取该客户端的网络通信数据包,可以看到大量HTTP GET请求下载"static.cebbank.com"域名下的某个zip压缩文件:

运维利器之网络流量分析

表面上看,好像是客户端突发大量重复请求去下载同一个文件,引发的网络流量突增。奇怪的是,正常情况下同一个文件下载一次就足够了,没必要在短时间内大量重复下载。因此我们推断有如下两种可能:

1、该客户端状态异常,例如中了木马病毒,被人利用进行拒绝服务攻击;

2、该客户端是正常行为,其中另有隐情。

为了确定是哪一种原因,我们对数据包进行进一步分析,通过选取一个下载请求并过滤该TCP会话,查看客户端的HTTP请求,发现请求中包含range字段,后面写明了请求的字节范围是“225443840-225705983”,由此计算内容大小为262144字节。这说明客户端只是发起了一个部分内容请求。

运维利器之网络流量分析

继续查看服务器回应的HTTP报文,发现服务器回应了一个“HTTP 206 Partial Content”应答,说明客户端的部分请求成功,且整个压缩文件总大小约为233395503字节。

运维利器之网络流量分析

该行为说明客户端采用多线程模式下载压缩文件,多线程模式下载的优点就是能够充分地利用客户端网络带宽的数据传输能力,在最短的时间内将一个指定Object下载过来。我们可以把服务器的上的文件看作水缸的水,要想取走水缸里面的水的话,那么多线程下载就相当于用多条管子抽水一样。

想象一下,一条管子抽水快还是多条管子抽水快呢?答案不言而喻。如果用户通过多个线程同时与服务器连接,那么他就可以获取到较高的带宽,例如原来有10个用户都通过单一线程与服务器相连,服务器的总带宽假设为56Kbps,则每个用户(每个线程)分到的带宽是5.6Kbps,即0.7K字节/秒。如果有一个用户同时打开两个线程与服务器连接,那么共有11个线程与服务器连接,而他获得的带宽将是56/11*2=10.2Kbps,约1.27K字节/秒,将近原来的两倍。用户同时打开的线程越多,他所获取的带宽就越大。当然,这种情况下占用的机器资源也越多。

回到最初的问题上,相信大家都有答案了吧,客户端使用多线程下载导致带宽突增。这时,细心的小伙伴可能有疑问,客户端访问我行业务系统服务器下载大文件,原本行内“static.cebbank.com”域名下的文件会通过内容缓存网络(CDN)进行分发加速,正常情况下不会访问行内服务器进行下载,最终分析故障根本原因是由于服务商节点备节点设置异常导致,最后经过联系服务商优化节点配置后问题得到了解决

这就是网络流量分析技术的一个日常应用案例,为了能够及时有效提取到各类应用数据流,我们在总行建立网络流量采集分析网,在关键路径网络节点上实现对各类承载应用的流量提取和分析,协助应用故障排查和原因定位。下面,我们来进一步了解我行的网络流量采集分析架构。

运维利器之网络流量分析

我行在同城双活数据中心构建统一的流量采集和分析网络架构,全面覆盖各网络分区的关键采集点,包含流量镜像采集系统、流量规则智能分配和后端探针存储,能够实现对虚机层面网络资源和网络流量、关键应用性能等全部实现可视化监控,在面向应用和网络两个方面实现流量的透明、直观、可控,并适应将来云环境需求。我行流量分析网络架构分为采集网和分析网如下图所示:

运维利器之网络流量分析

1.采集网:单独的底层采集网络,通过在采集源端进行多数据流的路径整合与分流,将精确流量送达到分析设备,同时对数据包进行切割、过滤以及其他特定分析设备的输出,实现功能包括:A.消除了多路径数据流的界限;B.安全有效的数据包切割功能;C.灵活的2-7层基于硬件的过滤功能;D.针对特定分析设备的针对性输出。

2.分析网:以业务为主导的分析网络,根据网络与应用结构的特点进行数据分析与定位:实现功能包括:A.根据网络的结构特点进行原始数据的采集;B.根据应用流的分析确定分析点的位置;C.根据监控目标确定部署设备的类型。为保证采集点部署的完整性,根据我行数据中心部署特点,对采集点的部署制定了统一的部署原则。流量分析的采集和分析系统需求将作为网络区域建设的组成部分,在网络区域建设初期被同步考虑,确保采集和分析网随着现有网络实时更新。

运维利器之网络流量分析

网络流量分析是个抽(BI)丝(JIAO)剥(HUAN)茧(MAN)的过程,除了在故障发生后协助应用定位原因之外,我们希望能进一步提高流量分析分析的实时性和智能化的水平,在故障初期提供预警支持和流量分析数据,转变网络应用服务的视角。于是,在网络流量分析数据以及去年梳理的关键和重要系统的流量分析档案基础上,今年我们在流量分析平台上定制IAM、微信缴费、MPOIN等应用的流量监控视图,推进在故障初期提供信息、提供定位预警支持。

流量分析平台可以提供总体的性能监控视图,它将实时监测、历史分析和多层分析功能组合在一起,实现智能早期告警、事件响应、实时和历史性能分析、容量规划和优化、会话分析、安全鉴证分析和报表等多样化管理,为服务分析和网络故障诊断提供了便利,这使我们能够更有效地监测各种应用环境的健康状况和可用性,加快性能问题的识别、业务影响评估以及问题根源快速判断,为分秒必争的事件处置节省了极其宝贵的时间。

流量分析平台提供全面的服务性能视图,支持复杂的多层、多厂商、多地点业务数据应用服务。视图大致可分为如下几类:

服务仪表盘——仪表盘提供关于企业应用和基础服务引擎的健康状况、告警和智能预警,使我们在需要时可以集中分析诊断。

服务依赖——依赖关系图通过自动发现和映射客户端/服务器关系,形象地显示服务和应用环境的当前状态。

服务监测器——支持全面分析关键服务事务,例如延迟、响应和失败,以及流量分析,从而判断服务性能问题的根源。专用的服务监测器提供整体可视性,涵盖所有事务请求/响应,延迟、以及与被分析应用服务器相关的错误和受影响的用户区域。

会话分析——提供会话级分析、梯形图,包括对应用服务的hop-by-hop 事务分析,帮助判断具体问题(例如服务器或正确的名称解析)。

包分析——支持DeepDive、协议级分析和收集。

运维利器之网络流量分析

以我行某应用系统为例,我们为该系统的LDAP等服务定义了交易率、超时率、失败率和重传率等监控指标,通过这些监控指标形成的曲线,不仅可以直观区分应用和网络产生的延迟,而且能够进一步观察LDAP协议认证、查询、修改等不同服务的延迟变化,如下图所示,结合交易量变化曲线,有效提高我们故障定位效率。

运维利器之网络流量分析

按以往工作方式,应用管理员发现问题通知网络管理员抓包,进行流量分析定位原因,现在我们基于系统自动学习形成的基线,预先定义了相应服务的告警项,在故障发生初期可以通过发送短信的方式,将告警信息发送到网络管理员手机上,网络管理员借助流量分析平台的图形化界面信息进行初步判断,如需进一步分析,可自动过滤提取通讯对进行数据解码。经过实践,该平台对于应用系统故障初期的发现和定位起到积极的作用。

通过多年的实践和积累,我们不断拓展流量分析的应用场景,在提供网络流量分析自动化和智能化方向上,我们还有很长的路要走,为此,我们将继续前行,在应用故障协查、安全策略合规检查、网络性能监控、虚拟化网络流量分析等方面,让网络流量分析技术发挥更多作用,增强网络可视化,为智能化运维提供分析和决策依据。

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
幸运草

发表评论