当前位置: 首页 > 专利查询>复旦大学专利>正文

一种分布式系统调用链和日志融合异常检测方法技术方案

技术编号:32968807 阅读:16 留言:0更新日期:2022-04-09 11:30
本发明专利技术属于软件工程与云计算技术领域,具体为一种分布式系统调用链和日志融合异常检测方法。本发明专利技术基于分布式系统运行时调用链和日志数据,根据调用链和日志数据构建调用链事件关系图,并利用图神经网络和单分类深度学习方法学习系统正常运行时的调用链事件关系图模式,在线使用时实时检测新产生的调用链事件关系图,并识别产生异常行为的调用链;具体包括:日志事件解析、调用链事件解析、事件向量化、调用链事件关系图构建、图神经网络模型训练、在线异常检测;本发明专利技术可以帮助运维人员及开发人员快速发现系统异常,产生对应告警信息,加快故障定位和线上问题解决的速度、降低人工成本。人工成本。人工成本。

【技术实现步骤摘要】
一种分布式系统调用链和日志融合异常检测方法


[0001]本专利技术属于软件工程与云计算
,具体涉及一种分布式系统调用链和日志异常检测方法。

技术介绍

[0002]分布式系统将应用程序分解为多个独立的模块,每个模块具有单独的进程和运行环境,进程间通过网络进行通信。由分布式系统发展来的微服务架构已成为云原生技术的重要组成部分,微服务基于细粒度的功能划分以及分布式运行环境,使应用可以独立开发、独立部署、灵活伸缩,大部分企业已采用分布式或微服务架构实现应用。
[0003]异常检测是系统运行时监控的重要组成部分,快速准确的异常检测与发现可以帮助系统快速发现问题,避免故障传播导致严重后果。当单体系统异常时,开发人员可以通过日志或指标监控发现异常。分布式系统存在跨进程交互,使得传统的日志异常检测技术效果不佳。而分布式追踪的出现使的运维和开发人员可以观察分布式系统的跨进程交互模式,但分布式追踪系统关注于进程间的交互行为,日志和分布式追踪难以有效结合使的分布式系统异常检测遇到极大困难。

技术实现思路

[0004]本专利技术的目的在于提供一种能够快速检测分布式系统异常运行行为的基于图神经网络的分布式系统调用链和日志融合异常检测方法。
[0005]本专利技术使用分布式系统运行时的调用链和日志数据,构建调用链事件关系图,用于描述分布式系统中系统调用与运行日志间的关系;本专利技术通过收集历史数据,训练基于图神经网络的单分类异常检测模型,部署至线上系统后,可以实时检测异常调用链,快速发现系统问题。
[0006]本专利技术主要包括六个部分:日志事件解析、调用链事件解析、事件向量化、调用链事件关系图构建、图神经网络模型训练、在线异常检测。具体步骤如下:
[0007](1)日志事件解析。日志事件是指程序运行时打印的日志语句代表的系统事件。一条日志语句通常由固定部分(日志模板)和变量部分组成,本步骤解析原始日志数据并使用日志模板代表不同的日志事件。具体包括以下子步骤:
[0008]1)通过分布式日志采集工具采集系统运行时日志。
[0009]2)使用日志模板解析算法(Drain)对日志数据进行解析,获取每条日志对应的日志模板作为事件描述。
[0010]3)抽取每条日志对应的traceID和spanID,并与每条日志关联。
[0011](2)调用链事件解析。调用链事件是指分布式系统跨进程调用时产生的事件,如客户端发出同步调用请求、服务端接收同步调用请求、生产者生产异步调用消息、消费者消费异步调用消息等。本步骤解析原始调用链数据,并将原始数据分为不同类型的调用链事件。具体包括以下子步骤:
[0012]1)解析Client/Server类型的每条span数据为请求事件和响应事件,并以“span类型(Client/Server)事件名称(Request/Response)span名称”作为事件描述,解析获得ClientRequest/Server Request/Client Response/Server Response四种类型事件。同时记录事件发生时间,请求事件的发生时间即为该条span的开始时间,响应事件的发生事件即为该条span的结束时间。
[0013]2)解析Producer/Consumer类型的每条span数据为生产者事件和消费者事件,并以“span类型(Producer/Consumerspan名称)”作为事件描述,解析获得Producer/Consumer两种事件类型。同时记录事件发生时间,生产者事件的发生时间为Producer类型span的开始时间,消费者事件的发生时间为Consumer类型span的开始时间。
[0014](3)事件向量化。事件向量化是指将日志事件和调用链事件映射到一个向量空间并以向量表示,从而使深度学习模型可以处理,并能反应事件本身的语义信息。具体包括以下子步骤:
[0015]1)事件描述预处理。去除事件描述中的停用词和非字符符号,并将组合词进行拆分。
[0016]2)词嵌入。使用词嵌入模型将事件描述中的每个单词映射到同一个向量空间并以向量表示。
[0017]3)句子嵌入。通过每个事件描述中所有的单词向量计算该事件描述对应的向量。使用TF

