1.本发明涉及网络安全技术领域,主要是一种基于图神经网络的运维系统异常检测方法。
背景技术:2.it分析系统中通常可以根据各类运行指标的历史情况,判定某一设备是否出现了异常。例如,流量忽然变大、变小之类。也有很多的人工智能算法被引入到异常分析过程中来。但是当前的方法会把设备孤立分析,没有考虑到当某一设备运转异常的时候,它相连设备可能也是异常的问题。
技术实现要素:3.本发明的目的在于克服现有技术存在的不足,而提供一种基于图神经网络的运维系统异常检测方法。
4.本发明的目的是通过如下技术方案来完成的。一种基于图神经网络的运维系统异常检测方法,该方法包括以下步骤:
5.(1)、提取运维系统中各个设备的监控特征,并基于监控特征建立运维系统的无向图,无向图中每一个节点代表一个设备;
6.(2)、提取运维系统中各个设备的运行状态特征,作为对应节点的节点属性;
7.(3)、根据无向图和节点属性构建运维系统的属性关系图;
8.(4)、将生成的运维系统的属性关系图输入图神经网络模型,通过图神经网络模型进行训练,通过已训练的图神经网络模型获得运维系统的异常行为检测分类结果;
9.(5)、获取待分类的运维系统的属性关系图,并输入已训练的图神经网络模型,识别运维系统的异常行为。
10.更进一步的,步骤(1)中,提取运维系统中各个设备的监控特征,具体方法为:提取各个设备的指标数据,指标数据包括磁盘空间、磁盘占用率、cpu占用率、内存占用率、防火墙开启状态、端口使用状况、启动项和数据库使用情况;将上述指标数据按时间周期进行记录,获得监控特征。
11.更进一步的,步骤(2)中,提取运维系统中各个设备的运行状态特征,具体方法为:提取各个设备的运行状态数据,运行状态数据包括各个设备的网络流量数据、每秒查询率qps和网络流量数据偏峰值,其中网络流量数据包括接收的网络流量数据量、发送的网络流量数据量、接收的网络数据包总量、发送的网络数据包总量、丢弃的网络数据包数量和错误的网络数据包数量;将上述运行状态数据按时间周期进行记录,获得运行状态特征。
12.更进一步的,步骤(3)中,根据无向图和节点属性构建运维系统的属性关系图g,g=(v,e,x),其中v表示运维系统中各个设备节点集合,v={vm},m=1,2,
…
,n,其中m表示节点,n表示节点数量,vm表示节点为m的设备;e表示基于设备的监控特征构建的无向边集合,e={e
ij
},i,j=1,2,
…
,n,e
ij
表示节点i和节点j的无向边,若vi和vj有关联,则e
ij
=1,否则
为0,vi表示节点为i的设备,vj表示节点为j的设备;x表示节点属性集合,x={xm},m=1,2,
…
,n,xm表示节点m的运行状态特征。
13.更进一步的,构建属于关系图,具体包括步骤如下:
14.(1)、计算vi与其余节点的相似度,构建相似度矩阵s;
[0015][0016]
其中s
ij
表示节点i和节点j的相似度,s
11
=s
22
…
=s
nn
=1;
[0017]
(2)、根据相似度矩阵s,得到邻接矩阵a;
[0018][0019]
其中a
ij
表示邻接矩阵中节点i和节点j的相似度,a
11
=a
22
…
=a
nn
=1;
[0020]
(3)、计算运行状态特征中各节点的网络流量数据偏峰值um;
[0021]
um=f_m*e
p_m
,m=1,2,
…
,n,其中m表示节点,n表示节点数量,f_m表示节点m网络流量数据的峰度,p_m表示节点m网络流量数据的偏度;
[0022]
(4)、求取所有节点网络流量数据偏峰值的平均值u
avg
;
[0023]
当1≤(u
avg
/ui)/(u
avg
/uj)《1.05或1≤u
avg
/uj)/(u
avg
/ui)≤1.05,或s
ij
》λ时,则修改邻接矩阵a,i≠j时,令a
ij
=a
ji
=1,否则a
ij
=a
ji
=0;i=j时,a
11
=a
22
…
=a
nn
=1;
[0024]
其中,ui表示节点i的网络流量数据偏峰值,uj表示节点j的网络流量数据偏峰值,λ为阈值,a
ji
表示邻接矩阵中节点j和节点i的相似度;
[0025]
(5)、当a
ij
=a
ji
=1时,则表示vi和vj有关联,修改无向边集合e,e
ij
=1。
[0026]
本发明的有益效果为:本发明引入了图神经网络,当判定某一设备是否异常时,不仅考虑当前设备,也考虑其关联设备的特征,并通过算法把当前设备及关联设备的特征进行融合分析,达到更全面的检测准确率。
附图说明
[0027]
图1为本发明的流程示意图。
具体实施方式
[0028]
下面将结合附图对本发明做详细的介绍:
[0029]
如图1所示,一种基于图神经网络的运维系统异常检测方法,该方法包括以下步骤:
[0030]
(1)、提取运维系统中各个设备的监控特征,并基于监控特征建立运维系统的无向图,无向图中每一个节点代表一个设备;
[0031]
提取运维系统中各个设备的监控特征,具体方法为:提取各个设备的指标数据,指标数据包括磁盘空间、磁盘占用率、cpu占用率、内存占用率、防火墙开启状态、端口使用状况、启动项和数据库使用情况;由于一天之内这些数据会随着业务需求进行波动,因此需将上述指标数据按时间周期进行记录,获得监控特征。
[0032]
本实施例中,我们只用到了其中几个指标,具体的,设备v的监控特征向量可表示为:(diskv_t,diskv,cpuv,romv,wv,portv,sv);
[0033]
其中,diskv_t表示设备磁盘空间,diskxu表示设备v的磁盘占用率,cpuv表示设备v的cpu占用率,romv表示设备v的内存占用率,wv表示设备v是否开启防火墙(1表示开启,0表示没有),portv表示设备v打开的端口的数量,sv表示设备v的启动项的数量。
[0034]
(2)、提取运维系统中各个设备的运行状态特征,作为对应节点的节点属性,具体方法为:
[0035]
提取各个设备的运行状态数据,运行状态数据包括各个设备的网络流量数据、每秒查询率qps和网络流量数据偏峰值,其中网络流量数据包括接收的网络流量数据量、发送的网络流量数据量、接收的网络数据包总量、发送的网络数据包总量、丢弃的网络数据包数量和错误的网络数据包数量;由于一天之内这些数据会随着业务需求进行波动,因此需将上述运行状态数据按一小时为周期进行记录,获得运行状态特征。
[0036]
本实施例中,我们只用到了其中几个指标,具体的,设备v的运行状态特征向量可表示为:(r_v,s_v,rp_v,sp_v,l_v,wr_v,qps_v,u_v)
[0037]
其中,r_v表示设备接收的网络流量数据量,s_v表示设备v发送的网络流量数据量,rp_v表示设备v发送的网络数据包总量,sp_v接收的网络数据包总量,l_v表示设备v丢弃的数据包的总量,wr_v表示设备v错误的数据包的总量,qps_v表示设备v在一小时内的每秒查询率的平均值,u_v表示设备v中网络流量数据偏峰值。
[0038]
u_v=um=f_m*e
p_m
,m=1,2,
…
,n,其中m表示节点,n表示节点数量,f_m表示节点m网络流量数据的峰度,p_m表示节点m网络流量数据的偏度。
[0039]
(3)、根据无向图和节点属性构建运维系统的属性关系图g;
[0040]
g=(v,e,x),其中v表示运维系统中各个设备节点集合,v={vm},m=1,2,
…
,n,其中m表示节点,n表示节点数量,vm表示节点为m的设备;e表示基于设备的监控特征构建的无向边集合,e={e
ij
},i,j=1,2,
…
,n,e
ij
表示节点i和节点j的无向边,若vi和vj有关联,则e
ij
=1,否则为0,vi表示节点为i的设备,vj表示节点为j的设备;x表示节点属性集合,x={xm},m=1,2,
…
,n,xm表示节点m的运行状态特征;
[0041]
具体包括步骤如下:
[0042]
(3.1)、将运维系统中的每一个设备的监控特征和运行状态特征,视为一个节点vi,采用heat kernel算法计算vi与其余节点的相似度,可定义为节点间的相似度。为每一个节点计算它与其余节点的相似度,构建相似度矩阵s;
[0043][0044]
其中s
ij
表示节点i和节点j的相似度,s
11
=s
22
…
=s
nn
=1;
[0045]
(3.2)、根据相似度矩阵s,得到邻接矩阵a;
[0046][0047]
其中a
ij
表示邻接矩阵中节点i和节点j的相似度,a
11
=a
22
…
=a
nn
=1;
[0048]
(3.3)、计算运行状态特征中各节点的网络流量数据偏峰值um;
[0049]
um=f_m*e
p_m
,m=1,2,
…
,n,其中m表示节点,n表示节点数量,f_m表示节点m网络流量数据的峰度,p_m表示节点m网络流量数据的偏度;
[0050]
(3.4)、求取所有节点网络流量数据偏峰值的平均值u
avg
;
[0051]
当1≤(u
avg
/ui)/(u
avg
/uj)《1.05或1≤(u
avg
/uj)/(u
avg
/ui)≤1.05,或s
ij
》λ时,则修改邻接矩阵a,i≠j时,令a
ij
=a
ji
=1,否则a
ij
=a
ji
=0;i=j时,a
11
=a
22
…
=a
nn
=1;
[0052]
其中,ui表示节点i的网络流量数据偏峰值,uj表示节点j的网络流量数据偏峰值,a
ji
表示邻接矩阵中节点j和节点i的相似度;λ为阈值,这个阈值可以由人工事先规定,也可以通过小批量样本训练得到。
[0053]
(3.5)、当a
ij
=a
ji
=1时,则表示vi和vj有关联,修改无向边集合e,e
ij
=1,即更新无向边集合e。本发明核心就是e的确定,通过算法把当前设备及关联设备的特征进行融合分析,能够充分的整合节点的信息,通过聚合节点自身的特征和关联节点特征来获得新的节点表示。
[0054]
(4)、将生成的运维系统的属性关系图g输入图神经网络模型,通过图神经网络模型进行训练,通过已训练的图神经网络模型获得运维系统的异常行为检测分类结果;在本发明一些实施例中,所采用的图神经网络模型可以是图卷积神经网络(gcn)、graphsage和图注意力网络(gat)等现有的神经网络模型,也可以是新出现的适用于本发明的其他图神经网络模型。模型的输入可表示为[标签,节点编号,设备监控特征,运行状态特征],输出并保存训练好的模型。
[0055]
(5)、获取待分类(未知设备)的运维系统的属性关系图,并输入已训练好的图神经网络模型,识别运维系统的异常行为,即判断运维系统各个设备的异常状态。
[0056]
可以理解的是,对本领域技术人员来说,对本发明的技术方案及发明构思加以等同替换或改变都应属于本发明所附的权利要求的保护范围。
技术特征:1.一种基于图神经网络的运维系统异常检测方法,其特征在于:该方法包括以下步骤:(1)、提取运维系统中各个设备的监控特征,并基于监控特征建立运维系统的无向图,无向图中每一个节点代表一个设备;(2)、提取运维系统中各个设备的运行状态特征,作为对应节点的节点属性;(3)、根据无向图和节点属性构建运维系统的属性关系图;(4)、将生成的运维系统的属性关系图输入图神经网络模型,通过图神经网络模型进行训练,通过已训练的图神经网络模型获得运维系统的异常行为检测分类结果;(5)、获取待分类的运维系统的属性关系图,并输入已训练的图神经网络模型,识别运维系统的异常行为。2.根据权利要求1所述的基于图神经网络的运维系统异常检测方法,其特征在于:步骤(1)中,提取运维系统中各个设备的监控特征,具体方法为:提取各个设备的指标数据,指标数据包括磁盘空间、磁盘占用率、cpu占用率、内存占用率、防火墙开启状态、端口使用状况、启动项和数据库使用情况;将上述指标数据按时间周期进行记录,获得监控特征。3.根据权利要求2所述的基于图神经网络的运维系统异常检测方法,其特征在于:步骤(2)中,提取运维系统中各个设备的运行状态特征,具体方法为:提取各个设备的运行状态数据,运行状态数据包括各个设备的网络流量数据、每秒查询率qps和网络流量数据偏峰值,其中网络流量数据包括接收的网络流量数据量、发送的网络流量数据量、接收的网络数据包总量、发送的网络数据包总量、丢弃的网络数据包数量和错误的网络数据包数量;将上述运行状态数据按时间周期进行记录,获得运行状态特征。4.根据权利要求3所述的基于图神经网络的运维系统异常检测方法,其特征在于:步骤(3)中,根据无向图和节点属性构建运维系统的属性关系图g,g=(v,e,x),其中v表示运维系统中各个设备节点集合,v={v
m
},m=1,2,
…
,n,其中m表示节点,n表示节点数量,v
m
表示节点为m的设备;e表示基于设备的监控特征构建的无向边集合,e={e
ij
},i,j=1,2,
…
,n,e
ij
表示节点i和节点j的无向边,若v
i
和v
j
有关联,则e
ij
=1,否则为0,v
i
表示节点为i的设备,v
j
表示节点为j的设备;x表示节点属性集合,x={x
m
},m=1,2,
…
,n,x
m
表示节点m的运行状态特征。5.根据权利要求4所述的基于图神经网络的运维系统异常检测方法,其特征在于:包括步骤如下:(5.1)、计算v
i
与其余节点的相似度,构建相似度矩阵s;其中d
ij
表示节点i和节点j的相似度,s
11
=s
22
…
=s
nn
=1;(5.2)、根据相似度矩阵s,得到邻接矩阵a;其中s
ij
表示邻接矩阵中节点i和节点j的相似度,a
11
=a
22
…
=a
nn
=1;(5.3)、计算运行状态特征中各节点的网络流量数据偏峰值u
m
;
u
m
=f_m*e
p_m
,m=1,2,
…
,n,其中m表示节点,n表示节点数量,f_m表示节点m网络流量数据的峰度,p_m表示节点m网络流量数据的偏度;(5.4)、求取所有节点网络流量数据偏峰值的平均值u
avg
;当1≤(u
avg
/u
i
)/(u
avg
/u
j
)<1.05或1≤(u
avg
/u
j
)/(u
avg
/u
i
)≤1.05,或s
ij
>λ时,则修改邻接矩阵a,i≠j时,令a
ij
=a
ji
=1,否则a
ij
=a
ji
=0;i=j时,a
11
=a
22
…
=a
nn
=1;其中,u
i
表示节点i的网络流量数据偏峰值,u
j
表示节点j的网络流量数据偏峰值,λ为阈值,a
ji
表示邻接矩阵中节点j和节点i的相似度;(5.5)、当a
ij
=a
ji
=1时,则表示v
i
和v
j
有关联,修改无向边集合e,e
ij
=1。
技术总结本发明提供了一种基于图神经网络的运维系统异常检测方法,包括以下步骤:提取运维系统中各个设备的监控特征,并基于监控特征建立运维系统的无向图;提取运维系统中各个设备的运行状态特征,作为对应节点的节点属性;根据无向图和节点属性构建运维系统的属性关系图;将生成的运维系统的属性关系图输入图神经网络模型,通过图神经网络模型进行训练;获取待分类的运维系统的属性关系图,并输入已训练的图神经网络模型,识别运维系统的异常行为。本发明的有益效果为:本发明引入了图神经网络,当判定某一设备是否异常时,不仅考虑当前设备,也考虑其关联设备的特征,并通过算法把当前设备及关联设备的特征进行融合分析,达到更全面的检测准确率。全面的检测准确率。全面的检测准确率。
技术研发人员:刘东海 徐育毅 庞辉富
受保护的技术使用者:杭州优云软件有限公司
技术研发日:2022.07.26
技术公布日:2022/11/1