APM系统中网络协议分析引擎的设计与实现
发布时间:2020-06-02 09:01
【摘要】:现如今互联网发展迅速,越来越多的企业都选择投入互联网的怀抱,但是多数企业最关心的往往是其业务逻辑,而忽略了对应用程序性能的监控。随着时间的推移,企业对应用程序性能监控的需求日益强烈。因此,APM(Application Performance Monitor,应用性能监控)系统应运而生,解决了应用程序的性能监控问题。APM系统有多种采集性能数据的方式,其中最主要的两种是探针式采集和网络采集。对于一些传统的行业如银行系统,其对于探针采集的方式抱有顾虑,担心这种方式可能有潜在的性能问题以及安全问题,因此不予采用。他们更容易接受网络采集的方式。现有的网络采集方式主要分为两种,一种是通过交换机等硬件设备进行分光获取,但现如今企业应用逐渐向云端迁移,由于云环境具有高度的伸缩性、动态性、虚拟性,这种网络采集方式已经无法准确获取到应用程序的通信数据。另外一种是通过开源抓包软件如Tcpdump\Wireshark等,这些软件可以在云环境中正常采集到网络数据,但是由于这些软件无法对应用层的协议进行详细分析,并且无法解决数据包乱序的问题,同时还可能存在丢包现象,因此不能满足APM系统的需要。为此,本文提出了一种新型的基于网络采集的APM系统,设计并实现了其中的网络协议分析引擎——Netsniffer,弥补了传统网络APM系统无法适应云环境的缺陷,解决了现有开源网络分析工具无法对网络数据进行深度分析的问题,同时解决了网络丢包问题和TCP数据包乱序问题。
【图文】:
图2.1天旦部署方式逡逑天旦的产品主要分为两个子系统,一个是Smart邋Probe,这是一个流量捕获系逡逑统,另一个是CrossFlowNPM,这是整个NPM系统的数据处理中心,同时向客逡逑户端提供了查询接口,用于展示网络数据。逡逑可以看到,为了实现对整个网络状况的数据抓取,天旦的产品需要在每两个逡逑网络节点之间部署Smart邋Probe,并且在特定的路由器上也要获取一部分的IPFIX逡逑数据。这样的部署成本较高。并且一旦用户的系统想要往云环境中迁移,这种复逡逑杂的数据抓取方式,就变得不可用。逡逑因此,对于传统的基于硬件抓包的产品,己经不能满足现在云计算的发展趋逡逑势了,从而需要考虑使用软件抓包的方式,来实现在云环境中抓取网络数据实现逡逑分析的功能。逡逑2.2基于软件抓包的底层库逡逑Netsniffer的最基础的技术就是网络抓包,因此如何高效准确地抓取网络数据逡逑是首要的任务,幸运的是目前有很多抓包的方案可供选择。逡逑
图3.1邋APM系统架构图逡逑(1)逦Netsniffer逡逑这便是本文研究的主要内容,其安装部署在客户的服务器主机或者Docker逡逑容器中,通过旁路监听的方式抓取网络数据包,并对其进行还原,,通过Netsniflfer逡逑可以获取到网络中真实发生的各种网络协议信息,可以用来统计各个端口的进出逡逑口流量,如果是HTTP协议的话,可以统计出不同URL的耗时,频率等信息。逡逑(2)逦DataCollector逡逑DataCollector处于客户内外网环境的结合处,正常情况下,Netsniffer无法将逡逑采集到的数据直接发送给数据处理分析中心,因此在客户方,需要将Netsniffer逡逑采集到的数据发送给DataCollector,因为其处于内外网交界处,因此可以与后台逡逑的数据处理分析中心进行数据交互,故由其负责将数据进行转发,通过ZMQ协逡逑议发送至邋DataAnalysis。逡逑(3)逦DataAnalysis逡逑DataAnalysis是数据处理分析中心最重要的组件,主要完成以下几个功能:逡逑1)拓扑图的分析,这是通过HTTP协议、MySQL协议和Redis协议的数据逡逑
【学位授予单位】:浙江大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP393.09
本文编号:2692923
【图文】:
图2.1天旦部署方式逡逑天旦的产品主要分为两个子系统,一个是Smart邋Probe,这是一个流量捕获系逡逑统,另一个是CrossFlowNPM,这是整个NPM系统的数据处理中心,同时向客逡逑户端提供了查询接口,用于展示网络数据。逡逑可以看到,为了实现对整个网络状况的数据抓取,天旦的产品需要在每两个逡逑网络节点之间部署Smart邋Probe,并且在特定的路由器上也要获取一部分的IPFIX逡逑数据。这样的部署成本较高。并且一旦用户的系统想要往云环境中迁移,这种复逡逑杂的数据抓取方式,就变得不可用。逡逑因此,对于传统的基于硬件抓包的产品,己经不能满足现在云计算的发展趋逡逑势了,从而需要考虑使用软件抓包的方式,来实现在云环境中抓取网络数据实现逡逑分析的功能。逡逑2.2基于软件抓包的底层库逡逑Netsniffer的最基础的技术就是网络抓包,因此如何高效准确地抓取网络数据逡逑是首要的任务,幸运的是目前有很多抓包的方案可供选择。逡逑
图3.1邋APM系统架构图逡逑(1)逦Netsniffer逡逑这便是本文研究的主要内容,其安装部署在客户的服务器主机或者Docker逡逑容器中,通过旁路监听的方式抓取网络数据包,并对其进行还原,,通过Netsniflfer逡逑可以获取到网络中真实发生的各种网络协议信息,可以用来统计各个端口的进出逡逑口流量,如果是HTTP协议的话,可以统计出不同URL的耗时,频率等信息。逡逑(2)逦DataCollector逡逑DataCollector处于客户内外网环境的结合处,正常情况下,Netsniffer无法将逡逑采集到的数据直接发送给数据处理分析中心,因此在客户方,需要将Netsniffer逡逑采集到的数据发送给DataCollector,因为其处于内外网交界处,因此可以与后台逡逑的数据处理分析中心进行数据交互,故由其负责将数据进行转发,通过ZMQ协逡逑议发送至邋DataAnalysis。逡逑(3)逦DataAnalysis逡逑DataAnalysis是数据处理分析中心最重要的组件,主要完成以下几个功能:逡逑1)拓扑图的分析,这是通过HTTP协议、MySQL协议和Redis协议的数据逡逑
【学位授予单位】:浙江大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP393.09
【参考文献】
相关期刊论文 前2条
1 赵建立;吴聪聪;;Wireshark在《计算机网络》教学中的应用研究[J];现代计算机;2013年05期
2 石乐义;戚平;;计算机网络课程原始套接字编程实验的实践探索[J];计算机教育;2010年23期
相关硕士学位论文 前2条
1 黄飞锋;基于AOP的应用性能管理框架的设计与实现[D];浙江大学;2016年
2 刘青;PF_RING研究及其在网络流高速采集中的应用[D];昆明理工大学;2009年
本文编号:2692923
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2692923.html