IDF对单词向量进行加权组合,出现较少的单词具有较高的权重,得到句子向量。
[0018](4)构建调用链事件关系图。调用链事件关系图对分布式系统运行时的系统调用和日志打印行为进行关联,其目的是描述分布式系统的运行行为状态。原始数据包括运行时系统调用链数据和各个分布式软件或服务的运行日志数据。调用链事件关系图,包括日志事件节点、调用链事件节点两种节点;节点之间的关系包括顺序关系、同步调用关系、同步响应关系、异步调用关系,对应于图中的边。一个典型的调用链事件关系图样例如图1所示。调用链事件关系图的构建包括以下子步骤:
[0019]1)链接日志事件。对于一个调用链中的每一个span,获取属于这个span的所有日志事件。将这些日志事件根据时间戳排序,并在每一个日志事件与下一个日志事件间添加一条顺序关系的边。
[0020]2)插入span事件。对于一个调用链中的每一个span,获取属于该span的所有调用链事件。将其中的每个调用链事件根据发生时间插入日志事件序列中,并与其紧邻的事件添加一条顺序关系的边。
[0021]3)连接span。对于一个调用链中的所有span,根据其父span关系连接调用链事件关系。对于Client/Server类型的span,对其中的ServerRequest类型的事件,从其父span的ClientRequest类型的事件连一条同步调用关系的边指向该事件。对其中的ServerResponse类型的事件,从该事件连一条同步响应关系的边指向其父span的ClientResponse类型的事件。对于Producer/Consumer类型的span,对其中的Consumer类型的事件,从其父span的Producer类型的事件连一条异步调用关系的边指向该事件。
[0022](5)基于图神经网络的异常检测模型训练。将系统正常运行时产生的调用链事件关系图数据输入图神经网络以训练单分类异常检测模型。本专利技术使用门控图神经网络(GGNN)和深度支持向量数据描述(DeepSVDD)进行异常检测模型训练;包括:将训练数据输
入门控图神经网络得到向量表示;根据节点向量表示,使用软注意力机制计算得到每个调用链事件关系图的向量表示h
g
;使用深度支持向量数据描述训练异常检测模型;使用深度支持向量数据描述使门控图神经网络学习到有效的图向量表示,使绝大部分训练数据向量表示处于同一个超球面内,从而正确的反应正常调用链事件的关系;
[0023]异常检测模型训练具体包括以下子步骤:
[0024]1)将训练数据输入门控图神经网络得到向量表示。使用门控图神经网络依次处理每个调用链事件关系图,基于信息传播得到每个调用链事件关系图中每一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于图神经网络的分布式系统调用链和日志融合异常检测方法,其特征在于,使用分布式系统运行时的调用链和日志数据,构建调用链事件关系图,用于描述分布式系统中系统调用与运行日志间的关系;通过收集历史数据,训练基于图神经网络的单分类异常检测模型;将经过训练的异常检测模型部署至线上系统,即可以实时检测异常调用链,快速发现系统问题;具体步骤为:(1)解析日志事件日志事件是指程序运行时打印的日志语句代表的系统事件;一条日志语句由固定部分即日志模板和变量部分组成;解析日志事件,即解析原始日志数据,并使用日志模板代表不同的日志事件;(2)解析调用链事件调用链事件是指分布式系统跨进程调用时产生的事件,包括客户端发出同步调用请求、服务端接收同步调用请求、生产者生产异步调用消息、消费者消费异步调用消息;解析调用链事件,即解析原始调用链数据,并将原始数据分为不同类型的调用链事件;(3)事件向量化事件向量化是将日志事件和调用链事件映射到一个向量空间,并以向量表示,从而使深度学习模型可以处理,并能反应事件本身的语义信息;(4)构造调用链事件关系图调用链事件关系图对分布式系统运行时的系统调用和日志打印行为进行关联,用于描述分布式系统的运行行为状态;原始数据包括运行时系统调用链数据和各个分布式软件或服务的运行日志数据;调用链事件关系图,包括日志事件节点、调用链事件节点两种节点;节点之间的关系包括顺序关系、同步调用关系、同步响应关系、异步调用关系,对应于图中的边;(5)训练图神经网络模型将系统正常运行时产生的调用链事件关系图数据输入图神经网络以训练单分类异常检测模型;包括:将训练数据输入门控图神经网络得到向量表示;根据节点向量表示,使用软注意力机制计算得到每个调用链事件关系图的向量表示h
g
;使用深度支持向量数据描述训练异常检测模型;使用深度支持向量数据描述使门控图神经网络学习到有效的图向量表示,使绝大部分训练数据向量表示处于同一个超球面内,从而正确的反应正常调用链事件的关系;记该超球面中心为c,半径为R;(6)在线异常检测将训练完成的模型部署在系统中,每当有新调用链产生,依次执行步骤(1)

(4)获得对应的调用链事件关系图,将图输入异常检测模型中得到该图的向量表示;使用该向量计算该点距离超球面的距离作为异常分数,具体的计算公式如下:若该点位于超球面以内,即ans(h
g
)<0,则认为该调用链为正常调用链;若该点位于超球面以外,即ans(h
g
)>0,则认为该调用链发生了异常,系统会产生告警,提醒运维人员;同时基于步骤(5)中的软注意力机制,系统将异常调用链事件图可视化,并将具有高注意力分数的节点标注为深色。
2.根据权利要求1所述的基于图神经网络的分布式系统调用链和日志融合异常检测方法,其特征在于,步骤(1)所述解析日志事件具体包括以下子步骤:1)通过分布式日志采集工具采集系统运行时日志;2)使用日志模板解析算法对日志数据进行解析,获取每条日志对应的日志模板作为事件描述;3)抽取每条日志对应的traceID和spanID,并与每条日志关联。3.根据权利要求2所述的基于图神经网络的分布式系统调用链和日志融合异常检测方法,其特征在于,步骤(2)所述解析调用链事件具体包括以下子步骤:1)解析Client/Server类型的每条span数据为请求事件和响应事件,并以“span类型(Client/Server)事件名称(Request/Response)span名称”作为事件描述,解析获得ClientRequest/Server Request/Client Response/Server Response四种类型事件;同时记录事件发生时间,请求事件的发生时间即为该条span的开始时间,响应事件的发生事件即...

【专利技术属性】
技术研发人员:彭鑫张晨曦
申请(专利权)人:复旦大学
类型:发明
国别省市:

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

1