【技术实现步骤摘要】
一种分布式系统调用链和日志融合异常检测方法
[0001]本专利技术属于软件工程与云计算
,具体涉及一种分布式系统调用链和日志异常检测方法。
技术介绍
[0002]分布式系统将应用程序分解为多个独立的模块,每个模块具有单独的进程和运行环境,进程间通过网络进行通信。由分布式系统发展来的微服务架构已成为云原生技术的重要组成部分,微服务基于细粒度的功能划分以及分布式运行环境,使应用可以独立开发、独立部署、灵活伸缩,大部分企业已采用分布式或微服务架构实现应用。
[0003]异常检测是系统运行时监控的重要组成部分,快速准确的异常检测与发现可以帮助系统快速发现问题,避免故障传播导致严重后果。当单体系统异常时,开发人员可以通过日志或指标监控发现异常。分布式系统存在跨进程交互,使得传统的日志异常检测技术效果不佳。而分布式追踪的出现使的运维和开发人员可以观察分布式系统的跨进程交互模式,但分布式追踪系统关注于进程间的交互行为,日志和分布式追踪难以有效结合使的分布式系统异常检测遇到极大困难。
技术实现思路
[0004]本专利技术的目的在于提供一种能够快速检测分布式系统异常运行行为的基于图神经网络的分布式系统调用链和日志融合异常检测方法。
[0005]本专利技术使用分布式系统运行时的调用链和日志数据,构建调用链事件关系图,用于描述分布式系统中系统调用与运行日志间的关系;本专利技术通过收集历史数据,训练基于图神经网络的单分类异常检测模型,部署至线上系统后,可以实时检测异常调用链,快速发现系统问题。
...
【技术保护点】
【技术特征摘要】
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的开始时间,响应事件的发生事件即...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。