一种云环境下无内置agent的web应用程序性能监测方法技术

技术编号:21308590 阅读:37 留言:0更新日期:2019-06-12 10:49
一种云环境下无内置agent的web应用程序性能监测方法,通过对与服务端对应的ip和端口抓取网络包;然后对抓取到的网络包进行解析,过滤掉ping包,ARP包,纯ip包等,只剩下应用程序的请求包和响应包;最后,将过滤后的请求包和响应包进行拼接,提取对应的请求包的请求时间和相应包的响应时间,计算出其差值,得到应用程序服务端的响应时间,根据响应时间的快慢,分析该应用程序是否正常运行。本发明专利技术的有益效果是:解决了现有虚拟机监控必须植入监测程序到虚拟机内部才能进行应用性能监控的弊端,安全性高、通用性强、监控运行可持续,实用性强。

A Performance Monitoring Method for Web Applications Without Built-in Agents in Cloud Environment

A method for monitoring the performance of web applications without built-in agent in cloud environment is to capture network packets through the IP and port corresponding to the server; then analyze the network packets captured, filter out Ping packets, ARP packets, pure IP packets, etc., leaving only the request and response packages of the application; finally, splice the filtered request and response packages and extract the corresponding request packages. The difference between the request time and the response time of the corresponding package is calculated, and the response time of the application server is obtained. According to the response time, the normal operation of the application is analyzed. The invention has the advantages of high security, strong versatility, sustainable monitoring operation and strong practicability.

【技术实现步骤摘要】
一种云环境下无内置agent的web应用程序性能监测方法
本专利技术属于监测方法
,尤其是涉及一种云环境下无内置agent的web应用程序性能监测方法。
技术介绍
随着信息技术的不断进步,互联网时代迎来了以云计算为核心的第三次变革,尤其以OpenSatack为代表的开源技术被广为应用。基于openstack的云计算平台核心层不能提供虚拟机监控和虚拟机上应用程序监控的相关机制,难以达到对应用程序的监控。但是,在云平台的实际运维中,用户应用程序监控是用户的必然需求。为了解决上述问题,现有的云平台监控,大多都置于硬件层面上,即用来监控运行云平台的服务器层面上的监控;现有的应用程序的监控,大多是应用程序内置监控,即需要在用户虚拟机内安装代理(agent)监控程序实现。这样的操作,需要在应用程序内部植入监控探针,或根据应用程序本来带有的监控适配到云平台层面上。这样的操作,存在诸多缺点,大体如下:1、需要监控探针植入,影响安全性需要切入到用户虚拟机,这要求用户向云平台开放授权。然而,在实际操作中,沟通成本很高,并且对于安全级别高的应用,用户可能并不能接受在应用程序中植入监控探针,如果云平台管理员擅自在用户虚拟机中插入代理探针,则属于越权,这样就造成了现有条件下云平台内部虚拟机监控存在盲区。2、应用或监控项不同,适配困难用户虚拟系统不同,代理探针适配也不一样,开发人员需要为每一个不同的应用系统或者监控项重新编写监控脚本或者程序进行适配。实际操作成本高,并且根本无法保证探针的通用性和可移植性,成本输出大。3、用户能够随意结束探针,影响监控运行用户客户系统环境工作进程可能会对探针造成不利影响,影响探针正常工作。例如:虚拟机系统内root用户可随意结束探针运行,探针一旦结束工作,则该探针的监控项的监控就停止了,而这并非云平台管理员可以控制的,这严重影响了监控程序的准确性,但是如果监测程序在虚拟机外部,则监测程序就能够被云平台管理员掌控,能够随时调控监测程序的运行情况。综上,内置代理的用户应用程序监控模式在实际应用中存在较为严重的缺陷,造成可用度很低,基本上是不符合实际需求的。针对上述问题,本专利技术研究和探讨在云平台环境下,通过无内置代理的(agentless),即基于用户虚拟机外的相关机制,来对用户虚拟机内用户应用的性能进行监测的关键技术和实现。
技术实现思路
本专利技术要解决的问题是提供一种云环境下web应用程序性能监测方法;尤其在虚拟机外部进行网络流量监控,安全性高、通用性强、监控运行可持续的一种云环境下无内置agent的web应用程序性能监测方法。为解决上述技术问题,本专利技术采用的技术方案是:一种云环境下无内置agent的web应用程序性能监测方法,包括以下步骤,S1:抓取云平台内虚拟机的流量包;S2:提取所述流量包内的请求包和响应包;S3:拼接所述请求包和所述响应包;S4:计算所述请求包的请求时间和所述响应包的响应时间;S5:分析所述请求时间和所述响应时间之间的差值,判断应用程序的运行状态。进一步的,所述S1包括以下步骤,S11:通过对云平台服务器的tap虚拟网络设备的网络流量采集,监控云平台下所述虚拟机的虚拟网卡设备的网络流量;S12:通过对所述虚拟网卡设备的网络流量监控,监控所述虚拟机的网络流量。进一步的,所述S2包括以下步骤,S21:过滤所述流量包内的链路层信息,提取tcp层的流量包;S22:对待监测的服务端口进行host和port的过滤,对ip和port访问进行流量包抓取;S23:过滤tcp握手阶段的流量包。进一步的,所述S3包括以下步骤,S31:通过采集线程对共享变量进行操作,所述共享变量传送至分析线程,所述分析线程计算后删除所述共享变量内的数据,通过互斥锁保证数据的一致性。进一步的,所述S4包括以下步骤,S41:计算所述请求包的expectedAck值,计算方法如下:expectedAck=seq+packet_lengthseq为所述请求包的seq序列值,packet_length为所述请求包的内容长度,即载荷长度,荷载长度根据tcp/ip协议计算;S42:识别所述响应包的ack值,通过所述请求包的seq值和所述响应包的ack值,对所述请求包和所述响应包进行配对,取所述请求包和所述响应包的时间戳,时间差值即为请求响应延迟时间。进一步的,还包括以下步骤,S6:处理应用程序的无关包和连续包。进一步的,所述S6包括请求包和响应包分片的处理,计算方法如下:S61:将请求分片的最后一个分片作为计算起点时间t1,将t1设为请求结束时间;S62:将响应分片的第一个分片作为计算终点时间t2。将t2设为响应开始时间;S63:对于服务器端,请求分片的最后一个分片到达的时间到响应分片的第一个分片的发起时间就是服务器处理客户端请求所需要的时间,即t2-t1;S64:对一个完整请求的所有分片的长度进行累加作为请求长度;对一个完整响应的所有长度进行累加作为响应长度。进一步的,本专利技术还提供一种装置,运行上述的数据处理方法。进一步的,本专利技术还提供一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的算法,所述处理器执行所述计算机程序时实现如权利要求1至7任意一项所述的数据处理方法。进一步的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机算法,所述计算机算法被处理器执行时实现如权利要求1至7任意一项所述的数据处理方法。本专利技术具有的优点和积极效果是:1、本专利技术利用云环境下用户虚拟机的网卡设备和云平台服务器的tap虚拟网络设备存在映射关系,通过对tap设备的网络流量采集来间接监控虚拟机的网络流量。通过云环境下虚拟机外部的监测推导web应用的运行状态,解决了现有虚拟机监控必须植入监测程序到虚拟机内部才能进行应用性能监控的弊端,提高了用户部署的应用的安全性。2、本专利技术通过监测程序在云平台管理员掌控范围内运行,避免了虚拟机内部用户对监测程序的影响,保证了探针正常工作,提高了监控程序的准确性。3、本专利技术通过对网络流量的监控,通过计算服务器的响应时间来判断应用的运行状态,不需要根据不同应用场景制定对应的监测项,提高了云环境下虚拟机web应用监控的通用性。降低了实际操作成本,兼容性和实用性高。4、本专利技术通过web应用性能指标的高效网络报文精简和过滤的、低资源占用的网络报文处理方法。本专利技术基于tcp/ip协议,对抓取的流量包进行过滤处理,减少程序的无关数据的处理,对流量包数据进行简化,提出一种简单有效的数据结构,提高了程序的执行效率。5、本专利技术云环境下客户应用层请求的底层包分片分析和合并方法。本专利技术对同一请求或响应的连续包进行拼接处理,最后达到还原web应用运行状态语义的目的,具有前瞻性。附图说明图1是本专利技术实施例的整体流程图图2是本专利技术实施例的采集和分析多线程同时分析流程图图3是本专利技术实施例的流量监控示意图图4是本专利技术实施例的共享变量结构示意图图5是本专利技术实施例的请求响应对应关系图具体实施方式下面结合附图对本专利技术实施例做进一步描述:如图1所示,一种云环境下无内置agent的web应用程序性能监测方法,通过对与服务端对应的ip和端口抓取网络包;然后对抓取到的网络包进行解析,过滤掉ping包,ARP包,纯本文档来自技高网
...

