CN110825589A - 用于微服务系统的异常检测方法及其装置和电子设备 - Google Patents

用于微服务系统的异常检测方法及其装置和电子设备 Download PDF

Info

Publication number
CN110825589A
CN110825589A CN201911081696.4A CN201911081696A CN110825589A CN 110825589 A CN110825589 A CN 110825589A CN 201911081696 A CN201911081696 A CN 201911081696A CN 110825589 A CN110825589 A CN 110825589A
Authority
CN
China
Prior art keywords
microservice
chain
patterns
chains
present disclosure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911081696.4A
Other languages
English (en)
Other versions
CN110825589B (zh
Inventor
黄鹤清
陈浩
陈际宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ByteDance Inc
Original Assignee
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ByteDance Inc filed Critical ByteDance Inc
Priority to CN201911081696.4A priority Critical patent/CN110825589B/zh
Publication of CN110825589A publication Critical patent/CN110825589A/zh
Application granted granted Critical
Publication of CN110825589B publication Critical patent/CN110825589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Abstract

本公开提供了用于微服务系统的异常检测方法及其装置和电子设备以及非暂时性计算机可读存储介质,该方法包括:从微服务链集合中生成一个或多个微服务链模式;预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;以及基于所预测的微服务的属性,检测所述微服务系统中的异常,其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。

Description

用于微服务系统的异常检测方法及其装置和电子设备
技术领域
本公开涉及微服务,更具体地,涉及用于微服务系统的异常检测方法及其装置和电子设备以及非暂时性计算机可读存储介质。
背景技术
微服务是一种将应用分离为多个单独服务的架构。每个微服务针对应用的小功能独立工作,并位于不同的容器中。微服务部署在不同的容器和机器中,它们通过远程过程调用(Remote Procedure Call,RPC)进行通信以提供完整的功能。容器是打包代码及其所有依赖关系的软件的标准单元,因此应用可以从一个计算环境快速可靠地运行到另一个计算环境。容器化的微服务架构使松散耦合的应用的每个模块易于维护,并且对于动态服务量更具弹性。容器化微服务架构得益于其高可维护性的优势,已成为应用部署的主流策略。容器化微服务被公司普遍用于提供各种内部应用和公共服务。
当前,用于容器化微服务的许多安全增强机制为每个容器制定规则和策略来控制每个容器的访问、资源和行为,或者为整个微服务系统建立一个统一的模型来跟踪系统中的所有微服务。随着微服务系统包含的微服务的越来越多,这两种方法显示出了不足之处,具体地,对于大型微服务系统而言,为每个容器制定规则和策略是困难的且增加了系统的负载,而为整个微服务系统建立一个统一的模型来跟踪微服务是费时、易出错且不易维护和更新的。
发明内容
本公开提供了用于微服务系统的异常检测方法及其装置和电子设备以及非暂时性计算机可读存储介质。
根据本公开的一方面,提供了一种用于微服务系统的异常检测方法,所述方法包括:从微服务链集合中生成一个或多个微服务链模式;预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;以及基于所预测的微服务的属性,检测所述微服务系统中的异常,其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
根据本公开的另一方面,一种用于微服务系统的异常检测装置,所述装置包括:链模式挖掘模块:从微服务链集合中生成一个或多个微服务链模式;属性预测模块:预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;和异常检测模块:基于所预测的微服务的属性来检测所述微服务系统中的异常,其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
根据本公开的又一方面,一种用于微服务系统的异常检测的电子设备,所述电子设备包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器运行时使所述处理器执行以下操作:从微服务链集合中生成一个或多个微服务链模式;预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;以及基于所预测的微服务的属性,检测所述微服务系统中的异常,其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
根据本公开的再一方面,一种非暂时性计算机可读介质,其上存储有计算机程序产品,所述计算机程序产品包括用于执行以下操作:从微服务链集合中生成一个或多个微服务链模式;预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;以及基于所预测的微服务的属性,检测所述微服务系统中的异常,其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
如以下将详细描述的,本公开提出了用于微服务系统的异常检测方法,其是一个两阶段(two-phase)框架,和传统的为每个容器制定规则和策略来控制每个容器的访问、资源和行为,或者为整个微服务系统建立一个统一的模型来跟踪系统中的微服务的安全机制相比,根据本公开的实施例的用于微服务系统的异常检测方法及其装置和电子设备以及非暂时性计算机可读存储介质从微服务链集合中生成一个或多个微服务链模式,然后对所生成的微服务链模式中的关键链模式建立独立的模型以预测其中的微服务的属性,并根据预测的结果来自动报告微服务系统的异常点,从而实现了微服务系统中的异常的自动检测,并且由于是对微服务系统中的链模式而非整个微服务系统进行建模,因而其是省时、不易出错且易于维护和更新的。
应该理解,前面的一般描述和下面的详细描述两者都是示例性的,并且旨在提供要求保护的技术的进一步说明,而不旨在限制本公开的技术构思。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同的附图标记表示相同的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1示出了微服务系统的示例性总体架构;
图2示出了根据本公开的一些实施例的用于微服务系统的异常检测方法的示意流程图;
图3示出了根据本公开的一些实施例的微服务系统中的示例微服务链;
图4进一步示出了根据本公开的一些实施例的用于微服务系统的异常检测方法中的预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性的示例流程图;
图5进一步示出了根据本公开的一些实施例的用于微服务系统的异常检测方法中的基于所预测的微服务的属性来检测微服务系统中的异常的示例流程图;
图6示出了根据本公开的一些实施例的用于微服务系统的异常检测方法的另一示意流程图;
图7进一步示出了根据本公开的一些实施例的用于微服务系统的异常检测方法中的从微服务链集合中移除在不同的微服务链模式中重复出现的子链的示例流程图;
图8A是通过根据本公开的一些实施例的方法获得的RPC链模式内的单独的RPC的数量的直方图;
图8B是通过在包括所有RPC链的大图内寻找连接的组件而找到的RPC链模式内的单独的RPC的数量的直方图;
图9示出了根据本公开的一些实施例的选择的RPC的通信量预测;
图10A是使用根据本公开的一些实施例的用于微服务系统的异常检测方法来检测批量注册的结果图;
图10B是使用根据本公开的一些实施例的用于微服务系统的异常检测方法来检测账户破解的结果图;
图11是根据本公开的一些实施例的用于微服务系统的异常检测装置的示意图;
图12是根据本公开的一些实施例的用于微服务系统的异常检测装置的另一示意图;
图13是根据本公开的一些实施例的用于微服务系统的异常检测的电子设备的示意图;
图14是根据本公开的一些实施例的用于微服务系统的异常检测的电子设备的另一示意图;以及
图15是根据本公开的一些实施例的用于微服务系统的异常检测的非暂时性计算机可读存储介质的示意图。
具体实施方式
如上所述,传统的用于容器化微服务的安全增强机制有两种:(1)为微服务系统中的每个容器制定规则和策略来控制每个容器的访问、资源和行为,或者(2)为整个微服务系统建立一个统一的模型来跟踪系统中的微服务。关于前述两种用于微服务系统的安全机制存在以下缺点。第一种方法需要为微服务系统中的每个容器手动制定规则和策略,这对于具有成千上万的微服务的系统是不可行的。第二种方法为整个微服务系统建立一个统一的模型,这对于大型微服务系统而言是非常耗时、容易出错且难以更新的。
基于上述问题而提出了本公开,本公开的发明人在研究了微服务系统的运行之后发现,如果微服务系统中的微服务被滥用或恶意使用,则该微服务的属性会发生不寻常变化。例如,由于微服务部署在不同的容器和机器中,因此它们需要通过远程过程调用(RPC)进行通信以提供完整的功能。一旦某些容器遭到破坏,或者恶意用户滥用了提供的公共API(Application Programming Interface,应用程序接口),RPC通信量就会发生不寻常的变化。
为此,本公开所公开的技术通过预测微服务系统中的微服务的属性来检测微服务系统中的异常,从而不需要为每个容器或微服务指定策略和规则。
本公开的发明人在进一步分析了现实世界RPC数据之后,发现用一个统一的模型来对RPC数据进行建模的主要挑战是系统中存在大量单独的RPC。如果建立一个统一的模型来同时跟踪所有RPC,那将是非常耗时、容易出错且难以更新的。但是,事实是并非所有的RPC都是相互关联的。通常,一个RPC仅依赖RPC链中的一小组RPC来完成目标功能。因此,为不同的RPC组建立独立的模型是一个好主意。
基于上述发现,本公开提出了用于微服务系统的异常检测方法及其装置和电子设备以及非暂时性计算机可读存储介质。就实现而言,根据本公开的一些实施例的异常检测方法是一个两阶段的机器学习框架,可以被称为INFORMER,用于跟踪每个微服务的属性并自动报告异常点。首先,该框架从微服务链集合中识别微服务链模式(即,微服务链模式挖掘),并为每个链模式(或关键的链模式)建立图。接下来,该框架将微服务系统的异常检测问题作为属性图的时间序列(即,属性矩阵序列)的预测问题来解决。由于该框架建立了多个模型并为每个微服务链模式进行单独的预测,因此是省时、不易出错的,且可以根据任何图中的合法改变有效地进行更新。
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
首先,参考图1,图1示出了微服务系统的示例性总体架构100。图1所示的架构包括服务提供者(110):暴露服务的提供方,服务消费者(120):调用远程服务的服务消费方,和注册服务器(130):服务注册中心和服务发现中心。服务消费者(120)从注册服务器(130)获得服务提供者的注册信息,并根据获得的注册信息远程调用服务提供者(110)提供的服务。微服务是一种将应用分离为多个单独的服务的架构。每个微服务针对应用的小功能独立工作,并位于容器中。应注意,不同的微服务可以存在于相同的容器或不同的容器中,且不同的容器可以位于相同的机器或不同的机器上。此外同一容器可以复制并部署在多台机器上以提供并发性。
在下文中,本公开将结合图2至图7描述根据本公开的实施例的用于微服务系统的异常检测方法。
图2示出了根据本公开的一些实施例的用于微服务系统的异常检测方法的示意流程图。图2所示的方法包括步骤S200、步骤S202和步骤S204。在步骤S200处,从微服务链集合中生成一个或多个微服务链模式,其中微服务链指示微服务系统内的微服务在预定时段内的调用关系(即/或,相互依存关系)。在一些实施例中,可以通过收集具有相同链ID的所有微服务RPC日志并按时间对其进行排序来获得微服务链,其中链ID用于标识微服务属于哪个功能实例。在形式上,微服务链可以示例性地表示为(微服务A->微服务B->微服务C…)。在获得了微服务链集合之后,可以使用例如聚类算法来将微服务链集合聚类为一个或多个微服务链模式。示例性地,在一些实施例中,可以基于两个微服务链之间的距离d,使用基于密度的聚类算法来将微服务链集合聚类为一个或多个微服务链模式,其中两个微服务链之间的距离d指示两个微服务链的相似程度。在一些实施例中,可以通过重叠系数定义两个集合(即,两个微服务链)之间的距离度量来定义两个微服务链之间的距离d,如等式(1)所示:
其中A和B表示微服务链,d(A,B)表示微服务链A和微服务链B之间的距离。应注意,上述等式(1)仅仅是两个微服务链之间的距离d的示例性定义,其他定义或距离表示也是可行的。
替代地,也可以使用分类算法来将微服务链集合分类为一个或多个微服务链模式。微服务链模式是与相对独立的功能相关的微服务的集合。相对独立的功能可以是系统中的各个应用,例如,在一个微服务系统中的购物应用、浏览器应用或即时通讯应用等;或者是一个应用的相对独立的功能,例如,购物应用中的注册功能或添加购物车功能等;或者是应用的功能的更细小的划分,例如购物应用中的注册功能的一部分。
图3示出了根据本公开的一些实施例的微服务系统中的微服务链的示例。在图3中,每个圆圈是一个微服务链模式,其可以是微服务系统中的一个单独的应用(例如,购物应用),或者是一个应用内的相对独立的功能(例如,购物应用内的注册功能),又或者是某个功能的一部分(例如,购物应用内的注册功能的一部分)。实线箭头表示簇(cluster)内的依赖关系,而虚线箭头表示簇间的依赖关系。如图3所示,微服务链模式内的微服务的依赖关系比较大,而各个微服务链模式间的依赖关系比较小。
在从微服务链集合中生成微服务链模式之后,方法可以前进到步骤S202。在步骤S202处,预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性,例如,微服务的通信量,微服务的通信量指示微服务的调用次数,其可以是微服务在某一时刻被调用的次数也可以是在某一时段内被调用的总次数。在一些实施例中,如下面参考图3详细说明的,可以使用神经网络来进行预测。应注意,使用神经网络来预测微服务链模式中的微服务的属性仅仅是示例性的而非限制性的,其他预测模型和算法也是可行的。在预测了微服务的属性之后,方法可以前进到步骤S204。在步骤S204处,基于所预测的微服务的属性,检测所述微服务系统中的异常。
上面结合图2描述的根据本公开的实施例的用于微服务系统的异常检测方法可以从微服务链集合中生成微服务链模式,并对包含较少微服务的微服务链模式进行建模和处理而不是对整个微服务系统进行统一的处理,因此是省时、不易出错且易于更新的。另外,结合图2描述的用于微服务系统的异常检测方法是通过预测微服务链模式中的微服务的属性并基于所预测的属性来检测微服务系统中的异常,因此其可以自动跟踪微服务系统中的微服务的属性并自动报告异常,而不需要为每个微服务手动制定用于异常检测的规则和策略。
图4进一步示出了根据本公开的一些实施例的用于微服务系统的异常检测方法中的预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性的示例流程图。
在图4所示的预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性包括步骤S202_2、步骤S202_4和步骤S202_6。在步骤S202_2处,可以为在步骤S200处所生成的一个或多个微服务链模式中至少一个微服务链模式中的每一个微服务链模式生成微服务链模式静态图。在一些实施例中,步骤S202_2处的为微服务链模式生成微服务链模式静态图可以包括以下步骤:以节点(src,dst)的形式来存储微服务链模式中的元素从而形成微服务集合S,其中src表示微服务调用源,dst表示微服务调用目标;当两个节点V[i]和V[j]相互依赖时,两个节点之间存在一条权重为1的有向边;当两个节点V[i]和V[j]共享相同的src或dst时,两个节点之间存在两条权重为0.5的有向边,其中0<=i<V.len()并且0<=j<V.len(),该过程如算法1所示。
Figure BDA0002264164360000081
在步骤S202_4处,可以为所述至少一个微服务链模式中的每一个微服务链模式生成属性矩阵序列,属性矩阵序列中的每个矩阵Xt是时间步t处的属性矩阵,Xt∈Rn×m,其中n=|V|是节点数(即,微服务链模式中的微服务数),m是属性的数量。
在获得微服务链模式静态图G=<V,E,W>和微服务链模式的属性矩阵序列X:[Xt-s,…,Xt-1]之后,其中V是微服务节点集合,E是边集合,W是加权邻接矩阵,方法前进到步骤S204_6。在步骤S202_6处,基于所生成的微服务链模式静态图和属性矩阵序列,预测微服务链模式内的微服务的属性。
在一些实施例中,可以通过如下方法来预测微服务链模式内的微服务的属性。应用时空图卷积网络来同时学习微服务链模式静态图的空域特征和属性矩阵序列的时域特征。在一些实施例中,时空图卷积网络可以是结合诸如门控循环单元(gated recurrentunit,GRU)的时域单元以从时间序列(即,属性矩阵序列)中学习的图卷积网络(GCN,graphconvolution network)。在一些实施例中,可以利用扩散卷积循环神经网络(DiffusionConvolution Recurrent Neural Network,DCRNN)来对微服务链模式静态图进行建模。DCRNN利用双向扩散卷积来考虑每个节点的上游和下游邻居。双向扩散卷积定义为:
Figure BDA0002264164360000091
其中Θ=[θ1θ2]是滤波器参数,X是属性矩阵,K是扩散步数,W是邻矩阵,DW是W中每行之和的对角矩阵。
将扩散卷积层与GRU结合,可以得到DCGRU,其定义如下:
Figure BDA0002264164360000092
Figure BDA0002264164360000093
Figure BDA0002264164360000094
H(t)=u(t)⊙H(t-1)+(1-u(t))⊙C(t) (等式3)
其中Θ是滤波器参数,X(t)和H(t)是时间步长t的输入和输出。
在DCGRU层之上,DCRNN可以引用seq2seq模型,该模型利用编码器解码器架构来同时预测每个微服务的属性。
在得到了微服务的属性的预测值之后,根据本公开的用于微服务系统的异常检测方法可以基于获得的微服务的预测的属性值来检测微服务系统中的异常。图5示出了基于微服务的预测的属性来检测系统的异常的一个示例流程图。图5所示的异常检测包括步骤S204_2和步骤S204_4。在步骤S204_2处,可以将所预测的属性与阈值进行比较,然后在步骤S204_4处响应于所预测的属性大于阈值,确定微服务系统中存在异常。
在一些实施例中,可以手动设置用于异常检测的阈值。在另一些实施例中,可以在假设观测与通过模型来近似的实际模型之间的噪声满足正态分布的前提下,自动设置阈值。示例性地,在一些实施例中,可以通过如下步骤来自动设置用于异常检测的阈值:
根据预测计算测试误差的期望μ和标准差σ;
将时间步t的预测值的上阈值和下阈值分别设置为
Figure BDA0002264164360000101
Figure BDA0002264164360000102
其中
Figure BDA0002264164360000103
分别是
Figure BDA0002264164360000104
中的每个条目的期望值矩阵和标准差矩阵,其中Xt是时间步t的观察值矩阵,
Figure BDA0002264164360000105
是时间步t的预测值矩阵。
替代地,在另一些实施例中,在步骤S204_2处,可以计算所预测的属性在两个时间步之间的增量,然后将增量与阈值进行比较。之后在步骤S204_4处响应于增量大于阈值,确定微服务系统中存在异常。
上面结合图4和图5详细描述了根据本公开的一些实施例的用于微服务系统的异常检测方法。结合图4和图5描述的用于微服务系统的异常检测方法为每个链模式(或感兴趣的链模式)构建了链模式静态图和属性矩阵序列,并通过时空卷积图来同时提取微服务链模式静态图的空域特征和属性矩阵序列的时域特征,从而可以对微服务链模式进行良好的建模,使得更准确地预测微服务的属性。应注意,在上面描述的用于预测微服务的属性的神经网络仅仅是示例性的而非限制性的。
上面结合图4和图5描述的用于微服务系统的异常检测方法使用神经网络来预测微服务链模式中的微服务的属性。关于神经网络,本公开的发明人注意到,传统的神经网络的训练和使用是分离的,即一旦完成了神经网络的训练,其就不会再改变,这是因为传统的神经网络大多用于处理相对固定的模型,例如图像,因而训练后的神经网络不需要修改。然后对于微服务系统而言,这样的神经网络可能不是最佳的,因为微服务系统中的微服务上线下线的节奏很快。因此,对迭代完的微服务重新画像升级模型有助于预测的准确性。基于此,本公开所公开的技术在神经网络的使用过程中,重新训练神经网络。即,在神经网络的使用过程中动态调整神经网络。
具体的,在使用神经网络来预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性时,可以基于从微服务系统中收集的数据,定期(例如,每晚12:00点)训练神经网络。替代地,神经网络可以响应于重新训练请求而被重新训练。重新训练请求可以例如是由于新的微服务上线而发出的。
另外,本公开的发明人注意到不同的微服务链模式Si和Sj可能包含相同的微服务链,即存在如下的微服务链:
Figure BDA0002264164360000111
使得d(Ci,Cl)=d(Cj,Cl)=0,从而使得两个微服务链模式被合并到一个簇里,其中,Ci和Cj是分别属于微服务链模式Si和Sj的两个微服务链,d(Ci,Cl)和d(Cj,Cl)可以根据等式(1)计算。为了消除共享的微服务链的影响,防止将所有的微服务链聚类到一个链模式里。在从微服务链集合中生成一个或多个微服务链模式之前,可以从微服务链集合中移除在不同的微服务链模式中重复出现的子链,如图6步骤S300所示。
图7进一步示出了根据本公开的一些实施例的用于微服务系统的异常检测方法中的从微服务链集合中移除在不同的微服务链模式中重复出现的子链的示例流程图。如图7所示,从微服务链集合中移除在不同的微服务链模式中重复出现的子链包括步骤S300_2和步骤S300_4。在步骤S300_2处,根据上述等式(1)计算微服务链集合中的每两个微服务链之间的距离d。之后,方法前进到步骤S300_4,在步骤S300_4处,响应于所计算的距离d=0;从所述微服务链集合中移除两个微服务链中的较小的一个微服务链。最后每个微服务链模式是每个簇中的所有微服务链的并集。该过程如算法2所示。
Figure BDA0002264164360000121
和结合图2至图5描述的用于微服务系统的异常检测方法相比,上面结合图6和图7描述的用于微服务系统的异常检测方法在对收集的微服务链集合进行聚类之前,从微服务链集合中移除了不同的微服务链模式中包含的相同的微服务链,从而消除了共享的微服务链的影响,可以防止将所有的微服务链聚类到一个链模式里。
上面结合图2至图7详细描述了根据本公开的一些实施例的用于微服务系统的异常检测方法。为了全面且透彻地理解本公开,在下文中,本公开将给出一个使用根据本公开的一些实施例的用于微服务系统的异常检测方法来检测微服务系统中的异常的示例。在该示例中,微服务的要预测的属性是微服务的通信量,微服务链用RPC链来表示。应注意,该示例仅仅是为了本领域普通技术人员更清楚的理解本公开而不对本公开的范围和技术构思进行任何限制。
为了更清楚的说明该示例,本公开提供如下定义以防止上下文混淆。
·RPC:在不同的容器中的两个方法之间进行RPC或远程过程调用以共同提供功能。通常,本公开使每个容器位于(逻辑上)不同的机器上。应注意,同一容器内可以有多种方法。可以考虑在两种方法之间进行的细粒度RPC,或者在两个容器之间进行的粗粒度RPC,这取决于具体要求和计算资源。此外,同一容器可以复制并部署在多台机器上以提供并发性,因此本公开还可以考虑在两对(方法、容器、机器)之间进行的更细粒度的RPC。
·RPC通信量:在该示例中,RPC通信量是在固定时段内调用RPC的次数。
·RPC日志:系统将记录每个RPC,这是原始RPC日志。每个日志的字段包括源方法/容器、目标方法/容器和时间戳。RPC日志还包含链ID字段,链ID用于标识RPC属于哪个功能实例。
·RPC链:功能通常需要一组RPC。这些RPC可以形成调用依赖关系链,其可以被称为RPC链。通过收集具有相同链ID的所有RPC日志并按时间对其进行排序,可以获得RPC链(即,微服务链)。RPC链对于相同的功能可能会有所不同,具体取决于实时条件。在该示例中,每个模型都将基于RPC链模式(即,微服务链模式)建立,其包含该功能可能需要的所有RPC。
·RPC图:静态RPC图Gstatic=<V,E,W>是根据一组相关RPC建立的图,其中V是节点集合,E是边集合,W是加权邻接矩阵。时域RPC图Gt=<Gstatic,Xt>是具有时间步t处的属性矩阵Xt的静态RPC图(即,属性矩阵序列)。
该示例的实验配置如下:
数据集
在该示例中需要2个数据集,RPC链集合和属性矩阵序列。该示例在24小时内均匀地采样了104个RPC链ID,然后将其用于查找RPC链。在实验中,使用如上所述的算法2将这些RPC链聚类为链模式之后,本公开选择了具有51个与用户服务相关的RPC的RPC链模式。
属性矩阵是从日志中生成的,这些日志是来自现实Kubernetes系统的均匀且实时采样的原始RPC日志。由于海量数据通信量,该示例仅采样了原始日志的一小部分。具体来说,该示例生成了时间间隔γ=20(分钟)的数据点,每个间隔内大约有700万行采样的原始RPC日志。
该示例连续采样两周,得到一个具有60/20×24×7×2=1008个数据点的数据集,该示例将数据集的80%设置为训练集,其余的设置为验证/测试集。由于通信量的大小在0到105之间变化,因此该示例在训练过程中采用了RPC通信量的对数以减少数据波动并在评估中取幂。
模型
该示例使用了两个模型,他们分别是:
DBSCAN:如算法2中所述,该示例使用DBSCAN聚类算法来获得链模式。DBSCAN的参数如下:簇内的最小点数min_pts=1,邻居搜索半径eps=0.05。
DCRNN:DCRNN模型具有两层DCGRU,DCGRU具有双向扩散卷积。每个DCGRU具有64个RNN单元。最大扩散步长K=2,模型将在5个未来时间步中预测属性矩阵。其他一些训练参数如下:使用Adam优化器,学习率=0.01,学习率衰减比=0.1,最大时期(epoch)=100且提前停止。
环境
该示例在Intel Xeon E5-2630v4 CPU上的Python3.7+Tensorflow 1.13和NVIDIATESLA V100 GPU上运行。
实验过程:
使用DBSCAN模型根据算法2来将RPC链集合聚类为RPC链模式;
使用算法1来生成RPC链模式的RPC静态图;
使用DCRNN来处理RPC静态图和属性矩阵序列,从而进行训练和测试。
性能评估
RPC链挖掘
为了评估根据本公开的一些实施例的微服务链模式挖掘的性能。在该实例中,本公开将根据本公开的实施例的聚类和一个简单的策略进行比较,该简单的策略是通过算法1构建一个包含104个RPC链内的所有RPC的并集的大图,然后通过在大图内查找连接的组件来查找RPC链模式。最后,每个连接的组件是一个RPC链模式。
图8A和图8B的直方图显示了每个RPC链模式中单独的RPC的数量,其中,图8A是通过根据本公开的一些实施例的方法获得的PRC链模式内的单独的PRC的数量的直方图;图8B是通过在包括所有RPC链的大图内寻找连接的组件而找到的RPC链模式内的单独的RPC的数量的直方图。由于许多RPC单独且独立地工作,因此可以看到,通过这两种方法获得的大多数RPC链模式都包含单个(single)RPC。此外,从图8A可以看到,通过DBSCAN聚类获得的所有链模式都有数十到数百个单独的RPC。然而,在图8B中,有一个主要的链模式,其包含4000多个RPC,其余的链模式都是微小的RPC链模式。
这是合理的,因为许多RPC链模式都包含RPC的相同子集,因此肯定存在主要的连接组件,其包含图中的大部分RPC,从而会引起构建本公开希望规避的大型统一的模型的情况。相反,通过应用聚类策略,可以找到具有更小的规模的更细粒度的RPC链模式,从而使得模型更轻便灵活。
RPC通信量检测
表1显示了该示例选择的RPC链模式的经训练的模型的性能。本公开通过以下三种不同的指标来量化模型的预测性能:
·平均绝对误差
·平均绝对百分比误差
Figure BDA0002264164360000152
·均方根误差
Figure BDA0002264164360000153
从表1可以看到,该模型可以对未来的五个时间步做出很好的预测,同时第一个预测的性能最佳。
表1未来5步预测的模型性能
Figure BDA0002264164360000154
图9显示了未来两天随机选择的RPC的预测,可以看到尽管通信量具有周期性变化趋势,但没有通用模式。然而,尽管现实世界数据中存在噪声,但是可以看到根据本公开的实施例的模型可以用平滑的预测曲线很好地捕捉RPC通信量的变化趋势,这表明该模型确实能够基于对过去时间步的观察进行预测。
案例研究
为了证明本公开提出的模型在异常检测中的有效性,本公开进行了案例研究,旨在检测一些现实世界中的恶意场景。
案例研究1:批量注册。
bot帐户的批量注册是在现实世界中的应用中常见的非法行为。这些bot帐户将用于黑市的其他黑客服务,从伪造的追随者到骗局。应用的维护者需要在注册之前尽快检测到bot帐户。
在这种情况下,本公开将重点放在用于执行人机验证的RPC上,这是帐户注册的必需步骤。每个注册至少需要一个人机验证RPC。当恶意用户进行批量注册时,此RPC的通信量将大大增加。
案例研究2:帐户破解
帐户破解是恶意用户滥用公共API的另一种情况。目前,大多数应用都支持经由手机通过短信服务(Short Message Service,SMS)找回与手机号码绑定的被忘记的帐户。用户输入服务发送的正确验证码后,他们将被验证为合法用户。
在这种情况下,本公开将重点放在将请求发送到SMS服务器的RPC上,如果恶意用户想要暴力破解帐户,他们必须在短时间内发送大量请求。
图10A和图10B显示了这两个案例研究的结果,其中每个上限阈值都是根据(取幂后的)MAE的均值μ和标准偏差σ计算的,该计算方式如上所述。从图10A可以看到,在RPC通信量的两个显着增量处存在三个异常点,第一个是在时间步18处,另外两个在时间步71和时间步72处。类似地,从图10B可以看到在时间步15和时间步50处有两个异常点。在手动检查了这些时间段内的原始RPC日志之后,发现所有这些点都是异常的,或者至少某些用户做出了不规则的行为。这表明根据本公开的实施例的用于微服务系统的异常检测方法可以很好的检测微服务系统中的异常。
目前为止,已经结合图2至图7描述了根据本公开的实施例的用于微服务系统的异常检测方法,并结合表1、图8A至图10B描述了根据本公开的实施例的用于微服务系统的异常检测方法的性能。从结合图8A至图10B的描述中可以看出,根据本公开的实施例的用于微服务系统的异常检测方法可以很好的从收集的微服务链集合中生成细粒度的微服务链模式,并很好的预测微服务的属性以及检测微服务系统中的异常。
下面,本公开将结合图11至图15来描述根据本公开的实施例的用于微服务系统的异常检测装置、电子设备和非暂时性计算机可读存储介质。
图11是根据本公开的一些实施例的用于微服务系统的异常检测装置1100的示意图。如图11所示,根据本公开的一些实施例的用于微服务系统的异常检测装置1100可以包括链模式挖掘模块1110、属性预测模块1120和异常检测模块1130。其中,链模式挖掘模块1110用于从微服务链集合中生成一个或多个微服务链模式,属性预测模块1120用于预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性,异常检测模块1130用于基于所预测的微服务的属性来检测微服务系统中的异常,其中,微服务链指示微服务系统内的微服务在预定时段内的调用关系。替代地或另外地,图11所示的链模式挖掘模块1110、属性预测模块1120和异常检测模块1130还可以执行上面结合图2至图7描述的根据本公开的实施例的用于微服务系统的异常检测方法。
图12是根据本公开的一些实施例的用于微服务系统的异常检测装置1200的示意图。如图12所示,根据本公开的一些实施例的用于微服务系统的异常检测装置1200除了包括与图11所示的异常检测装置1100中包括的链模式挖掘模块1110、属性预测模块1120和异常检测模块1130类似的链模式挖掘模块1210、属性预测模块1220和异常检测模块1230之外,图12所示的装置1200还可以包括训练模块1240。其中,图12所示的装置1200中的链模式挖掘模块1210、属性预测模块1220和异常检测模块1230和图11所示的链模式挖掘模块1110、属性预测模块1120和异常检测模块1130执行的操作类似,为了简便,此处省略其详细描述。图12所示的装置1200中的训练模块1240用于在神经网络的使用期间重新训练神经网络。
图13是根据本公开的一些实施例的用于微服务系统的异常检测的电子设备1300的示意图。如图13所示,根据本公开的实施例的用于微服务系统的异常检测的电子设备1300可以包括处理器1310和存储器1320,该存储器1320上存储有计算机程序指令,该计算机程序指令在由该处理器1310加载并运行时,使该处理器1310执行上面结合图2至图7描述的根据本公开的实施例的用于微服务系统的异常检测方法。
图14是根据本公开的一些实施例的用于微服务系统的异常检测的电子设备1400的另一示意图。图14示出了适于用来实施根据本公开的实施例的用于微服务系统的异常检测的电子设备1400的结构示意图。电子设备1400可以是云平台或服务器等。应注意,图14示出的用于微服务系统的异常检测的电子设备仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图14所示,电子设备1400可以包括处理装置(例如中央处理器、图形处理器等)1410,其可以根据存储在只读存储器(ROM)1420中的程序或者从存储装置1480加载到随机访问存储器(RAM)1430中的程序而执行各种适当的动作和处理。在RAM 1430中,还存储有电子设备1400操作所需的各种程序和数据。处理装置1410、ROM 1420以及RAM 1430通过总线1440彼此相连。输入/输出(I/O)接口1450也连接至总线1440。
通常,以下装置可以连接至I/O接口1450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1470;包括例如磁带、硬盘等的存储装置1480;以及通信装置1490。通信装置1490可以允许电子设备1400与其他电子设备进行无线或有线通信以交换数据。虽然图14示出了具有各种装置的电子设备1400,但应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1490从网络上被下载和安装,或者从存储装置1480安装,或者从ROM 1420安装。在该计算机程序被处理装置1410执行时,执行本公开实施例的方法中限定的上述功能。
图15是根据本公开的一些实施例的用于微服务系统的异常检测的非暂时性计算机可读存储介质1500的示意图。如图15所示,根据本公开的实施例的用于微服务系统的异常检测的非暂时性计算机可读存储介质1500上存储有计算机程序指令1510,计算机程序指令1510在由处理器加载并运行时,使该处理器执行上面结合图2至图7描述的用于微服务系统的异常检测方法。
在上文中,结合图2至图7、图11至图15描述了根据本公开的实施例的用于微服务系统的异常检测方法、装置、电子设备和非暂时性计算机可读存储介质,并且结合表1、图8A至图10B描述了根据本公开的实施例的用于微服务系统的异常检测方法的性能。从上面的描述可以看出,根据本公开的实施例的用于微服务系统的异常检测方法可以从微服务链集合中生成细粒度的微服务链模式,并对包含较少微服务的微服务链模式进行建模而不是对整个微服务系统建立统一的模型,因此是省时、不易出错且易于更新的。在一些实施例中,根据本公开的实施例的用于微服务系统的异常检测方法在将微服务链集合聚类为微服务链模式之前,还从微服务链集合中移除了在不同的微服务链模式中重复出现的子链,从而消除了共享的微服务链的影响,避免了所有的微服务被聚类到一个模式里。此外,根据本公开的实施例的用于微服务系统的异常检测方法可以自动跟踪微服务系统中的微服务的属性并自动报告异常,因而不需要为每个微服务手动制定用于异常检测的规则和策略。另外,在使用神经网络来预测微服务的属性时,本公开提出的技术还可以重新训练神经网络,使得神经网络模型能够更好的匹配快速变化的微服务链模式,增加了预测的准确性。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者非暂时性计算机可读存储介质或者是上述两者的任意组合。非暂时性计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非暂时性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,非暂时性计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是非暂时性计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,至少提供了如下用于微服务系统的异常检测方法、装置、电子设备和非暂时性计算机存储介质。
根据本公开的一个或多个实施例的用于微服务系统的异常检测方法,所述方法包括:从微服务链集合中生成一个或多个微服务链模式;预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;以及基于所预测的微服务的属性,检测所述微服务系统中的异常,其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
根据本公开的一个或多个实施例的用于微服务系统的异常检测的方法,其中,从微服务链集合中生成一个或多个微服务链模式包括:基于两个微服务链之间的距离d,使用基于密度的聚类算法来从所述微服务链集合中生成一个或多个微服务链模式,其中,所述两个微服务链之间的距离d指示所述两个微服务链的相似程度。
根据本公开的一个或多个实施例的用于微服务系统的异常检测的方法,其中所述两个微服务链之间的距离d通过如下等式计算:
Figure BDA0002264164360000221
其中A和B表示微服务链,d(A,B)表示微服务链A和微服务链B之间的距离。
根据本公开的一个或多个实施例的用于微服务系统的异常检测的方法,还包括:在从微服务链集合中生成一个或多个微服务链模式之前,从所述微服务链集合中移除在不同的微服务链模式中重复出现的子链。
根据本公开的一个或多个实施例的用于微服务系统的异常检测的方法,其中,从所述微服务链集合中移除在不同的微服务链模式中重复出现的子链包括:计算所述微服务链集合中的每两个微服务链之间的距离d,响应于所计算的距离d=0;从所述微服务链集合中移除两个微服务链中的较小的一个微服务链。
根据本公开的一个或多个实施例的用于微服务系统的异常检测方法,其中,预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性包括:为所述至少一个微服务链模式中的每一个微服务链模式生成微服务链模式静态图;为所述至少一个微服务链模式中的每一个微服务链模式生成属性矩阵序列;基于所生成的微服务链模式静态图和属性矩阵序列,预测微服务链模式内的微服务的属性。
根据本公开的一个或多个实施例的用于微服务系统的异常检测方法,其中,为所述至少一个微服务链模式中的每一个微服务链模式生成微服务链模式静态图包括:以节点(src,dst)的形式存储微服务链模式中的元素;当两个节点相互依赖时,两个节点之间存在一条权重为1的有向边;当两个节点共享相同的src或dst时,两个节点之间存在两条权重为0.5的有向边,其中src表示微服务调用源,dst表示微服务调用目标。
根据本公开的一个或多个实施例的用于微服务系统的异常检测方法,其中,基于所预测的微服务的属性来检测所述微服务系统中的异常包括:将所预测的属性与阈值进行比较,响应于所预测的属性大于所述阈值,确定所述微服务系统中存在异常。
根据本公开的一个或多个实施例的用于微服务系统的异常检测方法,其中所述阈值是使用测试数据通过如下步骤而被自动设置的:根据预测计算测试误差的期望μ和标准差σ;将时间步t的预测值的上阈值和下阈值分别设置为
Figure BDA0002264164360000231
其中分别是
Figure BDA0002264164360000234
中的每个条目的期望值矩阵和标准差矩阵,其中Xt是时间步t的观察值矩阵,是时间步t的预测值矩阵。
根据本公开的一个或多个实施例的用于微服务系统的异常检测方法,其中,预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性包括:使用神经网络来预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性,其中所述神经网络在使用期间被重新训练。
根据本公开的一个或多个实施例的用于微服务系统的异常检测方法,其中所述属性包括通信量,所述通信量指示所述微服务的调用次数。
根据本公开的一个或多个实施例的用于微服务系统的异常检测装置,所述装置包括:链模式挖掘模块:从微服务链集合中生成一个或多个微服务链模式;属性预测模块:预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;和异常检测模块:基于所预测的微服务的属性来检测所述微服务系统中的异常,其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
根据本公开的一个或多个实施例的用于微服务系统的异常检测装置,其中所述属性预测模块使用神经网络来预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性。
根据本公开的一个或多个实施例的用于微服务系统的异常检测装置,还包括:训练模块:在所述神经网络的使用期间重新训练所述神经网络。
根据本公开的一个或多个实施例的用于微服务系统的异常检测的电子设备,所述电子设备包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器运行时使所述处理器实施如上所述的根据本公开的实施例的用于微服务系统的异常检测方法。
根据本公开的一个或多个实施例的用于微服务系统的异常检测非暂时性计算机可读介质,其上存储有计算机程序产品,所述计算机程序产品包括用于执行如上所述的根据本公开的实施例的用于微服务系统的异常检测方法的程序代码。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (16)

1.一种用于微服务系统的异常检测方法,所述方法包括:
从微服务链集合中生成一个或多个微服务链模式;
预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;以及
基于所预测的微服务的属性,检测所述微服务系统中的异常,
其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
2.如权利要求1所述的方法,其中,从微服务链集合中生成一个或多个微服务链模式包括:
基于两个微服务链之间的距离d,使用基于密度的聚类算法来从所述微服务链集合中生成一个或多个微服务链模式,
其中,所述两个微服务链之间的距离d指示所述两个微服务链的相似程度。
3.如权利要求2所述的方法,其中所述两个微服务链之间的距离d通过如下等式计算:
其中A和B表示微服务链,d(A,B)表示微服务链A和微服务链B之间的距离。
4.如权利要求2或3所述的方法,还包括:
在从微服务链集合中生成一个或多个微服务链模式之前,从所述微服务链集合中移除在不同的微服务链模式中重复出现的子链。
5.如权利要求4所述的方法,其中,从所述微服务链集合中移除在不同的微服务链模式中重复出现的子链包括:
计算所述微服务链集合中的每两个微服务链之间的距离d,以及
响应于所计算的距离d=0,从所述微服务链集合中移除两个微服务链中的较小的一个微服务链。
6.如权利要求1至5中的任一项所述的方法,其中,预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性包括:
为所述至少一个微服务链模式中的每一个微服务链模式生成微服务链模式静态图;
为所述至少一个微服务链模式中的每一个微服务链模式生成属性矩阵序列;
基于所生成的微服务链模式静态图和属性矩阵序列,预测微服务链模式内的微服务的属性。
7.如权利要求6所述的方法,其中,为所述至少一个微服务链模式中的每一个微服务链模式生成微服务链模式静态图包括:
以节点(src,dst)的形式存储微服务链模式中的元素;
当两个节点相互依赖时,两个节点之间存在一条权重为1的有向边;
当两个节点共享相同的src或dst时,两个节点之间存在两条权重为0.5的有向边,
其中src表示微服务调用源,dst表示微服务调用目标。
8.如权利要求1至7中任一项所述的方法,其中,基于所预测的微服务的属性来检测所述微服务系统中的异常包括:
将所预测的属性与阈值进行比较,
响应于所预测的属性大于所述阈值,确定所述微服务系统中存在异常。
9.如权利要求8所述的方法,其中所述阈值是使用测试数据通过如下步骤而被自动设置的:
根据预测计算测试误差的期望μ和标准差σ;
将时间步t的预测值的上阈值和下阈值分别设置为
Figure FDA0002264164350000021
Figure FDA0002264164350000022
其中
Figure FDA0002264164350000023
分别是
Figure FDA0002264164350000024
中的每个条目的期望值矩阵和标准差矩阵,其中Xt是时间步t的观察值矩阵,
Figure FDA0002264164350000025
是时间步t的预测值矩阵。
10.如权利要求1至9中任一项所述的方法,其中,预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性包括:
使用神经网络来预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性,
其中所述神经网络在使用期间被重新训练。
11.如权利要求1至10中任一项所述的方法,其中所述属性包括通信量,所述通信量指示所述微服务的调用次数。
12.一种用于微服务系统的异常检测装置,所述装置包括:
链模式挖掘模块:从微服务链集合中生成一个或多个微服务链模式;
属性预测模块:预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性;和
异常检测模块:基于所预测的微服务的属性来检测所述微服务系统中的异常,
其中,所述微服务链指示所述微服务系统内的微服务在预定时段内的调用关系。
13.如权利要求12所述的装置,其中
所述属性预测模块使用神经网络来预测所生成的一个或多个微服务链模式中的至少一个微服务链模式内的微服务的属性。
14.如权利要求13所述的装置,还包括:
训练模块:在所述神经网络的使用期间重新训练所述神经网络。
15.一种用于微服务系统的异常检测的电子设备,所述电子设备包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器运行时使所述处理器实施如权利要求1至11中任一项所述的方法。
16.一种非暂时性计算机可读介质,其上存储有计算机程序产品,所述计算机程序产品包括用于执行如权利要求1至11中任一项所述的方法的程序代码。
CN201911081696.4A 2019-11-07 2019-11-07 用于微服务系统的异常检测方法及其装置和电子设备 Active CN110825589B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911081696.4A CN110825589B (zh) 2019-11-07 2019-11-07 用于微服务系统的异常检测方法及其装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911081696.4A CN110825589B (zh) 2019-11-07 2019-11-07 用于微服务系统的异常检测方法及其装置和电子设备

Publications (2)

Publication Number Publication Date
CN110825589A true CN110825589A (zh) 2020-02-21
CN110825589B CN110825589B (zh) 2024-01-05

Family

ID=69553171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911081696.4A Active CN110825589B (zh) 2019-11-07 2019-11-07 用于微服务系统的异常检测方法及其装置和电子设备

Country Status (1)

Country Link
CN (1) CN110825589B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111934903A (zh) * 2020-06-28 2020-11-13 上海伽易信息技术有限公司 一种基于时序演化基因的Docker容器故障智能预测方法
CN112540749A (zh) * 2020-11-16 2021-03-23 南方电网数字电网研究院有限公司 微服务划分方法、装置、计算机设备和可读存储介质
CN113946438A (zh) * 2021-09-03 2022-01-18 西安电子科技大学 基于容器整合的在线迁移调度方法、装置、设备和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180039565A1 (en) * 2016-08-05 2018-02-08 International Business Machines Corporation Automated test input generation for integration testing of microservice-based web applications
US20180331905A1 (en) * 2017-05-11 2018-11-15 Nirmata, Inc. Method and system for tuning performance of microservices-based applications
US20180349121A1 (en) * 2017-05-30 2018-12-06 International Business Machines Corporation Dynamic deployment of an application based on micro-services
CN109213616A (zh) * 2018-09-25 2019-01-15 江苏润和软件股份有限公司 一种基于调用图分析的微服务软件系统异常检测方法
CN109818776A (zh) * 2018-12-17 2019-05-28 视联动力信息技术股份有限公司 微服务模块异常定位方法和装置
CN109933452A (zh) * 2019-03-22 2019-06-25 中国科学院软件研究所 一种面向异常传播的微服务智能监测方法
CN109961204A (zh) * 2017-12-26 2019-07-02 中国移动通信集团浙江有限公司 一种微服务架构下业务质量分析方法和系统
CN110362494A (zh) * 2019-07-18 2019-10-22 腾讯科技(深圳)有限公司 微服务状态信息展示的方法、模型训练方法以及相关装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180039565A1 (en) * 2016-08-05 2018-02-08 International Business Machines Corporation Automated test input generation for integration testing of microservice-based web applications
US20180331905A1 (en) * 2017-05-11 2018-11-15 Nirmata, Inc. Method and system for tuning performance of microservices-based applications
US20180349121A1 (en) * 2017-05-30 2018-12-06 International Business Machines Corporation Dynamic deployment of an application based on micro-services
CN109961204A (zh) * 2017-12-26 2019-07-02 中国移动通信集团浙江有限公司 一种微服务架构下业务质量分析方法和系统
CN109213616A (zh) * 2018-09-25 2019-01-15 江苏润和软件股份有限公司 一种基于调用图分析的微服务软件系统异常检测方法
CN109818776A (zh) * 2018-12-17 2019-05-28 视联动力信息技术股份有限公司 微服务模块异常定位方法和装置
CN109933452A (zh) * 2019-03-22 2019-06-25 中国科学院软件研究所 一种面向异常传播的微服务智能监测方法
CN110362494A (zh) * 2019-07-18 2019-10-22 腾讯科技(深圳)有限公司 微服务状态信息展示的方法、模型训练方法以及相关装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111934903A (zh) * 2020-06-28 2020-11-13 上海伽易信息技术有限公司 一种基于时序演化基因的Docker容器故障智能预测方法
CN111934903B (zh) * 2020-06-28 2023-12-12 上海伽易信息技术有限公司 一种基于时序演化基因的Docker容器故障智能预测方法
CN112540749A (zh) * 2020-11-16 2021-03-23 南方电网数字电网研究院有限公司 微服务划分方法、装置、计算机设备和可读存储介质
CN112540749B (zh) * 2020-11-16 2023-10-24 南方电网数字平台科技(广东)有限公司 微服务划分方法、装置、计算机设备和可读存储介质
CN113946438A (zh) * 2021-09-03 2022-01-18 西安电子科技大学 基于容器整合的在线迁移调度方法、装置、设备和系统
CN113946438B (zh) * 2021-09-03 2024-04-30 西安电子科技大学 基于容器整合的在线迁移调度方法、装置、设备和系统

Also Published As

Publication number Publication date
CN110825589B (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
CN110782042B (zh) 横向联邦和纵向联邦联合方法、装置、设备及介质
US10360517B2 (en) Distributed hyperparameter tuning system for machine learning
US20190141079A1 (en) Systems and methods for sharing, distributing, or accessing security data and/or security applications, models, or analytics
CN108197652B (zh) 用于生成信息的方法和装置
CN110825589B (zh) 用于微服务系统的异常检测方法及其装置和电子设备
CN110457175B (zh) 业务数据处理方法、装置、电子设备及介质
CN110287316A (zh) 一种告警分类方法、装置、电子设备及存储介质
US20210090182A1 (en) Tensor-based predictions from analysis of time-varying graphs
Chen et al. Informer: Irregular traffic detection for containerized microservices RPC in the real world
CN113221163B (zh) 一种训练模型的方法及系统
Washizaki et al. Software engineering patterns for machine learning applications (sep4mla) part 2
Liu et al. Multi-step attack scenarios mining based on neural network and Bayesian network attack graph
CN115237804A (zh) 性能瓶颈的评估方法、装置、电子设备、介质和程序产品
WO2023160446A1 (zh) 恶意网址识别方法、装置、存储介质及电子设备
CN111709784B (zh) 用于生成用户留存时间的方法、装置、设备和介质
CN113762972A (zh) 数据存储控制方法及装置、电子设备、存储介质
CN113128773A (zh) 地址预测模型的训练方法、地址预测方法及装置
CN114826707B (zh) 处理用户威胁的方法、装置、电子设备和计算机可读介质
CN116501993B (zh) 房源数据推荐方法及装置
US20240106848A1 (en) Visualization technology for finding anomalous patterns
US20240098106A1 (en) Generating models for detection of anomalous patterns
CN114237856A (zh) 运算类型识别方法、装置、电子设备及存储介质
CN116319386A (zh) 可用性及故障预测方法、装置、电子设备和介质
CN117216540A (zh) 模型训练方法、装置、计算机设备、存储介质及产品
CN117610933A (zh) 异常检测方法、装置、电子设备和可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant