带层次网络结构的业务系统层次组织结构发现方法转让专利

申请号 : CN201910407940.5

文献号 : CN110287987A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林友芳武志昊万怀宇韩升董兴业王晶张硕

申请人 : 北京交通大学

摘要 :

本发明涉及大型数据中心运维技术领域,尤其涉及一种带层次网络结构的业务系统层次组织结构发现方法。该方法利用日志大数据建立了一种自动化集群发现、分层的方法,可以用来自动绘制复杂业务系统的业务架构图,从而提高运维效率和系统架构信息的时效性。该方法构建的业务系统架构图可以真实反映业务系统在服务器上的运行的业务逻辑关系,辅助运维人员管理。且本发明的输入仅需要数据中心的服务器日志数据,能够自动发现复杂业务系统的业务架构图,不仅结果准确,而且无须过多人操作,节省了大量人力、物力开支。

权利要求 :

1.一种带层次网络结构的业务系统层次组织结构发现方法,其特征在于,该方法包括以下步骤:S1从大型数据中心采集到的服务器日志数据中提取出服务器节点属性数据,训练分类器用于判断服务器节点对是否属于相同集群,具体包括以下步骤:S1.1从一段时间段内的大型数据中心服务器日志数据中提取出服务器节点属性数据,该服务器节点属性数据中包括:服务器作为服务端时常用的服务端口列表server_port、服务器上占用CPU最多的10个进程cpu_process、服务器上占用内存最多的10个进程mem_process、服务器作为服务端,服务于其他服务器的数量in_vm、服务器作为客户端,访问其他服务器的数量out_vm、服务器作为服务端,服务端口的数量in_port、服务器作为客户端,访问端口的数量out_port,以及部分已知服务器节点的分类信息;

S1.2将部分已知服务器节点分类信息的服务器两两之间相互组合,根据两台服务器节点分类信息是否相同,标定服务器节点对是否属于相同集群的0/1标签;

S1.3将全部服务器节点属性信息两两之间相互组合,构建服务器节点对相似度特征,针对类别型服务器节点属性,计算节点对相似度similattr(vi,vj)的公式如下:其中,category={server_port,cpu_process,mem_process},vi,vj是任意两台服务器节点,i,j分别表示服务器节点编号,i,j=1,2,…,N,N表示服务器节点个数;针对数值型服务器节点属性,计算节点对差异度diffattr(vi,vj)的公式如下:其中,numerical={in_vm,out_vm,in_port,out_port};

S1.4运用逻辑回归模型进行服务器节点对是否属于相同集群的二分类训练,设数据集合D={Xg,Yg},g=1,…,C,C表示数据样本数量,输入变量为Xg={x1,x2,x3,…,xc},Yg={y1,y2,y3,…,yc},Yg∈{0,1},逻辑回归公式如下:其中,Xg表示第g个输入变量,代表服务器节点对相似度特征,Yg表示第g个输出变量,代表服务器节点对是否属于相同集群的标签, 表示对输入变量进行简化的转换函数,x表示输入变量,ω表示输入变量权重;

S2从大型数据中心采集到的服务器日志数据中提取服务器TCP连接数据,基于连接模式计算服务器节点对相似度,具体包括以下步骤:S2.1从一段时间段内的大型数据中心服务器日志数据中提取出服务器TCP连接数据,将服务器当做节点,TCP连接当做边,构建服务器TCP连接网络拓扑图,进而得到网络的邻接矩阵;

S2.2基于网络的邻接矩阵,从出链和入链两个角度计算任意一对服务器节点对之间的相似度;

其中,出链角度体现了服务器作为客户端时在交互行为上表现的相似度,计算公式如下:

其中,A是N行、N列的网络邻接矩阵,k表示邻接服务器节点;

入链角度体现了服务器作为服务端时在交互行为上表现的相似度,计算公式如下:

S3基于S1从服务器节点属性计算得到的服务器节点对相似度similattr(vi,vj)和S2针对服务器TCP连接拓扑从出链和入链两个角度计算得到的服务器节点对之间的相似度similout(vi,vj)、similin(vi,vj)构建服务器节点对相似度网络,借助社区发现算法对业务系统进行服务器集群分组发现;

S4基于S3服务器集群分组发现的结果,再基于业务处理的逻辑流程,确定服务器集群在业务系统中的功能层次,具体包括以下步骤:S4.1根据服务器集群之间的入链、出链数,找出业务系统内部的孤立集群,孤立集群定义为集群内服务器与集群外服务器没有TCP连接,将孤立集群的层次Level标记为-1;

S4.2根据服务器集群之间的入链、出链数,找出业务系统内部的根集群,根集群定义为集群内服务器只接受集群外服务器访问请求的TCP连接而不会对集群外服务器发起访问请求的TCP连接的集群,将根集群的层次Level标记为0;

S4.3根据服务器集群之间的访问服务关系确定客户端集群的层次,通过已经确定的服务端集群(Level=h)确定高一层的客户端集群(Level=h+1);

其中,若确定出多个客户端集群,在同层客户端集群中根据访问服务器关系进一步细分出服务端集群和客户端集群;

S4.4以S4.3标记的最高层服务器集群为服务端集群,重复S4.3,直到S3发现的业务系统内部所有服务器集群都完成层次定位;

S5基于S3发现的集群分组以及S4确定的集群层次关系,就能够对带层次网络结构的业务系统的层次组织结构进行发现,从而构建出大型数据中心复杂业务系统架构图。

2.根据权利要求1所述带层次网络结构的业务系统层次组织结构发现方法,其特征在于:S1.4中,输入变量权重ω通过“极大似然法”来估计,公式如下:对L(ω)求关于ω的导数,可得到ω。

说明书 :

带层次网络结构的业务系统层次组织结构发现方法

技术领域

[0001] 本发明涉及大型数据中心运维技术领域,尤其涉及一种带层次网络结构的业务系统层次组织结构发现方法。

背景技术

[0002] 业务系统架构图对于大型数据中心的运维人员来说,就像公司人员组织结构图对于人事管理人员一样重要,是运维人员对业务系统进行全面快速了解、时刻掌控系统架构变更的重要运维手段之一。但近年来随着大数据、云计算、人工智能技术的飞速发展,数据中心的规模也随之爆炸式增长,对于业务系统架构图这种带有层次网络结构的层次组织结构发现问题,不仅需要发现集群分组还需要定位集群在业务系统架构图中的层次位置,而传统的业务系统架构图都是由经验丰富的运维人员手工整理,这样的方式存在很大的缺陷。一方面,人工梳理费时费力;另一方面,一旦发生业务系统架构变更或者出现运维人员工作调动,业务系统架构图无法快速更新,也无法在人员之间快速交接。

发明内容

[0003] 针对上述现有技术存在的不足,本发明提供了一种带层次网络结构的业务系统层次组织结构发现方法,以实现大型数据中心复杂业务系统架构图自动梳理的功能。
[0004] 本发明提供了如下方案,一种带层次网络结构的业务系统层次组织结构发现方法,该方法包括以下步骤:
[0005] S1从大型数据中心采集到的服务器日志数据中提取出服务器节点属性数据,训练分类器用于判断服务器节点对是否属于相同集群,具体包括以下步骤:
[0006] S1.1从一段时间段内(一段时间可以是1天也可以是1周,时间长短可以根据实际应用中系统架构变更频率而定)的大型数据中心服务器日志数据中提取出服务器节点属性数据,该服务器节点属性数据中包括:服务器作为服务端时常用的服务端口列表server_port、服务器上占用CPU最多的10个进程cpu_process、服务器上占用内存最多的10个进程mem_process、服务器作为服务端,服务于其他服务器的数量in_vm、服务器作为客户端,访问其他服务器的数量out_vm、服务器作为服务端,服务端口的数量in_port、服务器作为客户端,访问端口的数量out_port,以及部分已知服务器节点的分类信息等;
[0007] S1.2将部分已知服务器节点分类信息的服务器两两之间相互组合,根据两台服务器节点分类信息是否相同,标定服务器节点对是否属于相同集群的0/1标签;
[0008] S1.3将全部服务器节点属性信息两两之间相互组合,构建服务器节点对相似度特征,针对类别型服务器节点属性,计算节点对相似度similattr(vi,vj)的公式如下:
[0009]
[0010] 其中,category={server_port,cpu_process,mem_process},vi,vj是任意两台服务器节点,i,j分别表示服务器节点编号,i,j=1,2,…,N,N表示服务器节点个数;针对数值型服务器节点属性,计算节点对差异度diffattr(vi,vj)的公式如下:
[0011]
[0012] 其中,numerical={in_vm,out_vm,in_port,out_port};
[0013] S1.4运用逻辑回归模型进行服务器节点对是否属于相同集群的二分类训练,设数据集合D={Xg,Yg},g=1,…,C,C表示数据样本数量,输入变量为Xg={x1,x2,x3,…,xc},Yg={y1,y2,y3,…,yc},Yg∈{0,1},逻辑回归公式如下:
[0014]
[0015] 其中,Xg表示第g个输入变量,代表服务器节点对相似度特征,Yg表示第g个输出变量,代表服务器节点对是否属于相同集群的标签, 表示对输入变量进行简化的转换函数,x表示输入变量。ω表示输入变量权重,通过“极大似然法”来估计,公式如下:
[0016]
[0017] 对L(ω)求关于ω的导数,可得到ω;
[0018] S2从大型数据中心采集到的服务器日志数据中提取服务器TCP连接数据,基于连接模式计算服务器节点对相似度,具体包括以下步骤:
[0019] S2.1从一段时间段内的大型数据中心服务器日志数据中提取出服务器TCP连接数据,将服务器当做节点,TCP连接当做边,构建服务器TCP连接网络拓扑图,进而得到网络的邻接矩阵;
[0020] S2.2基于网络的邻接矩阵,从出链和入链两个角度计算任意一对服务器节点对之间的相似度;
[0021] 其中,出链角度体现了服务器作为客户端时在交互行为上表现的相似度,计算公式如下:
[0022]
[0023] 其中,A是N行,N列的网络邻接矩阵,k表示邻接服务器节点;
[0024] 入链角度体现了服务器作为服务端时在交互行为上表现的相似度,计算公式如下:
[0025]
[0026] S3基于S1从服务器节点属性计算得到的服务器节点对相似度sinilattr(vi,vj)和S2针对服务器TCP连接拓扑从出链和入链两个角度计算得到的服务器节点对之间的相似度similout(vi,vj),similin(vi,vj)构建服务器节点对相似度网络,借助社区发现算法([1]Blondel V D,Guillaume J L,Lambiotte R,et a1.Fast unfolding of communities in large networks[J].Journal of statistical mechanics:theory and experiment,2008,2008(10):P10008.[2]RosvallM,Bergstrom C T.Maps of random walks on complex networks reveal community structure[J].Proceedings of the National Academy of Sciences,2008,105(4):1118-1123.[3]Hartigan J A,Wong M A.Algorithm AS 136:A k-means clustering algorithm[J].Journal of the Royal Statistical Society.Series C(Applied Statistics),1979,28(1):100-108.[4]Donetti L,Munoz M A.Detecting network communities:a new systematic and efficient algorithm[J].Journal of Statistical Mechanics:Theory and Experiment,2004,2004(10):
P10012.)对业务系统进行服务器集群分组发现;
[0027] S4基于S3服务器集群分组发现的结果,再基于业务处理的逻辑流程,确定服务器集群在业务系统中的功能层次,具体包括以下步骤:
[0028] S4.1根据服务器集群之间的入链、出链数,找出业务系统内部的孤立集群,孤立集群定义为集群内服务器与集群外服务器没有TCP连接,将孤立集群的层次Level标记为-1;
[0029] S4.2根据服务器集群之间的入链、出链数,找出业务系统内部的根集群,根集群定义为集群内服务器只接受集群外服务器访问请求的TCP连接而不会对集群外服务器发起访问请求的TCP连接的集群,将根集群的层次Level标记为0;
[0030] S4.3根据服务器集群之间的访问服务关系确定客户端集群的层次,通过已经确定的服务端集群(Level=h)确定高一层的客户端集群(Level=h+1);
[0031] 其中,若确定出多个客户端集群,在同层客户端集群中根据访问服务器关系进一步细分出服务端集群和客户端集群;
[0032] S4.4以S4.3标记的最高层服务器集群为服务端集群,重复S4.3,直到S3发现的业务系统内部所有服务器集群都完成层次定位;
[0033] S5基于S3发现的集群分组以及S4确定的集群层次关系,就能够对带层次网络结构的业务系统的层次组织结构进行发现,从而构建出大型数据中心复杂业务系统架构图。
[0034] 本发明具有以下技术效果:本发明提出的带层次网络结构的业务系统层次组织结构发现方法,能够实现业务系统架构图的自动梳理,有效克服了传统业务系统架构图人工梳理的缺陷,无须耗费大量人力物力财力;无须运维人员对数据中心的复杂业务系统有充分的经验知识;能自动构建复杂业务系统架构图,有效辅助运维人员掌握数据中心的业务系统架构及变化情况。

附图说明

[0035] 图1为本发明提出的带层次网络结构的业务系统层次组织结构发现方法构建业务系统架构图的流程图;
[0036] 图2为本发明最终得到的带层次网络结构的业务系统层次组织结构发现方法构建业务系统架构图。

具体实施方式

[0037] 本发明实施例提出的一种带层次网络结构的业务系统层次组织结构发现方法,来构建业务系统架构图的处理流程包括以下几个步骤:
[0038] S1从大型数据中心采集一段时间内的服务器日志数据,上述一段时间采用7天,实际应用中数据采集时间长度可随具体情况而改变,如业务架构经常变更,则可采集3天或更短时间内的数据。然后从中提取出服务器节点属性数据,利用服务器节点属性信息构建服务器节点对特征,利用服务器节点对特征数据训练分类器,用于判断服务器节点对是否属于相同集群,包括:
[0039] S1.1从大型数据中心采集到的7天(2017-06-01至2017-06-07)服务器日志数据中提取出服务器节点属性数据,该服务器节点属性数据中包括服务器作为服务端时常用的服务端口列表server_port、服务器上占用CPU最多的10个进程cpu_process、服务器上占用内存最多的10个进程mem_process、服务器作为服务端,服务于其他服务器的数量in_vm、服务器作为客户端,访问其他服务器的数量out_vm、服务器作为服务端,服务端口的数量in_port、服务器作为客户端,访问端口的数量out_port,以及部分已知服务器节点的分类信息等。
[0040] 提取出的服务器节点属性数据包括如下的表1所示的字段:
[0041] 表1
[0042]编号 字段名 字段说明
1 Id 自增id
2 machine_name 服务器名称
3 server_port 服务器作为服务端时常用的服务端口列表
4 cpu_process 服务器上占用CPU最多的10个进程
5 mem_process 服务器上占用内存最多的10个进程
6 in_vm 服务器作为服务端,服务于其他服务器的数量
7 out_vm 服务器作为客户端,访问其他服务器的数量
8 m_port 服务器作为服务端,服务端口的数量
9 out_port 服务器作为客户端,访问端口的数量
[0043] S1.2对已知服务器类别的服务器节点对打上标签,根据两台服务器节点分类信息是否相同标定服务器节点对是否属于相同集群的0/1标签,如服务器节点对中的两台服务器类别相同,则标签为0,否则标签为1。
[0044] 服务器类别转分类训练标签示例如表2所示:
[0045] 表2
[0046]服务器1名称 服务器1类别 服务器2名称 服务器2类别 标签
vm-vmw100 apc vm-vmw101 apc 0
vm-vmw200 jbs vm-vmw300 zk 1
[0047] S1.3将所有服务器两两之间相互组合,服务器相对应节点属性结合,根据属性是类别型还是数值型应用不同相似度公式进行转换,从而将两台服务器的各自7个两种类型的属性组合成一对服务器节点对的7种数值型特征,进而构建服务器节点对相似度特征。
[0048] 构建的服务器节点对训练样本数据包括如下的表3所示的字段:
[0049] 表3
[0050]编号 字段名 字段说明
1 machine_name_1 服务器1名称
2 machine_name_2 服务器2名称
3 simil_server_port 服务器节点对在server_port属性上的相似度
4 simil_cpu_process 服务器节点对在cpu_process属性上的相似度
5 simil_mem_process 服务器节点对在mem_process属性上的相似度
6 simil_in_vm 服务器节点对在in_vm属性上的相似度
7 simil_out_vm 服务器节点对在out_vm属性上的相似度
8 simil_in_port 服务器节点对在in_port属性上的相似度
9 simil_out_port 服务器节点对在out_port属性上的相似度
10 label 服务器节点对是否属于相同集群的标签
[0051] S1.4在有label值的数据上运用逻辑回归模型进行服务器节点对是否属于相同集群的二分类训练,逻辑回归模型采用默认参数,由于本数据集中数据分类为2:1,因此设置了类型权重参数class_weight=’balanced’,在实际应用中,模型参数可以根据实际情况进行调整,学习到的分类器在训练集和测试集上的准确率和精度均达到了90%以上。然后可以用分类器对没有label值得数据进行判断。
[0052] S2从S1中采集到的服务器日志数据中提取服务器TCP连接数据,根据相似度公式计算服务器节点对在连接模式上的相似度,包括:
[0053] S2.1从同样7天的大型数据中心服务器日志数据中提取出服务器TCP连接数据,将服务器当做节点,TCP连接当做边构建服务器TCP连接网络拓扑图,进而得到网络的邻接矩阵A。
[0054] 提取出的服务器TCP连接数据包括如下的表4所示的字段:
[0055] 表4
[0056]编号 字段名 字段说明
1 client 发起TCP连接请求的客户端服务器名称
2 server 接受TCP连接请求的服务端服务器名称
[0057] S2.2基于网络邻接矩阵A,应用出链和入链相似度公式计算两个角度的节点相似度,然后将出链和入链相似度相加,得到一对服务器节点对在网络拓扑结构上的相似度。
[0058] S3基于S1从服务器节点属性和S2从服务器TCP连接拓扑两方面计算得到的服务器节点对相似度相加,构建服务器节点对相似度网络,借助社区发现算法对业务系统进行服务器集群发现,社区发现算法可以使用BGLL、Infomap、K-means、谱聚类等,其中BGLL和Infomap可以不指定集群个数,K-means和谱聚类需要指定集群个数,此时可以借助BGLL和Infomap划分出的集群个数作为超参数。
[0059] NMI(Normalized Mutual Information:标准化互信息)、VMI(V-measure:同质性和完整性的谐波均值)、FMI(Fowlkes-Mallows scores:精度和召回率的几何平均值)是三个从不同方面评价社区划分结果好坏的指标,将经过本发明处理后的数据和未处理的数据同时用上述提到的四种社区发现算法进行集群发现,再分别与真实的集群划分结果进行对比,本发明集群分组结果提升百分比如表5所示:
[0060] 表5
[0061]  NMI VMI FMI
BGLL 21.705% 25.88% 42.41%
Infomap 20.58% 22.6% 33.075%
K-means 11.57% 15.875% 18.763%
Spectral 31.02% 32.25% 61.64%
[0062] S4基于S3服务器集群分组发现的结果,再基于业务流势确定服务器集群在业务系统中的功能层次。
[0063] S5基于S3发现的集群分组以及S4确定的集群层次关系构建出大型数据中心复杂业务系统架构图,如图2所示。
[0064] 综上所述,本发明提出的带层次网络结构的业务系统层次组织结构发现方法,利用日志大数据建立了一种自动化集群发现、分层的方法,可以用来自动绘制复杂业务系统的业务架构图,从而提高运维效率和系统架构信息的时效性。
[0065] 本发明构建的业务系统架构图可以真实反映业务系统在服务器上的运行的业务逻辑关系,辅助运维人员管理。且该发明的输入仅需要数据中心的服务器日志数据,本发明能够自动发现复杂业务系统的业务架构图,不仅结果准确,而且无须过多人操作,节省了大量人力、物力开支。