一种通信故障的监测方法、装置、存储介质及设备与流程

文档序号:20916837发布日期:2020-05-29 13:38阅读:119来源:国知局
一种通信故障的监测方法、装置、存储介质及设备与流程

本说明书涉及计算机技术领域,尤其涉及一种通信故障的监测方法、装置、存储介质及设备。



背景技术:

随着互联网进入了新的发展阶段,其体量和需求也日益扩大,随之而来的是网络设备的运营和维护的工作量也大大增加。这时对网络设备的监控要求更高,希望得到的信息更多,当网络设备出现故障的时候我们需要马上知道故障原因以便及时解决问题。然而目前大多数网络设备出现问题的时候往往需要运维人员综合各种信息分析故障原因,这很浪费时间。

负载均衡器健康监测技术是一种实时监测服务器状态的技术,其监测结果是负载均衡调度时需要考虑的重要参数。目前健康监测技术有十几种,一般根据不同协议类型命名,例如http健康监测、sip健康监测、tcp健康监测、icmp健康监测等等。通常情况下,不同的健康监测所针对的因特网协议栈的业务不同,各个健康监测功能相互独立。这就导致,大多数负载均衡器目前虽然有健康监测功能,但是此功能仅仅能显示所监测的真实服务器的状态是正常还是故障的,而不能迅速给出故障的原因。这使得运维人员排除网络故障工作的效率并不理想。



技术实现要素:

为克服相关技术中存在的问题,本说明书提供了一种通信故障的监测方法、装置、及设备。

根据本说明书实施例的第一方面,提供一种通信故障的监测方法,适用于基于因特网协议栈构建的网络的故障检测,包括步骤:

当运行中的应用发生通信故障时,自网络层开始,触发本层的故障监测事件,所述故障监测事件基于健康监测技术实现;

如果所述故障监测事件的监测结果确定所述故障不是本层故障,则触发上一层的故障监测事件;

如果确定所述故障为本层故障时,输出检测结果。

在某些例子中,上述网络层的健康监测技术包括:

icmp健康监测。

在某些例子中,上述网络层的上一层为传输层,所述传输层的健康监测技术包括以下任一:

tcp健康监测、udp健康监测。

在某些例子中,上述传输层的上一层为应用层,所述应用层的健康监测技术包括以下任一:

http健康监测、sip健康监测、ftp健康监测。

在某些例子中,传输层的故障监测事件的监测结果确定所述故障是本层故障时,上述方法包括:

基于传输层的健康监测技术配置指定内容的请求报文,将接收到的响应报文的内容和所述指定内容进行比对,根据比对结果确定所述故障的原因。

在某些例子中,上述输出检测结果为故障日志。

在某些例子中,上述方法还包括:

显示界面控件,并在用户触发所述界面控件时,显示所述故障日志。

根据本说明书实施例的第二方面,提供一种通信故障的监测装置,适用于基于因特网协议栈构建的网络的故障检测,所述装置包括:

监测模块,用于当运行中的应用发生通信故障时,自网络层开始,触发本层的故障监测事件,所述故障监测事件基于健康监测技术实现,以及如果所述故障监测事件的检测结果确定所述故障不是本层故障,则触发上一层的故障监测事件;

输出模块,用于当确定所述故障为本层故障时,输出检测结果。

在某些例子中,上述装置还包括:

显示模块,用于将所述输出监测结果以故障日志形式显示。

根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现说明书实施例中任一项所述的方法。

本说明书的实施例提供的技术方案可以包括以下有益效果:

本说明书实施例中,公开了一种通信故障的监测方法、装置、存储介质及设备。该方法适用于基于因特网协议栈构建的网络的故障检测,通过自下而上地引用网络层、传输层、应用层的健康监测技术,当判断是本层故障时输出检测结果,当判断不是本层故障时触发上一层的健康监测,快速定位故障是哪一层的故障,以此确定故障是服务器异常、网络异常还是其他原因,从而为运维人员排除网络故障工作提供了便利。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书根据一示例性实施例示出的一种通信故障的监测方法的流程图;

图2是本说明书根据一示例性实施例示出的另一种通信故障的监测方法的流程图;

图3是本说明书实施例通信故障的监测装置所在计算机设备的一种硬件结构图;

图4是本说明书根据一示例性实施例示出的一种通信故障的监测装置的框图;

图5是本说明书根据一示例性实施例示出的另一种通信故障的监测装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

健康监测技术是一种实时监测服务器状态的技术,健康监测的结果可以作为是负载均衡调度时需要考虑的重要参数,一般情况下只有监测结果为状态正常的真实服务器才能进行调度。健康监测的工作原理是以客户端的身份向真实服务器发送请求。目前的健康监测技术有十几种,一般根据不同协议类型命名,包括有http健康监测、sip健康监测、tcp健康监测、icmp健康监测等等。不同类型的健康监测技术监测的服务器状态不同,发送的请求内容也不同。

因特网协议栈共有五层,自上而下分别为:应用层、传输层、网络层、链路层和物理层。应用层是网络应用程序及其应用层协议存留的地方,运行在不同主机上的进程使用应用层协议进行通信,位于应用层的信息分组称为报文;传输层提供在应用程序端点之间传送应用层报文的服务,负责为信源和信宿提供应用程序进程间的数据传输服务,传输层分组称为报文段;网络层负责将称为数据报的网络层分组从一台主机移动到另一台主机;链路层负责将ip数据报封装成合适在物理网络上传输的帧格式并传输,或将从物理网络接收到的帧解封,取出ip数据报交给网络层;物理层负责将比特流在结点间传输,即负责物理传输。

通常情况下,不同的健康监测所针对的因特网协议栈的业务不同,各层的健康监测的工作方式相互独立。相关技术中,当应用发生通信故障时,基于应用层的健康监测技术监测出故障,但出现故障的原因是服务器异常、网络故障还是其他,并不能得知,往往需要运维人员综合各种信息才能分析出故障原因,显然非常浪费时间,也容易因故障未能及时排除而导致极大的损失。

接下来对本说明书实施例进行详细说明。

如图1所示,图1是本说明根据一示例性实施例示出的一种通信故障的监测方法的流程图,所述方法适用于基于因特网协议栈构建的网络的故障检测,包括以下步骤:

在步骤101、当运行中的应用发生通信故障时,自网络层开始,触发本层的故障监测事件,所述故障监测事件基于健康监测技术实现;

在步骤102、如果所述故障监测事件的监测结果确定所述故障不是本层故障,则触发上一层的故障监测事件;

运行中的应用发生通信故障的原因可以包括服务器异常或者是网络异常,其中,服务器异常可以包括应用层故障,网络异常可以包括传输层故障或网络层故障,本说明书实施例提供的监测方法,是通过自下而上地引用网络层、传输层、应用层的故障监测事件,以此判断故障原因。

首先是引用网络层的故障监测事件判断故障是否为网络异常。在某些例子中,网络层的健康监测技术可以包括:icmp健康监测。这一健康监测技术的具体方式可以包括:向服务器发送回送请求,等待服务器的回送应答,如果接收到回送应答且会送应答中的内容全部对应,则icmp健康监测的检测结果为正常;否则icmp健康监测的检测结果为故障,即确定故障是网络层故障。

当确定故障是网络层故障时,可以判断故障是网络异常。网络异常通常有以下几种可能:网络设备的接口配置问题;网络协议配置错误;通信拥塞等等。为判断出具体的故障原因,在某些例子中,本说明实施例还包括:当确定故障是网络层故障时,变化回送请求类型,根据回送应答的内容判断故障为哪种网络异常。

