面向应用的网络流量监测系统的设计与实现
2021-08-24蒋方强
蒋方强
摘 要:随着企业各类业务的持续增长,IT设施也在不断完善和扩建。网络线路、网络设备和服务器等基础设备不断增加,整个网络结构变得异常庞大且复杂,一定程度上增加了监控和管理的难度。许多关键的业务系统往往包括网络线路、防火墙、前端应用服务器、负载均衡设备、中间件、数据库和存储等各类软硬件设施,在传统管理手段下,对于多段网络、多层应用的架构,运维管理关联度不够高,导致在问题发生时,分析定位相对比较困难,排障速度相对较慢。部署面向应用的网络流量分析系统,可以建立统一的网络流量监测分析的底层平台,自动梳理应用系统网络访问路径,同时建立起面向应用的网络服务视图,实现全网流量监测,并且根据流量特征实现快速故障预警与故障诊断,更加科学有效地的管理IT设施,确保业务系统稳定运行。
关键词:面向应用;流量特征;网络流量分析;流量监测
中图分类号:TP393.18文献标识码:A文章编号:1003-5168(2021)10-0009-04
Application Oriented Traffic Visualization System of the Whole Network
JIANG Fangqiang
(Shanghai Pudong Development Bank,Shanghai 200233)
Abstract: With the continuous growth of all kinds of business, it facilities are constantly improving and expanding. With the increase of network lines, network equipment and servers, the whole network structure becomes very large and complex, which increases the difficulty of monitoring and management to a certain extent. Many key business systems often include network lines, firewalls, front-end application servers, load balancing devices, middleware, databases, storage and other software and hardware facilities. Under the traditional management methods, for the multi segment network and multi-layer application architecture, the operation and maintenance management relevance is not high enough, which makes it relatively difficult to analyze and locate problems, the speed of obstacle removal is relatively slow. Deploying the application-oriented network traffic analysis system can establish a unified underlying platform for network traffic detection and analysis, automatically comb the network access path of the application system, establish an application-oriented network service view, realize the visualization of the whole network traffic, and realize rapid fault warning and fault diagnosis according to the traffic characteristics, more scientific and effective management of it facilities to ensure the stable operation of business systems.
Keywords: application oriented;flow characteristics;network traffic analysis;flow monitoring
隨着企业各类业务的持续增长,IT基础设施设备数量不断增加,网络、系统、应用的关联性日益密切,整个结构变得异常庞大且复杂。在传统管理手段下,对于多段网络、多层应用的架构,运维管理关联度不够高,导致在发生问题时分析定位相对比较困难,排障速度较慢。在运维工作中,应用、系统和网络管理人员往往需要付出额外的工作量,依靠技术积累和经验进行人工分析、定位、关联以应对多层面联动的异常及故障[1]。
运维人员越来越多地使用网络流量分析工具,流量数据的捕获与分析,缓解了一部分运维压力。随着企业运维管理精细化程度不断提升,对网络流量分析系统运用的逐步深入化,对运维水平的要求不断提高,有必要对网络流量数据的高效分析进行进一步研究和实践[2]。
1 网络流量数据的分析与探索
在对各类应用系统的异常数据流量进行分析的过程中,发现在应用系统出现异常时,数据包整体的特征会发生明显变化。
1.1 流量特征
目前,行业主流的网络通信主要是基于TCP(Transmission Control Protocol,传输控制协议)/IP(Internet Protocol,网际互连协议)协议[3],与人体血液中的各类微观指标类似,网络流量中也蕴含了丰富的流量信息。通过研究发现,流量中TCP的syn数据包数量、fin数据包数量、rst数据包数量及流量中的连接数、响应时间等各种指标的波动,都反映着应用系统运行的变化。例如,当应用系统的性能遇到瓶颈时,会主动发送rst数据包进行终止会话,此时,网络流量数据包特征中,就会出现rst数据包、零窗口数据包数量突然增大的情况,也可能会出现数据包的响应时间突然增大的情况。又如,某些应用系统如果因某种原因没有正常关闭会话,会导致特征数据中syn数据包、fin数据包大量减少。此外,流量中的各类指标与业务的访问量也具有正向或反向的关系。
1.2 面向应用
传统的以设备为中心的网络性能管理工作中,关注的重点在于设备、设施的运行状态,而面对复杂的应用环境,该视角则过于粗放,往往不能快速发现可用性和性能问题,对于具体的应用,没有信息能直接表明网络服务的运行状态。全网流量监测的结构初步确立,企业可以快速有效地从网络视角来确认应用系统的运行情况,理顺网络服务的访问关系和数据路径,使网络服务与具体应用直接对应,可以不依赖于专业人员对网络流量进行标准化分析。
1.3 全网可视
能否在整个网络中进行网络流量分析逐步成为思考的方向。如果在所有网络设备范围内都部署流量收集探针,整体成本过高,然而部署少量区域,也无法满足企业全网流量分析的需求。通过思考与总结,在网络汇聚层及网络边界处部署流量收集探针,通过切片的方式进一步降低庞大的网络流量数据,实现涵盖整个网络的全网流量。
2 系统的设计和实现
建立统一的网络流量监测和分析的底层平台,合理规划和利用网络流量资源,将网络流量分析覆盖至整个网络,实现全网流量监测[4]。同时,通过自动化梳理应用系统网络访问路径,建立面向应用的网络服务视图,形成基于网络流量特征分析方法的实践理论,快速进行故障预警与故障诊断,便于维护网络的稳定性。
2.1 部署统一的网络流量数据监测和分析的底层转发平台
引入底层流量监测数据接入设备,建立统一的网络流量收集、监测和分析的底层平台,对数据进行过滤、切片和复制等操作,可以进一步满足性能分析、入侵检测、数据库监测、事件和日志分析、应用监测等对网络流量的需求,提高基础资源的利用率,提升数据使用安全性,降低流量分析系统探针部署数量及总体部署成本,增加整个系统的灵活性和鲁棒性。整体平台架构如图1所示。
2.2 合理规划实现全网流量监控
实现全网流量监测,全网的流量采集是一个十分重要的技术点,需要兼顾成本部署、流量完整性等,越是靠近终端节点(服务器、客户端),采集到的流量越是完整。但是,直接在接入层采集数据需要部署的系统规模太大,需要进行大量的配置、布线工作,同时需要采购大量分流设备对流量进行汇聚,提高了成本,因此不是一种最优的方案。
如果在核心路由网络中部署,核心层肩负大流量的高速转发任务,在这个位置部署分流设备,对其规格要求较高,同样会带来较高的成本。同时,该位置远离服务端和客户端,许多问题的表征已经被丢失,不利于发现和分析问题。
在各网络区域的汇聚层及网络边界部署探针,能够合理规划和利用网络流量资源,降低总体部署成本,增加整个系统的灵活性,分析出链路中流量的大小、流量构成、各通信对的流量使用情况等,提升突发网络流量分析能力。
因此,考虑网络的三层架构现状(如图2所示),在各网络区域的汇聚层及网络边界部署探针进行数据采集是相对平衡、高效的方案,兼顾了靠近末梢采集流量和尽量控制采集点数量,实现了对重要业务网络的监控覆盖。
2.3 建立面向应用的网络服务视图,监测网络流量特征
网络中蕴含应用系统的流量特征信息是最真實和最客观的体现,可分析网络中流量的大小、流量构成、各通信对的流量使用情况及整体网络响应时间。面向应用的全网流量监测系统,依托网络流量数据自动化梳理应用系统网络访问路径,依此建立面向应用的网络服务视图。其技术特点是通过记录全部的网络流量,自动发现其中通过网络进行通信的节点之间的互访连接信息,并根据TCP特征,自动判定请求方和服务方。通过解析应用系统的网络流量,自动关联流量中的网络报文头部关键信息,例如,源目的IP地址、源目的端口、协议类型、TCP关键标识等,能准确、直观地看到最真实的网络访问关系。
同时,全网流量监测系统将网络中各个设备通过面向应用的逻辑连接在一起,实现面向应用的网络监控。如图3所示,路径上的每个组件都会展示当前网络流量的负载量、响应性能与告警数量。
2.4 基于历史数据的机器学习,实现告警的模拟及流量的自动识别
面向应用的全网监测系统引入机器学习、回归算法等新技术[5],用于实现自动化的流量识别与分类功能,便于网络运维团队快速发现未知流量,并基于业务流量快速分析得出结果,同时根据得出的结果及时更新网络运维视图、定义精准告警,变被动预防为主动预警。
系统可根据历史数据自动完成流量的会话特征、IP、端口的聚类,以帮助识别网络中未曾定义的业务应用流量,极大地提高了流量识别的准确性,并为准确地监控视图与异常告警奠定基础。
2.5 形成基于流量特征监测的实践理论
网络流量的采集和分析系统使网络具备了实时获取生产网和重要业务系统的网络层指标的能力,从海量的指标中提炼出TCP指标运行的模式和特征,能够形成网络流量特征监测的实践理论,进一步使应用系统产生的网络流量得到有效监控,进而从网络流量层面感知应用系统是否正常运行,快速实现对应用的故障预警与故障诊断。
2.5.1 基于网络流量特征的监测分析。基于网络流量特征的监测分析,其数据来源是网络流量数据包的包头部分。通过对数据包的解码,提取数据包中的关键特征,从而对网络流量、流量构成和通信情况进行快速分析。通过解码网络流量数据包的包头部分,可获取数据包的大小、源目IP地址、源目端口。对于TCP协议,可以进一步获取其网络通信的详细信息。
2.5.2 总结形成网络流量中TCP协议特征。网络中TCP协议的特征与人体血液中的各类指标有相似之处。不同的TCP特征数据包蕴含着丰富的信息,并且会长期处于一个稳定范围,可对不同的TCP特征数据包及数据包之间的信息变化进行特征总结。
TCP中的syn包,除了遭受攻击的场景外,正常业务场景下,syn包的数量通常可以和应用系统访问量直接挂钩。如果短时间内产生大量syn包,则会对应用系统产生显著压力,甚至会耗尽系统资源。
TCP中的FIN端发出fin包后,连接会进入FIN_WAIT_1的等待状态,此时系统分配给该连接的资源尚未完全释放,需要及时获得对方的ACK来进入FIN_WAIT_2状态,或直接收到FIN+ACK,进入TIME_WAIT状态,继而关闭连接。若因为某些原因对方未及时响应,同时还有新的连接请求进来,那么可能会发生资源耗尽的情况。
TCP中的rst,代表出现了比较严重的问题导致必须立刻关闭连接,但现在有些应用会利用rst的特性来达到快速关闭连接的目的,俗称暴力断链。长连接出现rst则往往是表示发生故障。
TCP中的Zero Window,通常表示接收缓冲区内的数据没有被及时取走,这种情况是上层应用遇到性能问题或发生异常,但未关闭连接。偶发的Zero Window是随着业务高峰到来而增加的,可作出风险预警。
服务响应时间应根据应用的总体规则和要求而定。如果服务响应时间突增或突降,应用系统很有可能发生异常,需要复合其他指标如syn数量、并发连接数等进行综合判定。
2.5.3 网络流量特征的分析方法总体框架。本文从流量数据采集、解码分析、特征分析到实现方法四个步骤出发,将网络流量特征分析方法自下而上地分为四层,如图4所示。
第一层为物理层,负责网络流量的分布式采集。第二层应用层,通过引入适当的软件、硬件产品,实现对网络流量的解码与分析。第三层为特征层,通过对TCP数据包的特征进行分析,对各类指标进行解读,并设定合理区间。第四层为方法层,也是论证层,针对不同监控目的,采取不同的监控策略,例如,运维分析、定位瓶颈、及时预警、事件驱动。同时,用特征基线进行辅助,通过不断循环进行迭代验证。利用基线特征指引方法的结果来进行验证,形成良性循环。
2.6 灵活的动态流量数据特征基线
流量特征的基线模型,可以对日常的流量数据特征指标进行动态评估,根据过去的经验数据,对未来的变动进行预警。
面向应用的全网流量监测系统提供的基线计算是基于采集到的网络样本数据(集特定的网络流量特征指标)进行的统计学分析,通过分组计算、比较指定变量(某网络指标)的描述性统计量,能够精确有效地得出结果。
2.7 具备标准的API(Application Programming Interface,应用程序接口)接口并支持SDN
通过全网流量监测系统提供的标准REST API接口,与其他运维管理系统对接,实时提供指标数据,并可向SDN(Software Defined Network,软件定义网络)和云迁移,最终实现无人干预的监控创建和修改。同时,提供實时性数据给SDN或云控制器,进一步提高SDN和云控制器的容错率和健壮性,避免性能问题。API可以实现自动构建视图,通过API调用,系统可以自动在后台创建配置视图,实现软件定义的性能监控。
3 结语
本文以集约化的方式建立面向应用的网络流量监测系统,为企业重要应用系统展现了一张完整的网络访问服务路径视图,网络流量特征指标客观反映网络、系统、应用、业务系统运行状态,精确有效地对应用系统的异常进行监控、预警、故障定位,也为不同领域的运维人员提供了沟通的桥梁。基于流量特征监测的实践理论,明确了网络流量分析和监测的基础,确立了网络流量特征数据监测的意义,从网络的视角提供了一种高效、简洁、快速监测应用系统运行情况的方法。通过对网络指标的监测,精确有效地对应用系统的异常进行预警,为提升运维的整体水平做出了重要贡献,是企业IT运维工作的重要平台。
参考文献:
[1]陶广.网络安全数据可视化研究综述[J].信息与电脑(理论版),2015(8):75-76.
[2]罗齐.基于分布式架构的网络流量分析系统设计与实现[D].郑州:郑州大学,2019:33-35.
[3]曹莹,常东,王雪.计算机网络管理技术及发展趋势探析[M].北京:清华大学出版社,2019:25.
[4]范硕.分布式环境下的实时网络流量检测与分析[D].成都:成都信息工程大学,2019:56.
[5]方洋,李旗,张瑞霞.基于机器学习的网络异常流量分析系统[J].电脑知识与技术,2020(4):30-31.