CN110572291A - 面向分布式系统实现架构自动识别功能的系统及其方法 - Google Patents
面向分布式系统实现架构自动识别功能的系统及其方法 Download PDFInfo
- Publication number
- CN110572291A CN110572291A CN201910872494.5A CN201910872494A CN110572291A CN 110572291 A CN110572291 A CN 110572291A CN 201910872494 A CN201910872494 A CN 201910872494A CN 110572291 A CN110572291 A CN 110572291A
- Authority
- CN
- China
- Prior art keywords
- log
- module
- architecture
- automatic identification
- distributed system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Abstract
本发明涉及一种面向分布式系统实现架构自动识别功能的系统,包括宿主机,包括采集工具,用于进行日志采集和配置日志发送的目的地址;消息队列模块,用于传输日志信息;流计算模块,用于进行日志转换;日志中心模块,用于存储日志数据;网络端,用于提取链路数据并以图像化方式呈现结果。本发明还涉及一种实现面向分布式系统的架构自动识别处理的方法。采用了本发明的面向分布式系统实现架构自动识别功能的系统及其方法,无需通过代码侵入和重新启动,均可以做到在线的逻辑架构的识别检测,可以做到对系统内部结构自动识别和检测,从而可以直观地判断技术架构的遵从性和规范性的达成情况。以及具备对于云环境入口的软件系统规范把控等功能和价值。
Description
技术领域
本发明涉及软件与信息技术领域,尤其涉及系统架构识别领域,具体是指一种面向分布式系统实现架构自动识别功能的系统及其方法。
背景技术
业界有基于SNMP协议的网络拓扑发现工具如zabbix,也有基于网络抓包体现的架构发现方法。前者的缺点在于只能捕捉到硬件或者虚拟机层面的依赖关系,并且无法体现出网元内部的子模块或子系统。而后者难以应对浮动IP的场景和服务实例动态伸缩的场景。本专利提出的方法去除了以上的几种限制,拓宽了适用场景。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足效率高、操作简单、适用范围广泛的面向分布式系统实现架构自动识别功能的系统及其方法。
为了实现上述目的,本发明的面向分布式系统实现架构自动识别功能的系统及其方法如下:
该面向分布式系统实现架构自动识别功能的系统,其主要特点是,所述的系统包括:
宿主机,包括采集工具,用于进行日志采集和配置日志发送的目的地址;
消息队列模块,与所述的宿主机相连接,用于传输日志信息;
流计算模块,与所述的消息队列模块相连接,用于进行日志转换;
日志中心模块,与所述的流计算模块相连接,用于存储日志数据;
网络端,与所述的日志中心模块相连接,用于提取链路数据并以图像化方式呈现结果。
较佳地,所述的系统还包括过滤器,与所述的采集工具或流计算模块相连接,用于抓取日志中的源地址和目的服务名。
较佳地,所述的系统还包括服务注册中心模块,与所述的消息队列模块和流计算模块相连接,用于找出地址到服务名的映射,并进行地址归并。
较佳地,所述的系统还包括拼接模块,与所述的日志中心模块和网络端相连接,用于对日志中心模块中的连接去重并进行节点拼接,形成依赖关系网。
较佳地,所述的宿主机采集的日志为HTTP日志和其他应用层协议通信日志。
该利用上述系统实现面向分布式系统的架构自动识别处理的方法,其主要特点是,所述的方法包括以下步骤:
(1)通过采集工具进行日志采集;
(2)将日志映射为链路;
(3)检测连接是否重复,如果是,则丢弃日志与链路数据,继续步骤(1);否则,写入存储;
(4)进行拼接架构;
(5)判断业务系统的核心用例是否全部覆盖,如果是,则结束流程;否则,继续步骤(4)。
较佳地,所述的步骤(2)具体包括以下步骤:
(2.1)从日志中提取地址或域名,将地址或域名映射为服务名;
(2.2)对链接进行节点拼接。
采用了本发明的面向分布式系统实现架构自动识别功能的系统及其方法,针对于所有基于HTTP通信或者依赖于相近协议如SIP协议、RTSP协议等应用层协议进行的通信的分布式信息系统,无需通过代码侵入和重新启动,均可以做到在线的逻辑架构的识别检测,也即对子系统子模块的识别以及子系统子模块之间依赖关系的识别。该架构识别方法,应用在业务系统交付验收中,可以做到对系统内部结构自动识别和检测,从而可以直观地判断技术架构的遵从性和规范性的达成情况。以及具备对于云环境入口的软件系统规范把控等功能和价值。
附图说明
图1为本发明的面向分布式系统实现架构自动识别功能的系统的架构图。
图2为本发明的实现面向分布式系统的架构自动识别处理的方法的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
如图1所示,本发明的该面向分布式系统实现架构自动识别功能的系统,其中包括:
宿主机,包括采集工具,用于进行日志采集和配置日志发送的目的地址;
消息队列模块,与所述的宿主机相连接,用于传输日志信息;
流计算模块,与所述的消息队列模块相连接,用于进行日志转换;
日志中心模块,与所述的流计算模块相连接,用于存储日志数据;
网络端,与所述的日志中心模块相连接,用于提取链路数据并以图像化方式呈现结果。
作为本发明的优选实施方式,所述的系统还包括过滤器,与所述的采集工具或流计算模块相连接,用于抓取日志中的源地址和目的服务名。
作为本发明的优选实施方式,所述的系统还包括服务注册中心模块,与所述的消息队列模块和流计算模块相连接,用于找出地址到服务名的映射,并进行地址归并。
作为本发明的优选实施方式,所述的系统还包括拼接模块,与所述的日志中心模块和网络端相连接,用于对日志中心模块中的连接去重并进行节点拼接,形成依赖关系网。
作为本发明的优选实施方式,所述的宿主机采集的日志为HTTP日志和其他应用层协议通信日志。
如图2所示,本发明的该利用上述系统实现面向分布式系统的架构自动识别处理的方法,其中包括以下步骤:
(1)通过采集工具进行日志采集;
(2)将日志映射为链路;
(2.1)从日志中提取地址或域名,将地址或域名映射为服务名;
(2.2)对链接进行节点拼接;
(3)检测连接是否重复,如果是,则丢弃日志与链路数据,继续步骤(1);否则,写入存储;
(4)进行拼接架构;
(5)判断业务系统的核心用例是否全部覆盖,如果是,则结束流程;否则,继续步骤(4)。
本发明的具体实施方式中,当今复杂业务系统的实现通常呈现为大型分布式系统,服务与服务之间,模块与模块之间,独立部署而进行轻量级的接口通信,统一协作而完成复杂业务。业界同步通信方式以Restful接口为代表,异步通信则以消息队列为主流,而两种通信方式均是基于HTTP协议。在此前提下提出一种对于大型分布式系统的架构识别方法。业界有通过网络抓包的方式获取HTTP通信记录,从而分析访问链路生成最终逻辑架构的做法。但是这样由于有众多的分布式节点,而节点存在自动伸缩,这种复杂且动态伸缩的网状关系导致抓包难以实施,可能存在不允许抓包的生产环境。所以本文提出一种全新的方案。
基于HTTP访问日志,从日志中找到访问的源端和目的端,并且找到源端和目的端对应的模块名或者服务名,以一次无重复的访问作为一个链接。多个链接按相同节点融合,节点去重,链接去重,成为最终的模块调用关系网络,如此循环完善链路,直至最后不再变化的关系网络即可作为分布式系统的逻辑架构,并做成图形化呈现。
本发明的具体步骤如下:
(1)搜集http请求日志:
用filebeat或者logpilot等工具搜集宿主机或者docker下的http日志,并发给消息队列。
(2)解析日志中的地址与服务名:
用过滤器抓取日志中的源地址和目的服务名,服务名为域名之后的第一个字段。
(3)查询地址对应的服务名:
从服务注册中心(根据发现机制不同,注册中心可能是eureka或者Zookeeper或者K8S DNS)中找到地址到服务名的映射。并且因为每条链接的源端和目的端均可能是多实例,都要做地址归并。如果不存在注册中心的情况,可从路由映射关系中查询对应关系。
(4)流计算进行日志转换:
Http日志被映射为诸如A service——>B service的样式。
(5)写入日志中心:
通过消息队列写入ElasticSearch或其他信息存储载体中。
(6)生成逻辑架构图:
提取ElasticSearch中的链接去重做节点拼接,组成依赖关系网,每个节点对应一个服务,循环取得的最终整个关系网络可以作为逻辑架构。
图1为本方法可实现的典型架构图,也代表数据流图,Host为宿主机,Agent为采集工具,消息队列可以是Kafka或者RabbitMQ,流计算可以基于Spark Streaming或者Flink,ES作为日志中心,也可以是其他存储机制,Web为架构的结果呈现。
图2为本方法遵循的典型流程图,如图所示,首先安装Agent启动日志采集,然后从日志中提取出地址或域名,地址或域名映射为服务名,服务与服务或者子系统与子系统之间的单项关系为一个链接,检测链接的重复性,如果重复直接丢弃重新抓取日志,如果不重复则写入存储,Web端提取存储中的链路数据,以相同节点做拼接,直到业务系统的核心用例全部覆盖,则架构拼装完成。
针对一个被检测系统,该技术方案的具体实施过程如下:
1、待检测系统完成部署并可以在线健康运行,功能测试通过,设计验证测试通过。
2、在每台宿主机上部署采集日志的Agent,配置日志发送的目的地址,采集tomcat或者jetty等web服务器的访问日志,而过滤器可以放在Agent之中或者流计算中。
3、对于待检测系统进行用例测试或者投入日常使用,对核心用例逐条集中测试或者系统上线对用户开放试运行一段时间自然覆盖用例。
4、在系统主要用例覆盖之后,Web端提取生成的链路关系,在页面上自动呈现出完整的逻辑架构图,可以于最初的系统设计文档上的架构对比,结论可作为后续专家评审验收依据。
本专利的关键创新点包括以下几点:
1、收集被检测系统所运行docker容器的HTTP日志或者宿主机上的HTTP日志,特征是对系统中HTTP日志或者其他应用层协议通信日志的收集。
2、对HTTP日志解析加工生成单个的连接关系,特征是从日志中解析出各个服务或者子模块子系统之间的调用关系或依赖关系。
3、对连接关系进行去重和拼装形成逻辑架构图,特征是对依赖关系的拼装。
4、以图像化方式呈现,特征是以可视化的方式呈现业务系统的架构关系。
采用了本发明的面向分布式系统实现架构自动识别功能的系统及其方法,针对于所有基于HTTP通信或者依赖于相近协议如SIP协议、RTSP协议等应用层协议进行的通信的分布式信息系统,无需通过代码侵入和重新启动,均可以做到在线的逻辑架构的识别检测,也即对子系统子模块的识别以及子系统子模块之间依赖关系的识别。该架构识别方法,应用在业务系统交付验收中,可以做到对系统内部结构自动识别和检测,从而可以直观地判断技术架构的遵从性和规范性的达成情况。以及具备对于云环境入口的软件系统规范把控等功能和价值。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (7)
1.一种面向分布式系统实现架构自动识别功能的系统,其特征在于,所述的系统包括:
宿主机,包括采集工具,用于进行日志采集和配置日志发送的目的地址;
消息队列模块,与所述的宿主机相连接,用于传输日志信息;
流计算模块,与所述的消息队列模块相连接,用于进行日志转换;
日志中心模块,与所述的流计算模块相连接,用于存储日志数据;
网络端,与所述的日志中心模块相连接,用于提取链路数据并以图像化方式呈现结果。
2.根据权利要求1所述的面向分布式系统实现架构自动识别功能的系统,其特征在于,所述的系统还包括过滤器,与所述的采集工具或流计算模块相连接,用于抓取日志中的源地址和目的服务名。
3.根据权利要求1所述的面向分布式系统实现架构自动识别功能的系统,其特征在于,所述的系统还包括服务注册中心模块,与所述的消息队列模块和流计算模块相连接,用于找出地址到服务名的映射,并进行地址归并。
4.根据权利要求1所述的面向分布式系统实现架构自动识别功能的系统,其特征在于,所述的系统还包括拼接模块,与所述的日志中心模块和网络端相连接,用于对日志中心模块中的连接去重并进行节点拼接,形成依赖关系网。
5.根据权利要求1所述的面向分布式系统实现架构自动识别功能的系统,其特征在于,所述的宿主机采集的日志为HTTP日志和其他应用层协议通信日志。
6.一种基于权利要求1所述的系统实现面向分布式系统的架构自动识别处理的方法,其特征在于,所述的方法包括以下步骤:
(1)通过采集工具进行日志采集;
(2)将日志映射为链路;
(3)检测连接是否重复,如果是,则丢弃日志与链路数据,继续步骤(1);否则,写入存储;
(4)进行拼接架构;
(5)判断业务系统的核心用例是否全部覆盖,如果是,则结束流程;否则,继续步骤(4)。
7.根据权利要求6所述的实现面向分布式系统的架构自动识别处理的方法,其特征在于,所述的步骤(2)具体包括以下步骤:
(2.1)从日志中提取地址或域名,将地址或域名映射为服务名;
(2.2)对链接进行节点拼接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910872494.5A CN110572291A (zh) | 2019-09-16 | 2019-09-16 | 面向分布式系统实现架构自动识别功能的系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910872494.5A CN110572291A (zh) | 2019-09-16 | 2019-09-16 | 面向分布式系统实现架构自动识别功能的系统及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110572291A true CN110572291A (zh) | 2019-12-13 |
Family
ID=68780197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910872494.5A Withdrawn CN110572291A (zh) | 2019-09-16 | 2019-09-16 | 面向分布式系统实现架构自动识别功能的系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110572291A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782498A (zh) * | 2020-07-29 | 2020-10-16 | 杭州玳数科技有限公司 | 基于kuberntes的flink任务日志elk采集方法和系统 |
CN116436761A (zh) * | 2023-06-12 | 2023-07-14 | 深圳和润达科技有限公司 | 设备的位置在线识别和在线注册的实现方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248512A (zh) * | 2012-02-14 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 通信网络中应用层拓扑结构的生成方法和系统 |
CN104915347A (zh) * | 2014-03-11 | 2015-09-16 | 腾讯科技(北京)有限公司 | 网页地址的处理方法、装置及系统 |
CN107729210A (zh) * | 2017-09-29 | 2018-02-23 | 百度在线网络技术(北京)有限公司 | 分布式服务集群的异常诊断方法和装置 |
CN108259567A (zh) * | 2017-12-22 | 2018-07-06 | 北京交通大学 | 基于服务器应用逻辑的大型数据中心业务子系统发现方法 |
CN108874559A (zh) * | 2018-05-31 | 2018-11-23 | 康键信息技术(深圳)有限公司 | 电子装置、分布式系统业务链路分析方法及存储介质 |
-
2019
- 2019-09-16 CN CN201910872494.5A patent/CN110572291A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248512A (zh) * | 2012-02-14 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 通信网络中应用层拓扑结构的生成方法和系统 |
CN104915347A (zh) * | 2014-03-11 | 2015-09-16 | 腾讯科技(北京)有限公司 | 网页地址的处理方法、装置及系统 |
CN107729210A (zh) * | 2017-09-29 | 2018-02-23 | 百度在线网络技术(北京)有限公司 | 分布式服务集群的异常诊断方法和装置 |
CN108259567A (zh) * | 2017-12-22 | 2018-07-06 | 北京交通大学 | 基于服务器应用逻辑的大型数据中心业务子系统发现方法 |
CN108874559A (zh) * | 2018-05-31 | 2018-11-23 | 康键信息技术(深圳)有限公司 | 电子装置、分布式系统业务链路分析方法及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782498A (zh) * | 2020-07-29 | 2020-10-16 | 杭州玳数科技有限公司 | 基于kuberntes的flink任务日志elk采集方法和系统 |
CN116436761A (zh) * | 2023-06-12 | 2023-07-14 | 深圳和润达科技有限公司 | 设备的位置在线识别和在线注册的实现方法及装置 |
CN116436761B (zh) * | 2023-06-12 | 2023-08-25 | 深圳和润达科技有限公司 | 设备的位置在线识别和在线注册的实现方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108900374B (zh) | 一种应用于dpi设备的数据处理方法和装置 | |
CN111431758B (zh) | 云网络设备的测试方法、装置、存储介质和计算机设备 | |
CN107508722B (zh) | 一种业务监控方法和装置 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
EP1667360A1 (en) | Generic discovery for computer networks | |
CN106941493B (zh) | 一种网络安全态势感知结果输出方法及装置 | |
CN114584401B (zh) | 一种面向大规模网络攻击的追踪溯源系统及方法 | |
CN102088377B (zh) | 一种用于资产管理的人机对应方法及装置 | |
CN110855493B (zh) | 用于混合环境的应用拓扑图绘制装置 | |
CN111176941B (zh) | 一种数据处理的方法、装置和存储介质 | |
EP3364627B1 (en) | Adaptive session intelligence extender | |
CN112350854B (zh) | 一种流量故障定位方法、装置、设备及存储介质 | |
CN108989151B (zh) | 用于网络或应用性能管理的流量采集方法 | |
CN108632111A (zh) | 一种基于日志的服务链路监控方法 | |
CN111221699A (zh) | 一种资源关联关系发现方法、装置和电子设备 | |
CN110572291A (zh) | 面向分布式系统实现架构自动识别功能的系统及其方法 | |
CN111177193A (zh) | 一种基于Flink的日志流式处理方法及系统 | |
CN109802842B (zh) | 应用拓扑的生成方法及相关设备 | |
CN113067810A (zh) | 网络抓包方法、装置、设备和介质 | |
CN104219100A (zh) | 一种信息采集方法和装置 | |
CN105827474A (zh) | 网络监控方法、过滤数据包的方法及装置 | |
CN112073512B (zh) | 数据处理方法及设备 | |
CN110324199B (zh) | 一种通用的协议解析框架的实现方法及装置 | |
CN116346680A (zh) | 基于拓扑嗅探的进程间网络流量追踪控制方法和系统 | |
CN109818799A (zh) | 日志采集分析方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191213 |