当icmp健康监测的检测结果为正常时,可以判断网络层是正常的,则引用网络层的上一层的故障监测事件判断故障是否是该层故障。网络层的上一层是传输层,在某些例子中,传输层的健康监测技术可以包括以下任一:tcp健康监测、udp健康监测。先判断应用层应用程序是否需要连接,如果需要连接则启动tcp健康监测,如果不需要连接则启动udp健康监测。tcp健康监测技术的具体方式可以包括:监测tcp连接是否可以建立,如果可以建立,则确定故障不是本层故障,如果不可以建立,则确定故障是本层故障;udp健康监测技术的具体方式可以包括:向服务器发送udp报文,如果没有接收到返回的报错信息,则确定故障不是本层故障,如果接收到返回的报错信息,则确定故障是本层故障。

同样的,当确定故障是传输层故障时,为判断出具体的故障原因,在某些例子中,当确定故障是传输层故障,基于传输层的健康监测技术配置指定内容的请求报文,将接收到的响应报文的内容和所述指定内容进行比对,获取当前服务器应用程序的状态信息,根据对比结果判断故障的具体原因。

当判断故障不是传输层故障时,则引用传输层的上一层的故障监测事件判断故障是否是该层故障。传输层的上一层是应用层,在某些例子中,应用层的健康监测技术可以包括以下任一:http健康监测、sip健康监测、ftp健康监测。应用层的健康监测计数的具体方式可以包括:向服务器发送请求;等待服务器响应报文,如果没有接收到响应报文,则确定所述故障是本层故障;如果接收到响应报文,则解析出报文内容,根据解析出来的内容和配置的内容进行匹配,根据匹配结果进一步确定故障是否为本层故障。

当判断是应用层故障时,说明故障是服务器异常。与前面网络层、传输层类似的,在某些例子中,当确定故障是应用层故障时,基于应用层的健康监测技术匹配的配置内容可以判断故障的具体原因。一般情况下,sip健康监测需要匹配的配置内容是状态码,ftp健康监测需要匹配的配置内容是用户名和密码,http健康监测需要匹配的配置内容包括状态码、正常业务标识和异常业务标识。以http健康监测为例对匹配进行详细说明:如果服务器响应报文中的状态码和http健康监测配置的状态码不匹配,则监测结果为故障;如果服务器响应报文中的内容匹配到异常业务标识,则监测结果为故障;如果服务器响应报文中的内容未匹配到正常业务标识,则监测结果为故障。当监测到上述情况时,即已经确定所述故障的原因。以一个例子说明上述情况:在一应用出现故障时,负载均衡器通过主动向服务器发送http健康监测的请求并检查响应来实现对服务器的健康监测,在http健康监测配置的请求中,配置了匹配响应码为200的状态码的指令,当服务器响应报文中响应码为2xx,即可认为是匹配,则判断该服务器通过了健康监测,其状态为正常;当服务器响应报文中响应码为500,则判断该服务器未通过健康监测,其状态为故障,根据定义的状态码的类型确定故障原因,例如当定义的状态码为500的含义为服务器内部错误时,可确定故障原因为服务器遇到错误,无法回复负载均衡器的请求。

当判断故障不是应用层故障时,可以判断服务器正常,此时可以判断得网络和服务器均处于正常状态。

在步骤103、如果确定所述故障为本层故障时,输出检测结果。

在某些例子中,本步骤提到的输出检测结果可以是以故障日志的形式显示;在某些例子中,在本步骤之后还包括:显示界面控件,并在用户出发所述界面控件时,显示所述故障日志。通过设置显示故障日志的界面控件,将监测到的故障原因输出到日志中,便于查看,有助于在通信故障时提供有用信息帮助排除问题。

本说明实施例,针对现有的健康监测功能在通信故障排除方面的明显缺陷,通过自下而上的引用因特网协议栈层次的健康监测来确定通信故障原因,让健康监测功能获得简单的网络诊断功能,能自动改变自定义输入内容来确定故障原因,从而及时发现故障原因,方便使用者及时消除故障。

为了方便理解本申请所列举的各实施例,以下阐述一个具体的应用实例,本实例以浏览器访问web服务器为例。如图2所示,浏览器启动后尝试与web服务器进行通信,当web服务器返回网页失败时,触发了负载均衡器对通信故障监测的流程:

步骤201、负载均衡器基于icmp健康监测检测服务器网络层状态,其检测的具体方式包括:首先向服务器发送回送请求,等待服务器的回送应答,如果接收到回送应答且会送应答中的内容全部对应,则icmp健康监测的检测结果为正常,执行步骤203;否则icmp健康监测的检测结果为故障,即确定故障是网络层故障,执行步骤202;

步骤202、基于网络层故障的健康监测技术变化回送请求类型查看网络层故障的具体原因,根据回送应答的内容确定故障的具体原因,执行步骤209;

步骤203、判断该应用层应用程序是否需要连接,是则执行步骤204,否则执行步骤205;

步骤204、负载均衡器基于tcp健康监测检测服务器传输层状态,其检测的具体方式包括:tcp健康监测监测tcp连接是否可以建立,如果可以建立,则确定故障不是本层故障,执行步骤206;如果不可以建立,则确定故障是本层故障,执行步骤207;

步骤205、负载均衡器基于udp健康监测检测服务器传输层状态,其检测的具体方式包括:向服务器发送udp报文,如果没有接收到返回的报错信息,则确定故障不是本层故障,执行步骤206;如果接收到返回的报错信息,则确定故障是本层故障,执行步骤207;

步骤206、基于传输层的健康监测技术配置指定内容的请求报文,将接收到的响应报文的内容和所述指定内容进行比对,获取当前服务器应用程序的状态信息,根据状态信息确定所述故障的具体原因,执行步骤209;

步骤207、负载均衡器基于http健康监测检测应用层状态,其检测的具体方式包括:首先,负载均衡器和web服务器建立tcp连接;如果连接成功,则向服务器发送httphead请求;等待服务器响应报文;如果没有接收到响应报文,则确定所述故障为本层故障,执行步骤209;如果接收到响应报文,则解析出报文内容,根据解析出来的内容和配置的状态码、业务标识进行匹配,根据匹配结果确定故障是否为本层故障,当确定所述故障为本层故障时,执行步骤208;如果确定所述故障不是本层故障时,判断网络和服务器均处于正常状态,执行步骤209;

步骤208、根据配置内容和匹配结果确定所述故障的原因,执行步骤209;

步骤209、输出检测结果,将故障原因以日志的形式显示出来,并显示一控件,开启该控件可以将检测的故障原因输出到设备日志中供开发人员参考。

本应用实例,通过自下而上的健康监测,可以快速定位故障原因,及时发现问题,便于开发人员排除故障。

与前述方法的实施例相对应,本说明书还提供了通信故障的监测装置及其所应用的终端的实施例。

本说明书通信故障的监测装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书实施例通信故障的监测装置所在计算机设备的一种硬件结构图,除了图3所示的处理器510、内存530、网络接口520、以及非易失性存储器540之外,实施例中装置531所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。

相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。

本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

如图4所示,图4是本说明根据一示例性实施例示出的一种通信故障的监测装置的框图,所述装置适用于基于因特网协议栈构建的网络的故障检测,包括:

监测模块41,用于当运行中的应用发生通信故障时,自网络层开始,触发本层的故障监测事件,所述故障监测事件基于健康监测技术实现,以及如果所述故障监测事件的检测结果确定所述故障不是本层故障,则触发上一层的故障监测事件;

输出模块42,用于当确定所述故障为本层故障时,输出检测结果。

如图5所示,图5是本说明根据一示例性实施例示出的另一种通信故障的监测装置的框图,所述装置适用于基于因特网协议栈构建的网络的故障检测,包括:

监测模块51,用于当运行中的应用发生通信故障时,自网络层开始,触发本层的故障监测事件,所述故障监测事件基于健康监测技术实现,以及如果所述故障监测事件的检测结果确定所述故障不是本层故障,则触发上一层的故障监测事件;

输出模块52,用于当确定所述故障为本层故障时,输出检测结果;

显示模块53,用于将所述输出监测结果以故障日志形式显示。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1