本申请涉及数据处理技术领域,特别涉及一种网络异常监控方法和装置。
背景技术:
随着网络技术的发展,通过一套业务服务平台可以为全球不同地区的用户提供某些业务的服务。如,基于同一套游戏服务器体系可以实现不同国家和地区的游戏玩家提供游戏业务,使得全球不同国家和地区的游戏玩家之间可以进行游戏竞技。
然而由于不同国家以及运营商所提供的网络状况的差异较大,使得全球不同地区的用户的网络质量差异性较大,这样,如果某个地区的某个或某些用户出现网络访问异常,很难及时发现并定位网络访问异常,从而影响到业务服务平台的网络质量,进而影响到用户对业务服务平台的正常访问。因此,如何及时发现并定位用户访问业务服务平台的过程中所出现的网络访问异常是本领域技术人员迫切需要解决的技术问题。
技术实现要素:
本申请提供了一种网络异常监控方法和装置,以及时发现并定位出客户端访问业务服务平台过程中所出现的网络访问异常,从而有利于提高业务服务平台的网络质量。
为了解决上述问题,一方面,本申请提供了一种网络异常监控方法,包括:
获取待分析时间段内业务服务平台中的服务器上报的网络数据对象集合,所述网络数据对象集合中包括多个网络数据对象,每个所述网络数据对象包括:客户端访问所述服务器的网络时延以及所述网络时延的生成时刻;
基于所述网络时延的生成时刻的密度分布,对所述网络数据对象集合中的网络数据对象进行聚类,得到多个聚类簇,每个聚类簇中包含多个网络数据对象;
依据所述多个聚类簇中所述网络时延的分布,从所述多个聚类簇中确定出网络时延异常的异常聚类簇;
基于所述异常聚类簇中包含的所述网络时延的生成时刻以及所述异常聚类簇中包含的所述网络数据对象所关联的网络登录信息,进行网络异常分析。
另一方面,本申请实施例还提供了一种网络异常监控装置,包括:
数据获取单元,用于获取待分析时间段内业务服务平台中的服务器上报的网络数据对象集合,所述网络数据对象集合中包括多个网络数据对象,每个所述网络数据对象包括:客户端访问所述服务器的网络时延以及所述网络时延的生成时刻;
数据聚类单元,用于基于所述网络时延的生成时刻的密度分布,对所述网络数据对象集合中的网络数据对象进行聚类,得到多个聚类簇,每个聚类簇中包含多个网络数据对象;
异常簇确定单元,用于依据所述多个聚类簇中所述网络时延的分布,从所述多个聚类簇中确定出网络时延异常的异常聚类簇;
异常分析单元,用于基于所述异常聚类簇中包含的所述网络时延的生成时刻以及所述异常聚类簇中包含的所述网络数据对象所关联的网络登录信息,进行网络异常分析。
由以上可知,在需要监控网络异常时,可以获取待分析时间段内业务服务平台中的服务器上报的网络数据对象集合,然后依据该网络数据对象集合中每个网络数据对象包括的网络时延的生成时刻的分布密度,对该网络数据对象集合中的多个网络数据对象进行聚类,基于聚类出的多个聚类簇中网络时延的分布,确定出存在网络时延异常的异常聚类簇,这样,基于异常聚类簇内包含的网络时延的生成时刻以及该异常聚类簇中各个网络数据对象所关联的网络登录信息,可以进行网络异常分析,从而可以及时监控出该待分析时间内出现的网络异常以及网络异常的发生时刻,并有利于有针对性的分析异常原因,进而有利于提高业务服务平台可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一种网络异常监控方法一个实施例的示意图;
图2示出了在待分析时间段内各个网络时延的分布示意图;
图3示出了本申请一种业务服务平台一个实施例的组成结构示意图;
图4示出了利用DBSCAN算法进行聚类的流程示意图;
图5示出了本申请一种网络异常监控方法又一个实施例的流程交互示意图;
图6示出了在提供全球同服游戏的业务服务平台的应用场景中,本申请的网络异常监控方法又一个实施例的流程交互示意图;
图7示出了本申请一种网络异常监控装置一个实施例的结构示意图;
图8示出了本申请一种终端一个实施例的硬件架构示意图。
具体实施方式
本发明实施例描述的业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的网络异常监控方法适用于对客户端访问业务服务平台的网络时延情况进行监控分析的场景中。该异常监控方法可以应用于服务器,该服务器也可以是业务服务平台中单独设置的用于进行数据分析的服务器,也可以是业务服务平台中原有用于向客户端提供业务服务的服务器。
本申请的网络异常监控方法通过对客户端访问业务服务平台的网络时延等数据的分析,可以及时准确的定位出业务服务平台中存在网络时延异常的时刻以及出现网络时延异常的客户端访问业务服务平台的网络登录信息,从而可以基于网络登录信息分析该网络时延异常的时刻的网络异常原因,有利于及时发现网络异常并得到针对性的分析异常原因,进而有利于提高业务服务平台可靠性。
本申请的业务服务平台可以有多种可能。如,在一种可能的情况下,该业务服务平台可以为游戏业务服务平台,客户端通过访问该游戏业务服务平台可以获取游戏数据并运行相应的游戏业务,而通过本申请的网络异常监控方法可以分析游戏业务运行过程中,出现的网络访问异常的时刻点和玩家等信息,还可以及时发现网络异常波动,从而有利于及时解决网络异常问题,进而可以有利于提高游戏体验。
下面结合附图进行详细介绍。
参见图1,其示出了本申请一种网络异常监控方法一个实施例的流程示意图,本实施例的方法可以应用于服务器或者其他数据分析设备中。本实施例的方法可以包括:
101,获取待分析时间段内业务服务平台中的服务器上报的网络数据对象集合。
该网络数据对象中包括多个网络数据对象。其中,每个网络数据对象包括:客户端访问服务器的网络时延以及网络时延的生成时刻。
其中,网络时延也可以称为网络延时,是指从客户端向服务器发送数据包的时刻开始,至该客户端接收到服务器针对该数据包返回的响应之间的时长。
业务服务平台中的服务器可以获取客户端访问服务器的网络时延,如,服务器请求客户端上报该客户端对应的网络时延;又如,客户端可以实时或者每隔预设时长向服务器上报一次该网络时延。其中,客户端确定该客户端访问服务器的网络时延的方式可以有多种,如,客户端可以采用因特网包探测程序(PING,Packet Internet Groper)测试来确定客户端访问该服务器的访问时延,当然,还可以有其他确定网络时延的方式,在此不加限制。
其中,网络时延的生成时刻可以为客户端上报该网络时延的时刻,或者是服务器接收到客户端上报该网络时延的时刻。如,客户端上报该网络时延的同时,客户端可以将上报该网络时延的时刻发送给服务器,以使得服务器确定出网络时延的生成时刻。又如,客户端可以仅仅上报该网络时延,而服务器接收到客户端上报的网络时延时,会自动记录该网络时延的上报时刻,并将该上报时刻确定为网络时延的生成时刻。
可以理解的是,为了区分出上报各个网络数据对象的客户端、用户账号、IP地址以及该IP地址所归属的运营商以及国家等等信息,以便后续在定位出属于网络异常的网络时延之后,可以确定出产生该网络时延的用户账号以及IP地址等等信息,服务器在接收到客户端上报的网络时延时,会确定该网络时延对应的网络登录信息,并将网络时延与网络登录信息进行关联存储。其中,该网络登录信息可以包括上报网络时延的客户端的IP地址、用户账号、IP地址所属运营商、IP地址所属的国家等信息中的一种或多种。如,客户端可以在上报网络时延的同时,携带该网络登录信息;或者是,客户端可以在上报网络时延的同时,携带该客户端的IP地址和用户账号,服务器可以基于该IP地址,分析出该IP地址所属的运营商以及国家等信息,当然,也可以是服务器在接收到客户端上报的网络时延时,从存储的客户端的日志记录中获取该客户端的网络登录信息;当然,还可以有其他方式来获取该网络登录信息,在此不再赘述。
其中,待分析时间段以及待分析时间段的时间长度均可以根据监控所需时长进行设定,如,可以每半小时进行一次监控,则可以在需要进行数据监控分析时,获取当前时刻之前半小时时间内产生的网络数据对象的集合。
102,基于网络时延的生成时刻的密度分布,对网络数据对象集合中的网络数据对象进行聚类,得到多个聚类簇。
其中,每个聚类簇中包含多个网络数据对象。
每个网络数据对象实际上包括了两个数据,一个是网络时延,一个生成该网络时延的时刻,即网络时延的生成时刻。在对网络数据对象进行聚类时,是以该网络数据对象中网络时延的生成时刻为聚类基准,从而基于不同网络数据对象中包含的网络时延的生成时刻的密度分布,对网络数据对象集合中的该多个网络数据对象进行聚类,从而得到聚类出的多个聚类簇。
通过聚类可以使得每个聚类簇中的网络时延均具有较为相似的特征,如,属于同一个聚类簇内的多个网络数据对象所对应的网络时延较为接近,而属于不同聚类簇内的网络数据对象的网络时延的差距较大。
需要说明的是,本申请的聚类过程是一个反复执行不断迭代的过程。
基于网络时延的生成时刻的密度分布,对网络数据对象进行聚类的方式可以有多种,在此不加以限制。
可选的,为了提高聚类效果,使得聚类出的聚类簇可以反映出一定时间时序内,处于某个特定时长内的网络时延的密度尽可能的大,本申请可以采用非监督的聚类算法,且该聚类算法为对噪声点容忍性较好的算法。如,可以采用具有噪声的基于密度的聚类(DBSCAN,Density-BasedSpatial Clustering of Applications with Noise))算法进行聚类。
在利用DBSCAN算法进行聚类时,以该多个网络数据对象对应的多个网络时延的生成时刻作为DBSCAN算法中的多个待聚类的对象点,同时,需要获取聚类所需的时间半径区间Eps(也称为扫描半径)以及密度阈值MinPts(也称为最小包含点数),如时间半径区间可以为-100毫秒至100毫秒,该密度阈值用于限定对象点的个数,如密度阈值可以为10个。这样,在进行聚类时,可以依据当前设定的时间半径区间以及密度阈值,采用该DBSCA算法将该多个待聚类的对象点进行聚类,而每个对象点所表征的网络时延的生成时刻均属于一个网络数据对象,从而通过对该多个待聚类的对象点的聚类,实现了对该多个网络数据对象的聚类,得到多个聚类簇。
其中,DBSCAN算法的最大优势是它对于原始数据集的分布几乎没有要求,并且对噪音不敏感,因此,它的模型适应性和鲁棒性相对较强。该DBSCAN算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,且将簇定义为密度相连的点的最大集合。
当然,在利用该DBSCAN算法对多个网络数据对象进行聚类的过程中,也需要不断进行迭代反复进行聚类,在该过程中,该时间半径区间以及密度阈值均可能会发生变化,因此,当检测到调整该时间半径区域和密度阈值时,需要利用调整后的时间半径区间替换当前时刻之前设定的时间半径区域,并利用调整后的密度阈值替换当前时刻之前设定的密度阈值,从而基于调整后的时间半径区域和密度阈值再进行聚类。
103,依据多个聚类簇中网络时延的分布,从该多个聚类簇中确定出网络时延异常的异常聚类簇。
其中,异常聚类簇是指包含的网络时延被确定为存在异常的聚类簇,为了便于区分,本申请将包含的网络时延确定为异常网络时延的聚类簇称为异常聚类簇。确定出的异常聚类簇可以是一个,也可以是多个。
可以理解的是,异常聚类簇中包含的网络时延的分布区间与其他聚类簇中包含的网络时延的分布区间的差距较大,且当网络出现异常时,客户端访问服务器所需的网络时延的数据会增大;而且在实际的网络环境中,处于正常时延范围内的网络时延的数量要远远大于异常状态的网络时延,因此,根据各个聚类簇中网络时延的分布,可以确定出属于网络时延异常的异常聚类簇。
具体确定该异常聚类簇的方式可以有多种。如,在一种实现方式中,可以设定属于正常时延的网络时延所占的预设比重或者预设比重区间,例如,该预设比重区间可以为百分之七十至百分之八十五,这样,可以先确定各个聚类簇中包含的网络时延所属的延时区间以及该延时区间内的网络时延所占的比重,然后从该多个聚类簇中选取出至少一个目标聚类簇,以使得选取出的至少一个目标聚类簇中所包含的网络时延的数量占用网络时延总数据量的比重处于该预设比重区间内,且与不属于目标聚类簇的聚类簇中所包含的网络时延相比,选取出目标聚类簇中包含的网络时延会的数值会偏小。
例如,假设预设比重区间可以为百分之七十至百分之八十五,且假设聚类出的聚类簇有四个,分别为聚类簇1至聚类簇4。其中,聚类簇1中的网络时延基本处于1ms-350ms区间范围内,且处于1ms-350ms的网络时延在所有聚类簇中包含的全部网络时延(获取到的所有网络时延)的数据中所占据的比重为百分之二十;而聚类簇2的网络时延基于处于370-500ms的区间范围内,且处于370-500ms的区间范围的网络时延在获取到的所有网络时延的数据中所占据的比重为百分之六十;聚类簇3中的网络时延处于600-1200ms区间范围,且处于该600-1200区间范围内的网络时延在所有网络时延中的比重为百分之十五;聚类簇4中的网络时延处于1100-3000ms,且处于该网络时延处于1100-3000ms的网络时延占获取到的所有网络时延的比重为百分之五,那么根据正常的网络时延所占的比重较为,且正常的网络时延所占的比重应该在百分之七十至八十五之间,且正常的网络时延一般会比异常的网络时延的数值小,因此,可以确定出聚类簇1和聚类簇为正常聚类簇,该聚类簇1和聚类簇2中的网络时延大部分处于1ms-500ms的区间内,且在该区间内的网络时延的比重占据了百分之八十,由此可以分析出,聚类簇3和聚类簇4为异常聚类簇。
在另一种实现方式中,确定异常聚类簇的方式可以为:获取用户设定的处于正常状态的网络时延的目标区间,如,在确定出多个聚类簇之后,可以展现出该多个聚类簇各自对应的网络时延的分布情况,这样,用户根据网络时延的分布情况,可以预估出正常的网络时延所处的目标区间,并输入用户设定的目标区间,如参见图2,其示出了待分析时间段内所有网络时延的分布情况,其中,横轴代表该待分析时间段所对应的各个时刻点,单位为秒;纵轴为网络时延的时长。根据该待分析时间段内网络时延在不同时延区间内的分布情况,用户可以设定一个正常的网络时延所处的目标区间。例如,该目标区间可以为1ms-600ms。然后,依据获取到的当前设定的网络时延的目标区间,从该多个聚类簇中,确定出设定比例超出预设值的异常聚类簇,其中,该设定比例是指聚类簇中不属于该目标区间的网络时延的数量与该聚类簇中包含的网络时延的总个数的比值。例如,其中,该预设值可以根据需要设定,一般该设定值大于百分之五十,如该设定值可以为百分之七十。
例如,假设设定为百分之七十,某个聚类簇中包含的网络时延的总个数为1000个,且该聚类簇中未处于该目标区间内的网络时延的数量超过700个,则可以确定该聚类簇为异常聚类簇。
104,基于异常聚类簇中包含的网络时延的生成时刻以及该异常聚类簇中包含的网络数据对象所关联的网络登录信息,进行网络异常分析。
其中,该网络登录信息可以包括该网络时延所对应的用户账号、该用户账号的IP地址、该IP地址所属的国家以及运行商等信息中的一种或多种。在实际应用中,可以在确定出异常聚类簇之后,服务器再获取该异常聚类簇中各个网络数据对象所关联的网络登录信息;也可以是在获取到业务服务平台的服务器上报的网络数据对象时,便确定出该网络数据对象所对应的网络登录信息,以便在执行该步骤104时,可以直接查询预先确定出的该异常聚类簇中各个网络数据对象所对应的网络登录信息。其中,确定该网络登录信息的具体方式可以参见步骤101的介绍,在此不再赘述。
在确定出异常聚类簇之后,该异常聚类簇中包含的各个网络时延的生成时刻便可以认为是异常的发生时刻,同时,依据聚类簇中各个网络时延属于一个网络数据对象,而不同的网络数据对象实际上关联有不同的网络登录信息,这样,可以根据分析的维度,从多个不同方向,来分析网络异常。如分析发生网络异常的时刻,以及发生网络异常的客户端的IP地址所属的运营商或者过程等等信息中的一种或多种,以便准确确定导致网络异常的原因,或者是分析出网络异常发生规律等等。
可见,在本申请实施例中,在需要监控网络异常时,可以获取待分析时间段内业务服务平台中的服务器上报的网络数据对象集合,然后依据该网络数据对象集合中每个网络数据对象包括的网络时延的生成时刻的分布密度,对该网络数据对象集合中的多个网络数据对象进行聚类,基于聚类出的多个聚类簇中网络时延的分布,确定出存在网络时延异常的异常聚类簇,这样,基于异常聚类簇内包含的网络时延的生成时刻以及该异常聚类簇中各个网络数据对象所关联的登录信息,可以进行网络异常分析,从而可以及时监控出该待分析时间内出现的网络异常以及网络异常的发生时刻,并有利于有针对性的分析异常原因,进而有利于提高业务服务平台可靠性。
可选的,在本申请实施例中,业务服务平台中的服务器上报的网络数据对象可以为日志数据的一部分。如,业务服务平台中的服务器可以记录或获取客户端与该服务器之间维持通信连接过程所产生的日志数据,这样,收集到日志数据的服务器可以将各个客户端对应的日志数据上报给业务服务平台中的数据库,或者上报给预设的用于进行数据分析的服务器,以在该用于进行数据分析的服务器中存储日志数据或者将日志数据存储到数据库中。
相应的,业务服务平台中当前进行数据分析的服务器可以获取待分析时间段内该业务服务平台中的服务器上报的日志集合,该日志集合中包括多份日志数据。当前进行数据分析的服务器可以从该日志数据中获取网络数据对象以及网络数据对象关联的网络登录信息,得到多个网络数据对象构成的网络数据对象集合以及该网络数据对象中的网络数据对象关联的网络登录信息。
如,参见图3,其示出了本申请一种网络异常监控方法所适用的一种业务服务平台的组成结构示意图。
业务服务平台31可以包括多个业务服务器311、一台监控服务器312以及数据库313。
其中,客户端32可以访问该业务服务平台31中的业务服务器,以获取相应的业务服务器。
其中,该多个业务服务器可以分别向客户端提供不同类型的服务,也可以是提供相同的服务,该多个业务服务器可以部署于一个机房内,也可以是分别部署于不同的地区。
在本实施例中,该业务服务器还可以获取客户端访问该业务服务器过程中网络时延以及网络时延对应的生成时刻,并将获取到的网络时延以及网络时延对应的生成时刻存储到数据库中,其中,一个网络时延以及该网络时延对应的生成时刻可以作为本申请实施例中待分析的一个网络数据对象。
相应的,监控服务器可以基于数据库存储的不同业务服务器在不同时刻上报的针对不同客户端的网络时延以及网络时延的生成时刻等数据进行网络异常监控,以及时定位并分析网络异常。
在实际应用中,业务服务器获取到的网络时延以及网络时延的生成时刻等数据也可以直接发送给监控服务器,然后由监控服务器将业务服务器上报的网络时延、网络时延的生成时刻等数据存储到数据库中。
当然,本实施例是以业务服务平台具有数据库为例进行介绍,在实际应用中,业务服务平台也可以不具有数据库,则业务服务平台中的业务服务器可以将网络时延以及网络时延的生成时刻等数据存储到监控服务器中。
需要说明的是,在实际应用中,监控服务器也可以是一台独立的服务器,也可以是某个业务服务器,如,某个时刻可以从该多个业务服务器中选取一个业务服务器来充当该服务器,并由该业务服务器从数据库中获取待分析时间段内业务服务平台的业务服务器上报的网络数据对象,并对网络数据对象进行分析。
可以理解的是,为了便于分析,在本申请实施例中将向客户端提供业务服务的服务器称为业务服务器,而将进行网络异常监控的服务器称为监控服务器。
下面基于图3的业务服务平台,对本申请一种网络异常监控方法进行介绍。为了便于描述,以利用DBSCAN算法进聚类为例进行介绍。该DBSCAN算法的中心思想是:对于一个类(本申请中的聚类簇)中的每一个点P(不包括边界点),在给定的某个EPS领域(前面提到的时间半径区间)内数据点的个数不少于预设的最小数目(前面提到的密度阈值)MinPts,MinPts是聚类簇内某一点(不包含边界点)的EPS领域必须包含的点的最小数目。下面先介绍下DBSCAN算法中一些定义:
定义1,ΕPS邻域:给定对象半径为ΕPS内的区域称为该对象的ΕPS邻域;
定义2,核心对象(也称为核心点):如果给定对象的ΕPS领域内的样本点数大于等于给定的MinPts,则称该对象为核心对象;
定义3,直接密度可达:对于一个样本集合D,如果样本点q在p的Εps领域内,并且p为核心对象,那么样本点q从样本点p直接密度可达。
定义4,密度可达:对于一个样本集合D,给定一串样本点p1,p2….pn,p=p1,q=pn,假如样本点pi从pi-1直接密度可达,那么样本点q从样本点p密度可达。
定义5,密度相连:存在样本集合D中的一点o,如果样本点o到样本点p和样本点q都是密度可达的,那么样本点p和q密度相联。
其中,DBSCAN目的是找到密度相连的样本点的最大集合。
下面先对利用DBSCAN算法对样本点集合进行聚类的过程进行简单介绍,参见图4,其示出了DBSCAN算法进行聚类的一种流程示意图,该聚类过程可以包括:
401、从样本点集合中选取出一个样本点作为待处理对象。
402,判断当前作为待处理对象的样本点的EPS邻域内的样本点个数是否大于或等于给定的MinPts,如果否,则执行步骤403;如果是,则执行步骤404。
403,如果作为待处理对象的样本点的EPS邻域内的样本点个数小于给定的MinPts,则将该样本点标记为噪声,并执行步骤406。
需要说明的是,如果当前作为待处理对象的样本点EPS邻域内的样本点个数小于MinPts,则只能说明该样本点不是核心对象,但是,该样本点有可能处于某个核心对象的EPS邻域内,这样,该样本点可能仍会被划归到该核心对象的聚类簇中,所以暂时将其标记为噪声点。当然,如果当前作为待处理对象的样本点的EPS邻域内的样本点个数小于给定的MinPts,且该样本点未处于其他核心对象的EPS领域内,则该样本点可以最终确定为噪声。
404,如果作为待处理对象的样本点的EPS邻域内的样本点个数大于等于给定的MinPts,则将样本点以及该样本点的EPS邻域内的样本点加入候选集N,并新建一个包含有该候选集N内的样本点的聚类簇,执行步骤405;
405、从候选集N中选取出一个未作为待处理对象的样本点,如果该样本点的EPS邻域内的样本点个数大于等于给定的MinPts,则将处于该样本点的EPS邻域内且未加入到该聚类簇中的样本点添加到该聚类簇以及该候选集N中,重复该步骤405,直至候选集N中所有样本点均已经作为待处理对象为止,完成一个聚类簇的聚类。
简而言之,如果一个样本点的EPS领域内的样本点的数量大于或等于minPts,则该样本点与该样本点的EPS领域内的样本点点形成一个簇,并且该样本点被标记为已访问(visited),然后递归,以相同的方法处理该簇内所有未被标记为已访问(visited)的点,从而对簇进行扩展。
406,从样本点集合中尚未归类到任意一个聚类簇或者标记为噪声的样本点中选取一个样本点作为待处理对象,并返回执行步骤402,直至样本点集合中所有样本点均作为待处理对象,得到多个聚类簇。
经过以上步骤402-406可以将样本点集合中的样本点归为某一个蔟(即,一个聚类簇)中,或者是归为一个噪声,从而完成聚类过程。
当然,图4仅仅是利用DBSCAN算法进行聚类的一种实现方式,在利用DBSCAN算法进行聚类的过程还可能有其他方式,在此不加以限定。
下面基于图3中业务服务平台的组成,并以利用DBSCAN算法进行聚类为例,对本申请实施例的网络异常监控方法进行介绍。参见图5,其示出了本申请一种网络异常监控方法又一个实施例的流程示意图,本实施例的方法可以包括:
501,业务服务器获取访问该业务服务器的各个客户端对应的日志文件。
其中,该日志文件中可以包括该客户端上报的网络时延、该网络时延的生成时刻,还可以包括该客户端登录该业务服务器所采用的用户账号以及IP地址。
其中,每个业务服务器均可以获取客户端相关的网络时延、网络时延的生成时刻以及该客户端对应的用户账号、IP地址等等信息。
当然,该日志文件中还可以包括客户端运行过程中网络链路的关键节点信息,比如,以业务服务平台为游戏服务平台,则该客户端为游戏客户端,则该网络链路的关键节点信息可以包括:登录、对战、拉取组件等节点的状态和返回码。
502,业务服务器将各个客户端对应的日志文件发送给监控服务器。
503,监控服务器依据该日志文件中的IP地址,确定出该IP地址所归属的运营商以及国家。
监控服务器可以在获取到业务服务器上报的每个日志文件时,对该日志文件中的IP地址进行分析,以确定出该IP地址所归属的国家以及运营商。这样,当确定出该日志文件中的网络时延属于异常聚类簇内的异常网络时延时,则可以直接获取该网络时延所关联的IP地址所归属的国家以及运营商的信息。
504,监控服务器将每个日志文件所对应的用户账号、网络时延、网络时延的生成时刻、IP地址、运营商以及国家的信息作为一条记录存储到数据库中。
可选的,监控服务器将日志文件中的数据存储到数据库之前,还可以进行数据的去重、去冗余以及去空等操作,在此不再赘述。
505,当需要监控网络异常时,监控服务器从数据库中提取生成时刻属于待分析时间段内的多条数据记录。
其中,每条数据记录包括网络时延、网络时延的生成时刻、IP地址、运营商以及国家信息。
506,监控服务器将每条数据记录中的网络时延以及网络时延的生成时刻作为一个待聚类的网络数据对象,得到多条数据记录对应的多个网络数据对象。
其中,每条数据记录对应着一个网络数据对象,每个网络数据对象都包含了两种数据:一个是网络时延,一个是网络时延的生成时刻。而每个网络数据对象就是DNSCAN算法中需要进行聚类的一个对象或者说一个样本点。
507,监控服务器获取当前设定的时间半径区间EPS以及密度阈值MinPts。
其中,该EPS以及MinPts可以预先设定,也可以是由用户根据实际需求实时输入。
该设定半径区间是一个时间区间范围,而不是一个固定的。
具体的,设定时间半径区间EPS的过程可以为:对网络数据对象中的每个数据进行正则化,并计算不同网络数据对象之间的欧几里得距离,并根据计算出的欧几里得距离绘制k-距离曲线,从而根据距离变化趋势,选取合适的时间半径区间。其中,k-距离是指:给定数据集P={p(i);i=0,1,…n},对于任意点P(i),计算点P(i)到集合D的子集S={p(1),p(2),…,p(i-1),p(i+1),…,p(n)}中所有点之间的距离,距离按照从小到大的顺序排序,假设排序后的距离集合为D={d(1),d(2),…,d(k-1),d(k),d(k+1),…,d(n)},则d(k)就被称为k-距离。也就是说,k-距离是点p(i)到所有点(除了p(i)点)之间距离第k近的距离。对待聚类集合中每个点p(i)都计算k-距离,最后得到所有点的k-距离集合E={e(1),e(2),…,e(n)}。
可以理解的是,在聚类的过程中,EPS以及MinPts这两个参数的具体数据可以根据聚类需要进行动态调整,因此,聚类过程中要以当前设定的该EPS以及MinPts这两个参数为基准进行聚类。
508,监控服务器基于该多个网络数据对象中网络时延的生成时刻的密度分布,以及当前设定的该EPS以及MinPts,并采用DBSCAN算法对该多个网络数据对象进行聚类,得到多个聚类簇。
其中,每个聚类簇包含了多个网络数据对象。
以网络数据对象中的网络时延的生成时刻为基准,对网络数据对象进行聚类的过程可以理解为:以某一个网络数据对象中网络时延的生成时刻为基准,检测该网络数据对象中网络时延的生成时刻的EPS领域内含有的其他网络数据对象所对应的网络时延的生成时刻的数量是否大于等于MinPts,如果是,则将该网络数据对象以及处于该网络数据对象中网络时延的生成时刻的EPS邻域内的其他网络数据对象形成一个簇,然后将该网络数据对象标记为已访问的样本点,然后递归,以相同的方法处理该簇内所有未被标记为已访问(visited)的样本点,从而对簇进行扩展。
509,监控服务器分别确定每个聚类簇中包含的网络时延的最大值以及最小值。
510,监控服务器基于聚类簇中包含的网络时延的最大值以及最小值之间的差距,从该多个聚类簇中确定出至少一个感兴趣的聚类簇。
其中,确定出聚类簇包含的网络时延的最大值以及网络时延的最小值之后,可以进一步计算出网络时延的最大值与最小值的差值,如果该差值大于预设值,则可以将该聚类簇确定为感兴趣的聚类簇,以便后续对该感兴趣的聚类簇的数据记录进行进一步聚类。
当然,该感兴趣的聚类簇也可以是由用户指定的,如监控服务器分别确定每个聚类簇中包含的网络时延的最大值以及网络时延最小值之后,可以分别计算出各个聚类簇中网络时延的最大值与最小值的差值,然后,可以输出各个聚类簇所对应的该差值,以便用户依据该差值选取出感兴趣的聚类簇,监控服务器确定用户所选择的至少一个感兴趣的聚类簇。
511,获取当前调整后的EPS以及MinPts。
其中,该步骤511是为了对感兴趣的聚类簇中所包含的网络数据对象进一步进行聚类,因此,需要调整EPS以及MinPts,以最终实现将该感兴趣的聚类簇中的多个网络数据对象归类到该感兴趣的聚类簇所对应的子聚类簇中。
其中,设定EPS的过程可以参见步骤507的描述。
512,对于任意一个感兴趣的聚类簇,基于该感兴趣的聚类簇中包含的多个网络时延的生成时刻的密度分布,以及调整后的EPS以及MinPts,采用DBSCAN算法对感兴趣的聚类簇内包含的多个网络数据对象进行聚类,得到感兴趣的聚类簇所对应的多个聚类簇。
当然,对感兴趣的聚类簇内所包含的多个网络数据对象进行聚类的过程可以与前面的聚类过程相似,在此不再赘述。
513,依据该感兴趣的聚类簇所对应的多个聚类簇中网络时延的分布,从该感兴趣的聚类簇所对应的多个聚类簇中,确定出网络时延异常的异常聚类簇。
其中,从感兴趣的聚类簇包含的多个网络数据对象所聚类出的多个聚类簇中确定异常聚类簇的过程与图1实施例中确定异常聚类簇的过程相似,在此不再赘述。
当然,本实施例中步骤513是一种优选的实施方式,在实际应用中,也可以是在对感兴趣的聚类簇中包含的多个网络数据对象进行聚类之后,从当前得到的所有聚类簇中来确定异常聚类簇。
需要说明的是,该步骤509至513为可选步骤,在步骤508之后,直接从聚类出的多个聚类簇直接确定异常聚类簇的方式也同样适用于本实施例。
514,确定异常聚类簇中包含的多个网络数据对象所对应的网络时延的生成时刻、运营商以及国家,并基于网络时延的生成时刻、运营商以及国家,进行网络异常分析。
在本申请实施例中,确定出存在网络时延异常的异常聚类簇之后,可以获取到出现网络异常的网络时延所对应的生成时刻、用户账号、运营商以及国家等信息,这样,便可以基于这些信息进行异常分析。
需要说明的是,确定出异常的网络时延、网络时延的生成时刻,以及网络时延所对应的用户账号、运行商以及国家等信息之后,进行异常分析的方式可以有多种,如,可以确定出现网络时延异常的发生时刻,并探寻异常发生时刻的规律,以便采取相应措施控制网络异常;还可以是统计出现网络时延异常的用户账号所对应的运行商,进而分析是否由于运行商的网络异常而导致的网络时延异常;还可以是统计一定时间区间内(如,每天,每周,每月)网络时延异常的规律性分布,然后结合异常发生时刻,该业务服务器和客户端等相关节点上报返回码状态以及日志等定位出网络异常发生的具体原因。
另外,在确定出异常聚类簇之后,可以最后对异常聚类簇中包含的网络数据对象所对应的运行商以及国家等进行统计,以便于全局观察整个网络异常在不同运行商以及国家的发生情况。
当然,还可以有其他异常分析方式,在此不一一列举。
本申请实施例的网络异常监控方法可以适用于多种不同的应用场景中,为了便于理解,以对提供全球同服游戏服务的业务服务平台的网络异常监控为例,在提供全球同服游戏服务的业务服务平台中,业务服务服务器具体可以为游戏业务服务器,该游戏业务服务器可以用于向不同游戏玩家的游戏客户端提供游戏业务或者是运行游戏所需的数据服务。如,游戏业务服务器可以提供玩家与玩家对战(PVP,Player VS Player)的游戏业务;也可以提供玩家与环境对战(PVE,Player VS Environment)的游戏业务等;或者,提供游戏运行过程中所需的数据维护或数据记录等业务服务,例如,该游戏业务服务器可以为互联网数据中心等。当然,不同的游戏业务服务器可以提供不同种类的游戏业务或者数据支持。
全球同服游戏可以向全球不同国家和地区的游戏玩家提供游戏服务,而游戏玩家的网络时延直接影响到游戏的体验感受,因此,为了及时分析出全球玩家的延时情况,本申请实施例的网络异常监控方法可以采集全球同服游戏中游戏玩家的网络延时数据、并可以结合不同国家运营商网络状况、用户地理分布坐标、带宽、丢包等数据对全球用户网络质量进行评估,分析,定位网络异常并分析导致网络异常的原因。
参见图6,其示出了本申请一种网络异常监控方法又一个实施例的流程示意图。
本实施例的方法可以包括:
601,游戏业务服务器获取访问该游戏业务服务器的各个游戏客户端对应的日志文件。
其中,该日志文件中可以包括游戏客户端上报的网络时延、该网络时延的生成时刻、游戏客户端登录该业务服务器所采用的玩家账号、该玩家账号对应的IP地址以及地理位置坐标等信息。
当然,该日志文件中还可以包括游戏客户端与游戏业务服务器之间的网络链路的关键节点信息,如:登录、对战、拉取组件等节点的状态和返回码。
602,游戏业务服务器将各个游戏客户端对应的日志文件发送给监控服务器。
603,监控服务器依据该日志文件中的IP地址,确定出该IP地址所归属的运营商以及国家。
604,监控服务器将每个日志文件所对应的玩家账号、网络时延、网络时延的生成时刻、IP地址、运营商以及国家的信息作为一条记录存储到数据库中。
可选的,监控服务器将日志文件中的数据存储到数据库之前,还可以进行数据的去重、去冗余以及去空等操作,在此不再赘述。
605,当需要监控网络异常时,监控服务器从数据库中提取生成时刻属于待分析时间段内的多条数据记录。
其中,每条数据记录包括玩家账号、网络时延、网络时延的生成时刻、IP地址、运营商以及国家信息。
606,监控服务器将每条数据记录中的网络时延以及网络时延的生成时刻作为一个待聚类的网络数据对象,得到多条数据记录对应的多个网络数据对象。
其中,每条数据记录对应着一个网络数据对象,每个网络数据对象都包含了两种数据:一个是网络时延,一个是网络时延的生成时刻。
607,监控服务器获取当前设定的时间半径区间EPS以及密度阈值MinPts。
其中,该EPS以及MinPts可以预先设定,也可以是由用户根据实际需求实时输入。
608,监控服务器基于该多个网络数据对象中网络时延的生成时刻的密度分布,以及当前设定的该EPS以及MinPts,并采用DBSCAN算法对该多个网络数据对象进行聚类,得到多个聚类簇。
其中,每个聚类簇包含了多个网络数据对象。
609,依据该多个聚类簇中网络时延的分布,从该多个聚类簇中确定出网络时延异常的异常聚类簇。
610,基于异常聚类簇中包含的多个网络数据对象所对应异常游戏玩家的玩家账号、网络时延的发生时刻、该玩家账号对应的IP地址以及该IP地址所属的运行商以及国家,确定网络异常的发生时刻以及出现网络异常的游戏玩家在不同运营商以及国家中的分布情况。
可选的,还可以在确定出异常聚类簇之后,异常聚类簇中网络时延的生成时刻也就是异常网络时延的发生时刻,这样基于该异常聚类簇中的异常游戏玩家的玩家账号以及异常网络时延的发生时刻,可以获取在异常网络时延的发生时刻时,该异常游戏玩家所在的游戏客户端以及该游戏客户端所访问的游戏业务服务器中记录的关于该异常游戏玩家的日志,分析日志中网络链路中登陆,对战,拉取组件等节点的状态和返回码),可以分析出游戏玩家发生卡顿的可能原因,以及网络延时异常的可能原因。
下面对本申请实施例提供的一种网络异常监控装置进行介绍。
参见图7,其示出了本申请一种网络异常监控装置一个实施例的结构示意图,本实施例的装置可以应用于服务器,该装置可以包括:
数据获取单元701,用于获取待分析时间段内业务服务平台中的服务器上报的网络数据对象集合,所述网络数据对象集合中包括多个网络数据对象,每个所述网络数据对象包括:客户端访问所述服务器的网络时延以及所述网络时延的生成时刻;
数据聚类单元702,用于基于所述网络时延的生成时刻的密度分布,对所述网络数据对象集合中的网络数据对象进行聚类,得到多个聚类簇,每个聚类簇中包含多个网络数据对象;
异常簇确定单元703,用于依据所述多个聚类簇中所述网络时延的分布,从所述多个聚类簇中确定出网络时延异常的异常聚类簇;
异常分析单元704,用于基于所述异常聚类簇中包含的所述网络时延的生成时刻以及所述异常聚类簇中包含的所述网络数据对象所关联的网络登录信息,进行网络异常分析。
可选的,所述数据聚类单元,包括:
聚类参数获取单元,用于获取当前设定的时间半径区间以及密度阈值;
聚类子单元,用于基于所述多个网络数据对象对应的多个所述网络时延的生成时刻的密度分布,以及当前设定的所述时间半径区间以及密度阈值,采用具有噪声的基于密度的聚类DBSCAN算法对所述多个网络数据对象进行聚类,得到多个聚类簇。
可选的,还包括:
簇分析单元,用于在所述数据聚类单元得到所述多个聚类簇之后,分别确定每个聚类簇中包含的网络时延的最大值以及最小值;
兴趣簇确定单元,用于基于聚类簇中包含的网络时延的最大值以及最小值之间的差距,从所述多个聚类簇中确定出至少一个感兴趣的聚类簇;
聚类参数调整单元,用于获取当前调整后的时间半径区间以及密度阈值;
重聚类单元,用于对于任意一个感兴趣的聚类簇,基于所述感兴趣的聚类簇中的多个网络数据对象所对应的多个网络时延的生成时刻的密度分布,以及当前调整后的时间半径以及密度阈值,采用所述DBSCAN算法对所述感兴趣的聚类簇内包含的多个网络数据对象进行聚类,得到所述感兴趣的聚类簇所对应的多个聚类簇;
所述异常簇确定单元,具体为用于依据所述感兴趣的聚类簇所对应的多个聚类簇中所述网络时延的分布,从所述感兴趣的聚类簇所对应的多个聚类簇中,确定出网络时延异常的异常聚类簇。
可选的,该装置还可以包括:
延时参数获取单元,用于在所述异常簇确定单元确定出网络时延异常的异常聚类簇之前,获取当前设定的网络时延的目标区间;
所述异常簇确定单元在确定出网络时延异常的异常聚类簇时,具体为确定出设定比例超出预设值的异常聚类簇,所述设定比例为聚类簇中不属于所述目标区间的网络时延的数量与所述聚类簇中包含的网络时延的总个数的比值。
可选的,所述网络登录信息,包括以下一种或多种:
IP地址、用户账号、运营商和国家信息。
本发明实施例还提供了一种服务器,该服务器可以包括上述所述的另一种网络异常监控装置。
图8示出了服务器的硬件结构框图,参照图8,服务器800可以包括:处理器801,通信接口802,存储器803和通信总线804;
其中处理器801、通信接口802、存储器803通过通信总线804完成相互间的通信;
可选的,通信接口802可以为通信模块的接口,如GSM模块的接口;
处理器801,用于执行程序;
存储器803,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器801可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器803可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,程序可具体用于:
获取待分析时间段内业务服务平台中的服务器上报的网络数据对象集合,所述网络数据对象集合中包括多个网络数据对象,每个所述网络数据对象包括:客户端访问所述服务器的网络时延以及所述网络时延的生成时刻;
基于所述网络时延的生成时刻的密度分布,对所述网络数据对象集合中的网络数据对象进行聚类,得到多个聚类簇,每个聚类簇中包含多个网络数据对象;
依据所述多个聚类簇中所述网络时延的分布,从所述多个聚类簇中确定出网络时延异常的异常聚类簇;
基于所述异常聚类簇中包含的所述网络时延的生成时刻以及所述异常聚类簇中包含的所述网络数据对象所关联的网络登录信息,进行网络异常分析。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。