【技术保护点】
1.一种云环境下无内置agent的web应用程序性能监测方法,其特征在于:包括以下步骤,S1:抓取云平台内虚拟机的流量包;S2:提取所述流量包内的请求包和响应包;S3:拼接所述请求包和所述响应包;S4:计算所述请求包的请求时间和所述响应包的响应时间;S5:分析所述请求时间和所述响应时间之间的差值,判断应用程序的运行状态。

【技术特征摘要】
1.一种云环境下无内置agent的web应用程序性能监测方法,其特征在于:包括以下步骤,S1:抓取云平台内虚拟机的流量包;S2:提取所述流量包内的请求包和响应包;S3:拼接所述请求包和所述响应包;S4:计算所述请求包的请求时间和所述响应包的响应时间;S5:分析所述请求时间和所述响应时间之间的差值,判断应用程序的运行状态。2.根据权利要求1所述的一种云环境下无内置agent的web应用程序性能监测方法,其特征在于:所述S1包括以下步骤,S11:通过对云平台服务器的tap虚拟网络设备的网络流量采集,监控云平台下所述虚拟机的虚拟网卡设备的网络流量;S12:通过对所述虚拟网卡设备的网络流量监控,监控所述虚拟机的网络流量。3.根据权利要求1或2所述的一种云环境下无内置agent的web应用程序性能监测方法,其特征在于:所述S2包括以下步骤,S21:过滤所述流量包内的链路层信息,提取tcp层的流量包;S22:对待监测的服务端口进行host和port的过滤,对ip和port访问进行流量包抓取;S23:过滤tcp握手阶段的流量包。4.根据权利要求1或2所述的一种云环境下无内置agent的web应用程序性能监测方法,其特征在于:所述S3包括以下步骤,S31:通过采集线程对共享变量进行操作,所述共享变量传送至分析线程,所述分析线程计算后删除所述共享变量内的数据,通过互斥锁保证数据的一致性。5.根据权利要求1或2所述的一种云环境下无内置agent的web应用程序性能监测方法,其特征在于:所述S4包括以下步骤,S41:计算所述请求包的expectedAck值,计算方法如下:expectedAck=seq+packet_l...

【专利技术属性】
技术研发人员:吴昊舒畅孔金珠魏立峰宋潇豫李志伟
申请(专利权)人:天津麒麟信息技术有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1