一种基于业务流量智能识别业务链路的分析方法与流程

文档序号:29640536发布日期:2022-04-13 18:20阅读:269来源:国知局
一种基于业务流量智能识别业务链路的分析方法与流程

1.本发明涉及网络运维技术领域,尤其涉及一种基于业务流量智能识别业务链路的分析方法。


背景技术:

2.业务链路又称为业务应用调用链,是具体业务的应用服务之间的调用关系拓扑图,其反应的是业务实际执行路径。为了保障业务系统连续稳定性,对业务链路的监控是必不可少,而识别出业务真实的应用调用链是业务链路监控的核心。而随着开发技术更新迭代,微服务的出现,造成了it系统越来越复杂,随之调用链的识别越发困难。
3.业界对调用链的发现方案是通过apm(全称application performance management tools)的方式,其本质是通过trace id对应用服务进行串联发现应用服务之间的关联关系。如腾讯的tsf微服务监控、阿里的应用服务监控arms、谷歌的dapper均通过类似的方法实现调用链发现和监控。
4.apm最早出现在谷歌公开论文提到谷歌dapper技术介绍,而现有的apm解决方案均是基于此原理上进行演进。其优点:
5.1、谷歌多年实践经验,方案成熟,同时市面上已经有成熟的产品或者解决方案,国内oneapm、听云,国外new relic、appdynamics。
6.2、精准度高,达到方法级别。
7.3、开源成熟,国内skywalking等。
8.但是同样缺点也很明显:
9.1、难以落地,应用服务的trace id需要对系统架构进行微服务架构改造,对于大部分企业数据中心来说这个改造是不现实的,系统架构重构对原有系统风险无法评估,工作量庞大。
10.2、对原应用服务造成影响,要得到trace id,就要对应用服务进行侵入部署(agent侵入),这是高安全要求的行业是不允许的,同时这样势必对应用服务稳定造成影响及对资源有额外消耗,虽然额外消耗不大,但是对于高并发、巨量请求、性能损耗敏感的应用这是致命的。
11.3、部署繁琐、繁重,在实施层面,需要对每一个应用服务进行agent部署,可以想象一个业务系统的应用服务量级巨大;同时环境复杂,有容器、微服务、普通服务,跨多个系统、数据中心。要实调用链的识别,实施上有不可预知的难度。
12.因此,现有技术存在缺陷,需要改进。


技术实现要素:

13.本发明的目的是克服现有技术的不足,提供一种基于业务流量智能识别业务链路的分析方法。
14.本发明的技术方案如下:提供一种基于业务流量智能识别业务链路的分析方法,
包括如下步骤:
15.步骤1:流量平台通过核心交换机、tap交换机镜像流量采集到业务系统的流量;
16.步骤2:对镜像流量进行tcp报文的包头信息进行分析,统计核心流量指标;
17.步骤3:将完成分析的流量数据推送到大数据平台进行存储,提供给其他应用使用;
18.步骤4:通过cmdb平台对业务流量进行筛选;
19.步骤5:算法平台获得业务流量数据和cmdb数据后,以天为单位对数据进行二次处理;
20.步骤6:在经过二次处理的数据中通过有效业务调用链路径模型进行筛选;
21.步骤7:通过采用业务调用链路径甄选模型,在上述筛选出的若干个业务、每个业务的若干条调用链路径中,通过业务调用链甄选模型对每个业务的业务调用链进行甄选,找出真实的业务调用链;
22.步骤8:在模型分析完毕后,算法平台会输出业务调用链的结果,用于运维平台进行验证。
23.进一步地,所述步骤4的具体步骤如下:
24.步骤4.1:cmdb平台根据业务应用ip及端口,从大数据平台获取对应的流量信息;
25.步骤4.2:从获取的流量信息中,过滤掉其他非业务的流量;
26.步骤4.3:过滤后的流量为业务流量,并在业务流量节点中标记出对应的业务开始节点和结束节点;
27.步骤4.4:算法平台调用经过过滤的业务流量以及cmdb信息。
28.进一步地,所述步骤5的具体步骤如下:
29.步骤5.1:算法平台得到业务流量数据和cmdb数据后,对相同集群服务的各个节点及流向相同节点的路径进行合并节点、路径;
30.步骤5.2:对业务流量以分钟为时间片,并绘画出该时间片的业务调用链,形成相同业务下,不同时间片的调用链数据。
31.进一步地,所述步骤6的具体步骤如下:
32.步骤6.1:从经过二次处理的分钟时间片业务流量数据中,筛选出流量变化具备波动性的多个业务;
33.步骤6.2:使用算法对上述的筛选出的业务的业务调用链信息进行调用链路径筛选,找出该业务从开始节点到结束节点的多条有效调用链路径。
34.进一步地,所述步骤7的具体步骤如下:
35.步骤7.1:将各个业务调用链路径拓扑进行唯一标识;
36.步骤7.2:对标记好的每个业务调用链差异流量检测,通过对多个时间片周期进行业务流量求差,形成业务调用链差异流量拓扑图,使用算法计算该差异流量拓扑图的若干条业务线路;
37.步骤7.3:汇总步骤7.2的所有业务线路图,进行相同合并,并在相应业务调用链路统计次数上不断累加,最后取次数最高的为该业务的最终业务路线,如果一个业务的调用链最高次数上有多条调用链,则进行步骤7.4,否则终止;
38.步骤7.4:当一个业务调用链出现多条的情况,对该业务路线以分钟为单位进行实
时监控,当发现该业务终点有流量,但是某条业务线无流量,则进行淘汰,直至剩下最后一条业务线,在此过程中未被淘汰的所有业务线都为该业务的业务线。
39.进一步地,所述步骤5采用的算法为kps算法,具体算法如下:
40.1)使用dijkstra算法计算一条最短链路;
41.2)排除始点和终点,提取中间节点,将中间节点与下一节点的边4去除,再使用dijkstra算法求解中间节点到终点的最短路径,与始点到中间节点的线路拼接形成候选最短路径;
42.3)求解第j条最短路径在第j-1条最短路径基础上进行。
43.进一步地,所述dijkstra算法如下:
44.1)假设s为起点,e为终点;
45.2)用一个集合f保存已经访问过的节点,初始时f只包含起点s。用一个数组d保存起点s到其余所有节点的最短路径。在开始时,d的数值用下面的公式计算:
[0046][0047]
3)找到一个不在f中,并且d[u]最小的节点u。d[u]就是起点s到节点u的最短距离,把u加入f;
[0048]
4)用节点u更新数组d中的最短距离:
[0049][0050]
5)如果f中已经包含终点e,则最短路径已找到,否则继续执行步骤3)。
[0051]
采用上述方案,本发明通过业务流量和ai模型的方式,智能识别出业务的真实应用调用链,具有以下特点:1)流量镜像是基础标准的网络协议实现,应用兼容性好,能够很好的兼顾微服务架构和传统架构;2)实施操作简单,通过核心交换机做流量镜像方式旁路获取流量,无需agent入侵,解决agent侵入应用服务带来的稳定性、安全性、性能额外压力的问题;3)网络流量均为真实、全量数据。
附图说明
[0052]
图1为本发明的效果示意图。
[0053]
图2为本发明的数据漏斗图。
[0054]
图3为本发明的结构连接框图。
具体实施方式
[0055]
以下结合附图和具体实施例,对本发明进行详细说明。
[0056]
请参阅图1至图3,本发明提供一种基于业务流量智能识别业务链路的分析方法,包括如下步骤:
[0057]
步骤1:流量平台通过核心交换机、tap交换机镜像流量采集到业务系统的流量。
[0058]
步骤2:对镜像流量进行tcp报文的包头信息进行分析:源ip、目标ip、端口三元组
信息,统计各个ip的请求量、有效请求数、响应时长、成功率等核心流量指标。
[0059]
步骤3:将完成分析的流量数据推送到大数据平台进行存储,提供给其他应用使用。
[0060]
步骤4:通过cmdb平台对业务流量进行筛选。具体步骤如下:
[0061]
步骤4.1:cmdb平台根据业务应用ip及端口,从大数据平台获取对应的流量信息。
[0062]
步骤4.2:从获取的流量信息中,过滤掉其他非业务的流量,例如安全应用、监控应用的流量则为非业务流量,会影响业务调用链,需要进行过滤,消除影响。
[0063]
步骤4.3:过滤后的流量为业务流量,并在业务流量节点中标记出对应的业务开始节点和结束节点。
[0064]
步骤4.4:算法平台调用经过过滤的业务流量以及cmdb信息,进入模型分析阶段。
[0065]
步骤5:算法平台获得业务流量数据和cmdb数据后,以天为单位对数据进行二次处理。具体步骤如下:
[0066]
步骤5.1:算法平台得到业务流量数据和cmdb数据后,对相同集群服务的各个节点及流向相同节点的路径进行合并节点、路径。
[0067]
步骤5.2:对业务流量以分钟为时间片,并绘画出该时间片的业务调用链,形成相同业务下,不同时间片的调用链数据。
[0068]
步骤6:在经过二次处理的数据中通过有效业务调用链路径模型进行筛选。具体步骤如下:
[0069]
步骤6.1:从经过二次处理的分钟时间片业务流量数据中,筛选出流量变化具备波动性的多个业务。在本实施例中,假设筛选出了s个业务。
[0070]
步骤6.2:使用算法对上述的筛选出的业务的业务调用链信息进行调用链路径筛选,找出该业务从开始节点到结束节点的多条有效调用链路径。在本实施例中,假设每个业务有k条调用链路径。
[0071]
步骤7:通过采用业务调用链路径甄选模型,在上述筛选出的s个业务、每个业务的k条调用链路径中,通过业务调用链甄选模型对每个业务的业务调用链进行甄选,找出真实的业务调用链。具体步骤如下:
[0072]
步骤7.1:将各个业务调用链路径拓扑进行唯一标识。
[0073]
步骤7.2:对标记好的每个业务调用链差异流量检测,通过对多个时间片周期,在不同的实施例中,取实际业务流量时间片1、5、10、30、60个周期,进行业务流量求差,形成业务调用链差异流量拓扑图,使用算法计算该差异流量拓扑图的k条业务线路。
[0074]
步骤7.3:汇总步骤7.2的所有业务线路图,进行相同合并,并在相应业务调用链路统计次数上不断累加,最后取次数最高的为该业务的最终业务路线,如果一个业务的调用链最高次数上有多条调用链,则进行步骤7.4,否则终止。
[0075]
步骤7.4:当一个业务调用链出现多条的情况,对该业务路线以分钟为单位进行实时监控,当发现该业务终点有流量,但是某条业务线无流量,则进行淘汰,直至剩下最后一条业务线,在此过程中未被淘汰的所有业务线都为该业务的业务线。
[0076]
步骤8:在模型分析完毕后,算法平台会输出业务调用链的结果,用于运维平台进行验证。
[0077]
基于cmdb业务属性、cmdb信息表、cmdb资源关联关系和应用调用链信息基础上,以
ip+端口为节点,利用cmdb的信息进行节点合并,比如集群各个节点都是提供相同服务,可将集群各个节点合并成一个节点。然后以分钟为单位,结合调用链信息,新形成每分钟有效的业务拓扑图。
[0078]
以天为单元,基于形成的每分钟有效业务拓扑图,选定特定业务,使用链路流量存活检测进行选定有效的业务路线。遍历所有的每分钟有效业务拓扑图,筛选有改业务流量波动的业务拓扑图,假定有s个业务拓扑图被选中。使用kps算法针对s个业务拓扑图求解该业务在调用信息网中的k个最短路径,k可根据实际情况进行调整,即可从每个业务拓扑图中筛选k条业务线路。将以上业务线路进行汇总,得出最少k条,最大k*s条业务线路作为该业务候选业务路线,假定数量为d条。
[0079]
使用流量相关性检测进行最终确认,将所有有效的业务拓扑图进行标记,并将每个标记好的业务拓扑图,减去该业务拓扑图多个时间片间隔的业务拓扑图,形成链路差异流量拓扑图,使用kps算法计算该差异流量拓扑图的k条业务线路。汇总所有业务线路图,相同的进行合并,在次数上不断进行累加,可取次数最高的为该业务的最终业务路线,如果最高同时有几个业务路线,假如有b条,则进行下一步骤,否则终止。将b条该业务路线以分钟为单位进行实时监控,当发现该业务终点有流量,但是某条业务线无流量,则进行淘汰,直至剩下最后一条业务线,在此过程中未被淘汰的所有业务线都为该业务的业务线。
[0080]
所述步骤5采用的算法为kps算法,具体算法如下:
[0081]
1)使用dijkstra算法计算一条最短链路;
[0082]
2)排除始点和终点,提取中间节点,将中间节点与下一节点的边4去除,再使用dijkstra算法求解中间节点到终点的最短路径,与始点到中间节点的线路拼接形成候选最短路径;
[0083]
3)求解第j条最短路径在第j-1条最短路径基础上进行。
[0084]
所述dijkstra算法如下:
[0085]
1)假设s为起点,e为终点;
[0086]
2)用一个集合f保存已经访问过的节点,初始时f只包含起点s。用一个数组d保存起点s到其余所有节点的最短路径。在开始时,d的数值用下面的公式计算:
[0087][0088]
3)找到一个不在f中,并且d[u]最小的节点u。d[u]就是起点s到节点u的最短距离,把u加入f;
[0089]
4)用节点u更新数组d中的最短距离:
[0090][0091]
5)如果f中已经包含终点e,则最短路径已找到,否则继续执行步骤3)。
[0092]
综上所述,本发明通过业务流量和ai模型的方式,智能识别出业务的真实应用调用链,具有以下特点:1)流量镜像是基础标准的网络协议实现,应用兼容性好,能够很好的兼顾微服务架构和传统架构;2)实施操作简单,通过核心交换机做流量镜像方式旁路获取流量,无需agent入侵,解决agent侵入应用服务带来的稳定性、安全性、性能额外压力的问
题;3)网络流量均为真实、全量数据。
[0093]
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1