一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种网络数据采集方法及系统与流程

2022-03-26 16:59:57 来源:中国专利 TAG:


1.本发明涉及数据采集技术领域,尤其是涉及一种网络数据采集方法及系统。


背景技术:

2.随着互联网技术的发展,各种类型的网络设备不断增加,不同网络设备的数据格式也不尽相同。
3.现有数据采集工具通常直接从设备处抓取所需数据,只能获取设备的基本信息和简单的指标数据,对不同设备需使用不同的采集方法,系统需维护每种设备的数据采集方法,增加了系统的复杂性,重复采集数据也加重了网络设备的负担。由于各系统数据独立计算,容易造成数据统计口径不一致,采集的数据质量不高。随着网络设备数量的增加,现有数据采集工具的采集效率很难满足业务扩展需求。
4.随着计算资源的成本逐渐低廉,分布式采集是互联网数据采集的必然趋势。


技术实现要素:

5.本发明的目的是提供一种网络数据采集方法及系统,以解决现有数据采集方法中所采集的数据质量不高、采集效率较低的技术问题。
6.本发明的目的,可以通过如下技术方案实现:
7.一种网络数据采集方法,应用在网络数据采集系统上,所述系统包括管理终端和站点,方法包括以下步骤:
8.所述管理终端根据待采集设备的设备型号对所述待采集设备进行分类,为各类待采集设备配置对应的采集模板与解析模板;
9.所述管理终端根据预先设置的采集策略生成采集任务,根据待采集设备所处站点对所述采集任务进行分组得到若干组采集任务,将各组采集任务分别发送至所述待采集设备所处站点上;
10.所述站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据,并将所述属性数据发送给所述管理终端;
11.所述管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据并保存。
12.可选地,还包括:
13.所述管理终端将所述属性解析数据通过前端页面展示给用户。
14.可选地,所述站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据具体包括:
15.所述站点上的探测进程根据所述采集任务中设置的采集时间和所述采集模板中设置的采集方法采集所述待采集设备的若干属性数据;其中,所述采集模板为所述待采集设备的每个属性设置了对应的采集方法。
16.可选地,所述管理终端根据所述解析模板对所述属性数据进行解析得到属性解析
数据具体包括:
17.所述管理终端根据所述解析模板中的解析函数对所述属性数据进行解析得到属性解析数据;其中,所述解析函数与所述属性数据所属的属性是一一对应的。
18.可选地,所述管理终端根据预先设置的采集策略生成采集任务具体包括:
19.所述管理终端根据预先设置的采集策略手动生成采集任务或在预设时间自动生成采集任务。
20.本发明还提供了一种网络数据采集系统,所述系统包括管理终端和站点,包括:
21.所述管理终端根据待采集设备的设备型号对所述待采集设备进行分类,为各类待采集设备配置对应的采集模板与解析模板;
22.所述管理终端根据预先设置的采集策略生成采集任务,根据待采集设备所处站点对所述采集任务进行分组得到若干组采集任务,将各组采集任务分别发送至所述待采集设备所处站点上;
23.所述站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据,并将所述属性数据发送给所述管理终端;
24.所述管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据并保存。
25.可选地,所述管理终端还用于:
26.将所述属性解析数据通过前端页面展示给用户。
27.可选地,所述站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据具体包括:
28.所述站点上的探测进程根据所述采集任务中设置的采集时间和所述采集模板中设置的采集方法采集所述待采集设备的若干属性数据;其中,所述采集模板为所述待采集设备的每个属性设置了对应的采集方法。
29.可选地,所述管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据具体包括:
30.所述管理终端根据所述解析模板中的解析函数对所述属性数据进行解析得到属性解析数据;其中,所述解析函数与所述属性数据所属的属性是一一对应的。
31.可选地,所述管理终端根据预先设置的采集策略生成采集任务具体包括:
32.所述管理终端根据预先设置的采集策略手动生成采集任务或在预设时间自动生成采集任务。
33.本发明提供了一种网络数据采集方法及系统,所述系统包括管理终端和站点,方法应用在网络数据采集系统上,方法包括以下步骤:所述管理终端根据待采集设备的设备型号对所述待采集设备进行分类,为各类待采集设备配置对应的采集模板与解析模板;所述管理终端根据预先设置的采集策略生成采集任务,根据待采集设备所处站点对所述采集任务进行分组得到若干组采集任务,将各组采集任务分别发送至所述待采集设备所处站点上;所述站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据,并将所述属性数据发送给所述管理终端;所述管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据并保存。
34.本发明提供的网络数据采集方法及系统,带来的有益效果是:
35.本发明根据设备型号对待采集设备进行分类,为每类待采集设备配置对应的采集模板与解析模板,当需采集网络设备的不同属性数据时,用户只需修改对应的采集模板和解析模板,当需采集新增网络设备的属性数据时,用户只需添加相应的采集模板和解析模板,具有非常好的扩展性,能减少运维人员的工作量;根据采集策略生成采集任务后,对采集任务按照待采集设备所处站点进行分组得到若干组采集任务,将各组采集任务发送至对应站点上,分布式的站点上的探测进程能并发采集待采集设备的属性数据,管理终端解析采集到的属性数据,解析得到的数据质量高,极大地提高了数据采集任务的执行效率,极大地减少了多任务的采集延时;采集系统分布式运行,各个站点上的探测进程(探针)互不相关,能提高整个采集系统的稳定性。
附图说明
36.图1为本发明网络数据采集方法的流程示意图;
37.图2为本发明网络数据采集系统的系统调度流程示意图;
38.图3为本发明网络数据采集方法中生成采集任务流程示意图;
39.图4为本发明中模板定义与实现过程示意图;
40.图5为本发明中网络数据采集系统的结构示意图;
41.图6为本发明中网络数据采集系统的系统结构示意图;
42.图7为本发明中网络数据采集系统的工作流程示意图;
43.图8为本发明中数据展示部分的系统结构示意图;
44.图9为本发明中数据展示部分的工作流程示意图。
具体实施方式
45.本发明实施例提供了一种网络数据采集方法及系统,以解决现有数据采集方法中所采集的数据质量不高、采集效率较低的技术问题。
46.为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
47.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
48.请参阅图1,本发明提供了一种网络数据采集方法的实施例,应用在网络数据采集系统上,所述系统包括管理终端和站点,方法包括以下步骤:
49.s100:所述管理终端根据待采集设备的设备型号对所述待采集设备进行分类,为各类待采集设备配置对应的采集模板与解析模板;
50.s200:所述管理终端根据预先设置的采集策略生成采集任务,根据待采集设备所处站点对所述采集任务进行分组得到若干组采集任务,将各组采集任务分别发送至所述待采集设备所处站点上;
51.s300:所述站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属
性数据,并将所述属性数据发送给所述管理终端;
52.s400:所述管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据并保存。
53.在步骤s100中,管理终端首先根据待采集设备的设备型号对所有的网络设备进行分类,分别对每类待采集设备配置对应的采集模板和解析模板,所有的采集模板和解析模板构成模板系统。
54.用户通过管理终端可以方便地对采集模板进行配置,可以非常直观地修改采集模板中的属性采集方法与指令等。同时,在扩展性方面,当有新类型的网络设备需要采集时,若现有的采集模板不能满足要求,则用户只需要进行少许操作即可扩展一个新的采集模板,按要求修改采集方法与指令即可。标准化的模板配置大大降低了用户的学习成本与工作量。
55.本实施例中,每种类型待采集设备都有对应的采集模板和解析模板,解析模板与采集模板间也是相对应的,代码层面与业务层面关系简单。对现有的采集模板增加新的属性时,只需要在对应的解析模板中增加相应的解析函数;当新增了某种类型的待采集设备时,只需在模板系统中增加对应的采集模板和解析模板,可以很方便地扩展出新的采集模板和解析模板。整个模板系统都提供了非常好的扩展性,减少了开发维护人员的工作量。
56.本实施例中,不同类型的网络设备关联不同的采集模板和解析模板。当需采集网络设备的不同属性数据时,用户只需修改对应的采集模板和解析模板;当需采集新增网络设备的属性数据时,用户只需给新增的网络设备添加相应的采集模板和解析模板,具有非常好的扩展性,能减少运维人员的工作量。
57.在步骤s200中,管理终端根据预先设置的采集策略生成采集任务,设置采集策略时主要考虑:
58.(1)定义何时采集,系统页面允许用户选择具体的采集时间,或者选择采集间隔。调度进程会每间隔一定的时间(例如1小时)发起采集任务。当采集任务开启时,调度进程会判断哪些属性满足时间要求,排除暂不采集的属性,这样即达到通过页面定义采集时间。
59.(2)定义通过何种方法采集属性数据,用户在系统页面填写不同设备类型不同属性的采集方法(例如,可选择snmp-get、snmp-walk、snmp-next、ssh、netconf等采集方式)。
60.(3)定义具体采集设备时,通过设置条件筛选出具体采集的设备,再结合定义好的属性采集时间,可生成若干个采集任务,每个采集任务中包括待采集设备的型号、所处站点、开始采集时间、采集方法等采集属性。
61.在步骤s300中,待采集设备所在站点根据采集模板和采集任务对待采集设备进行数据采集,得到待采集设备的若干属性数据,将采集到的属性数据发送至管理终端。
62.站点上的探测进程根据采集任务中设置的采集时间和采集模板中设置的采集方法采集待采集设备的若干属性数据;其中,采集模板为待采集设备的每个属性设置了对应的采集方法。
63.对于不同设备型号的待采集设备,即使是相同厂商,对相同属性采集到的数据结构也有差异。因此,本实施例中设置了一个模板系统,在采集时根据设备型号对待采集设备进行分类,相同设备型号的待采集设备为一类,使用相同的采集模板对同类型的待采集设备进行数据采集,对不同类型的待采集设备配置不同的采集方法。
64.s400:管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据并保存。
65.优选的实施方式,本实施例中,管理终端对站点上的探针采集到的属性数据进行解析得到属性解析数据,还可以将属性解析数据通过前端页面展示给用户。
66.同样在进行数据解析时,管理终端也根据设备型号对待采集设备进行分类,使用相同的解析模板对同类型的待采集设备的属性数据进行解析。
67.优选的,本实施例中根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据具体包括:根据所述采集任务中设置的采集时间和所述采集模板中设置的采集方法采集所述待采集设备的若干属性数据;其中,所述采集模板为所述待采集设备的每个属性设置了对应的采集方法。
68.优选的,本实施例管理终端对所述属性数据进行解析得到属性解析数据具体包括:根据所述解析模板中的解析函数对所述属性数据进行解析得到属性解析数据;其中,所述解析函数与所述属性数据所属的属性是一一对应的。
69.优选的,根据预先设置的采集策略生成采集任务具体包括:根据预先设置的采集策略手动生成采集任务或在预设时间自动生成采集任务。
70.本实施例提供的网络数据采集方法,根据设备型号对待采集设备进行分类,为每类待采集设备配置对应的采集模板与解析模板,当需采集网络设备的不同属性数据时,用户只需修改对应的采集模板和解析模板,当需采集新增网络设备的属性数据时,用户只需添加相应的采集模板和解析模板,具有非常好的扩展性,能减少运维人员的工作量;根据采集策略生成采集任务后,对采集任务按照待采集设备所处站点进行分组得到若干组采集任务,将各组采集任务发送至对应站点探针上,分布式的站点探针能并发采集待采集设备的属性数据管理终端解析采集到的属性数据,解析得到的数据质量高,极大地提高了数据采集任务的执行效率,极大地减少了多任务的采集延时;采集系统分布式运行,各个站点探针互不相关,能提高整个采集系统的稳定性。
71.请参阅图2,本发明还提供了一种网络数据采集系统的实施例,包括:
72.所述管理终端根据待采集设备的设备型号对所述待采集设备进行分类,为各类待采集设备配置对应的采集模板与解析模板;
73.所述管理终端根据预先设置的采集策略生成采集任务,根据待采集设备所处站点对所述采集任务进行分组得到若干组采集任务,将各组采集任务分别发送至所述待采集设备所处站点上;
74.所述站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据,并将所述属性数据发送至所述管理终端;
75.所述管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据并保存。
76.优选的实施方式,还包括:
77.所述管理终端将所述属性解析数据通过前端页面展示给用户。
78.优选的,站点根据所述采集模板和所述采集任务采集所述待采集设备的若干属性数据具体包括:
79.站点根据所述采集任务中设置的采集时间和所述采集模板中设置的采集方法采
集所述待采集设备的若干属性数据;其中,所述采集模板为所述待采集设备的每个属性设置了对应的采集方法。
80.优选的,管理终端根据所述解析模板对所述属性数据进行解析得到属性解析数据具体包括:
81.管理终端根据所述解析模板中的解析函数对所述属性数据进行解析得到属性解析数据;其中,所述解析函数与所述属性数据所属的属性是一一对应的。
82.优选的,所述管理终端根据预先设置的采集策略生成采集任务具体包括:
83.所述管理终端根据预先设置的采集策略手动生成采集任务或在预设时间自动生成采集任务。
84.本实施例提供的网络数据采集系统,在系统定位上,位于上层系统和网络设备之间,对上层应用屏蔽设备取数差异,各上层系统不必直接面对设备,通过系统即可获取设备数据。对下层设备屏蔽了数据适配,无论何种产商的何种设备,只要提供了属性采集方法,系统都可以做到适配采集。
85.本实施例提供的网络数据采集系统,在系统设计上,上层应用方面通过统一的模板配置,对不同类型的设备进行归类,减少设备采集方式的维护量;在下层采集方面,利用高性能探针,分布式并行采集设备属性,大大提高采集效率,为未来业务扩展提供冗余;在中层解析方面,利用模板归类功能,简化数据解析,减少数据处理的工作量。
86.本实施例提供的网络数据采集系统,根据设备型号对待采集设备进行分类,为每类待采集设备配置对应的采集模板与解析模板,当需采集网络设备的不同属性数据时,用户只需修改对应的采集模板和解析模板,当需采集新增网络设备的属性数据时,用户只需添加相应的采集模板和解析模板,具有非常好的扩展性,能减少运维人员的工作量;根据采集策略生成采集任务后,对采集任务按照待采集设备所处站点进行分组得到若干组采集任务,将各组采集任务发送至对应站点探针上,分布式的站点探针能并发采集待采集设备的属性数据管理终端解析采集到的属性数据,极大地提高了数据采集任务的执行效率,极大地减少了多任务的采集延时;采集系统分布式运行,各个站点探针互不相关,能提高整个采集系统的稳定性。
87.本实施例提供的网络数据采集系统,主要功能是分布式采集、模块化计算、可视化页面展示数据、对外提供数据api。为了实现上述功能,在产品层面,具有以下功能:
88.1、数据采集功能。数据采集部分包括任务调度进程与探测进程。其中,任务调度进程负责具体的采集属性判断、采集设备获取、采集任务组合等操作。它集中在一台物理机中,在达到采集时间时,将待采集设备即目标设备、需采集的属性组合成任务数据,推送给分布在不同站点探针的探测进程。探测进程与设备进行通信后获取属性数据,返回给采集调度进程。
89.探测进程,我们简称站点探针,是使用分布式设计思想,在不同站点的服务器上部署高性能的golang进程,可通过snmp、ssh、netconf等方法与设备进行通信,高并发地采集设备数据。每个站点都部署有站点探针,能就近与该站点的设备进行通信,尽量避免采集过程中由于网络原因导致的失败,同时可以降低采集延迟。站点探针被动地接收采集任务,获取任务后利用golang的高性能并发特性,同时与多台设备进行通信,获取采集结果数据后再整合发回给任务调度进程。
90.a.在定义何时采集时,系统页面允许用户选择具体的采集时间,或者选择采集间隔。调度进程会每间隔一定的时间(例如1小时)发起采集任务。当采集开启时,调度进程会判断哪些属性满足时间要求,排除暂不采集的属性。这样即可通过页面定义采集时间。
91.b.在定义通过何种方法采集时,用户在系统页面填写不同设备类型不同属性的采集方法(例如,可选择snmp-get、snmp-walk、snmp-next、ssh、netconf五种采集方式,snmp须填写oid(对象标识符),ssh与netconf须填写具体指令)。发起采集后,调度进程依据设备与需采集的属性,将采集方法与指令组织在任务数据中发送给站点探针。站点探针再依据具体的采集方法调用相应的采集功能与设备进行通信。
92.c.定义具体采集设备时,依据cmdb系统提前录入的设备数据,通过设备ip、设备角色等条件筛选出具体采集的设备,再结合定义好的属性采集时间,即可在发起采集时,向探针推送具体的采集设备与采集属性相结合后的任务数据。
93.2、数据解析功能。
94.在探针采集到设备数据后,需要数据解析功能对数据进行具体的加工。
95.对于不同型号的设备,即使是相同厂商,相同属性采集到的数据结构也有差异。对这些数据进行整体加工势必会多出很多逻辑语句。因此,设置了一个模板系统,在采集时对不同的设备型号进行分类,依据不同类型的设备配置不同的采集方法。同样在数据解析时,也对不同的设备类型进行分类,相同类型的设备使用相同的解析模板。
96.解析模板中包含每一个属性的解析函数。在探针采集到设备属性数据并返回后,任务调度进程会依据设备型号匹配到具体的解析模板,再在当前解析模板下匹配到具体的属性解析函数。这些都完成后,即可将原始数据输入至解析函数中,获得最后的解析数据。整个过程遵循工厂模式,原材料投入到具体工厂具体生产线,最终获得成品。
97.解析模板需严格配置,每增加一个采集模板配置就需要对应一个解析模板,每增加一个属性字段就需要对应一个属性解析函数,否则采集到的数据无法解析,导致无法获得最终结果。
98.3、数据展示功能。
99.数据展示功能,主要提供灵活的数据配置页面,页面允许用户预先编辑好查询sql,依据查询sql系统页面会以表格形式自动展示查询数据。同时在sql语句的基础上,还可以对现有数据在进行二次条件查询,系统会对源sql预计进行再加工,通过加工后的新sql语句继续查询获得新的数据,并以表格继续展示。
100.a.配置页面让用户在前端页面就能灵活地通过sql查询具体的设备数据。其中,可以查看所有数据表的结构,也可以填写具体的sql语句,通过sql语句查询出结果基础上,再通过条件过滤结果,即通过对sql再加工,获得新的sql语句继续执行查询;可选需要展示的列,将具体的数据通过前端页面展示给用户。
101.b.展示页面是依据已经配置的信息,查询数据后通过前端展示的页面,可以保存已配好的配置信息;可以输入查询条件,在sql查询结果基础上再进行一次过滤。
102.本实施例提供的网络数据采集系统,其实现工具的基本原理:
103.(1)数据采集
104.为了能做到高效率、准确地采集数据,并能实现快速开发,该系统使用了python与golang语言编写,并使用微服务理念将各功能模块进行拆分,每一个模块尽量只完成简单
的任务,方便未来功能的扩展与维护。
105.具体的,数据采集系统的系统结构如图2所示。主进程负责整体的调度,包括web进程调度与定时任务调度。
106.在系统启动时,使用python的django架构,结合前端的angularjs架构,将web系统开启。web页面允许用户直接调用手动采集,当调用时,web页面会将请求发送给主进程,再由主进程调用任务调度进程,在任务调度进程中新增采集任务,后续具体操作有任务调度进程负责。
107.定时任务调度则使用了linux中的crontab功能,在指定时间开启定时采集任务。在定时采集任务开启时,系统会将用户在web页面配置好的采集组合成采集任务,并交给任务调度进程负责具体的数据采集。
108.任务调度进程中包含一个任务优先队列,实现先进先出功能。当有任务加入到任务调度进程时,进程会将任务数据进行校验,任务数据必须包括目标设备ip、采集方法、采集指令等。校验通过的任务会被放入优先队列末尾,等待任务下发。通过python的线程池实现任务并发下发功能。当线程池有空闲时,队首的若干任务将被提取出来,并按照设备所在站点进行分类,并下发给不同站点探针系统。此时该线程将被挂起,等待探针采集数据回复。
109.探针的设计同样遵循了微服务理念,通过api对外提供任务采集功能。而在探针内部则实现了具体任务批量下发、数据采集(包括ssh、snmp、netconf、ping、traceroute等采集探测方法)功能。其中为了并发下发任务,探针使用了golang中的协程(goroutine)功能,可实现同时下发以千为单位的任务。探针依据任务中包含的采集方法,调用采集模块中的ssh、snmp等功能与设备进行通信。后期若要增加新的采集功能,只需要引入新的功能模块,按照数据格式编写入口函数即可。
110.手动采集的过程如图3左半部分所示,通过web提供的api接收外部任务并将任务传递给主进程。在有空闲资源时,任务进程从主进程中拿取任务数据,并封装成具体的任务,然后下发给设备进行采集。
111.自动采集的过程如图3右半部分所示,通过定时器触发任务采集,并将任务传递给主进程。后续与手动采集相似。
112.(2)数据解析
113.待采集设备所在站点探针从待采集设备处获取到的属性数据,它们的数据结构可能多种多样。即便是相同的属性,在不同类型的设备获取到的数据格式差别也较大,这些异构的数据无法直接存盘使用,因此,需要进行数据解析来解决上述问题。
114.用户需要预先在网络数据采集系统中定义多个采集模板,不同类型的待采集设备关联不同的采集模板。例如,华为某一型路由器对应采集模板b。解析系统则在后台代码层面也与采集模板一一对应,当探针获得采集结果后,依据对端的设备类型,将结果数据传入到相应解析模板的具体属性解析函数中,解析成最终的结果。
115.在定义采集模板时,所有模板都拥有相同的属性。而在代码层面定义解析模板时,则定义一个抽象的模板,模板抽象类中包含了所有属性对应的解析函数。而不同的解析模板继承这个抽象类,并在各自的模板类中实现具体的属性解析函数。模板的定义与实现过程如图4所示。
116.可以理解的是,每种型号的待采集设备都有对应的采集模板和解析模板,采集模板中使用不同的采集方法采集不同属性的属性数据,对于采集到的每个属性数据,解析模板中都有相应的解析函数用来解析该属性数据,采集模板中的属性与解析模板中的解析函数具有一一对应的关系。
117.在设计系统时,无论用何种采集方法,最终以json格式返回采集结果。这样snmp采集结果一般以oid为key,结果值value;ssh采集结果以空字符串为key,ssh结果字符串为value;netconf采集结果以空字符串为key,netconf结果字符串为value。在解析模板的解析函数中,需要提取json中的关键信息。不同属性的结果提取方式一般不相同,例如华为交换机端口名称是oid最后一个数值为端口索引号,结果值为名称字符串。这些都是在解析函数中用代码实现。
118.请参阅图5,位于管理终端的主进程负责整体调度;采集模板负责查询与整理用户自定义或者定时器触发的采集任务数据;采集分配进程负责将任务以站点为维度分配给不同的站点探针,同时通过优先队列与多线程来控制任务分发速度;模板分析负责将采集得到的数据,依据不同设备类型调用不同的模板进行数据解析,获得最终的结果。
119.整个网络数据采集系统的结构如图6所示,工作流程图如图7所示。整个系统执行由定时器开启或者在用户通过前端页面手动执行。若此时定时任务开启,则系统首先启动任务模板,获取本次需要采集的任务;主进程获取采集任务后发送给采集分配进程,采集分配进程按照负载均衡选择站点探针进行数据采集;站点探针将采集原始结果返回给主进程;主进程再将数据发送给模板分析,利用解析模板对采集结果进行解析,得到具体的解析结果;模板分析将最终的解析结果返回给主进程,最后进行存盘操作。
120.值得说明的是,为了通过并行计算提高采集效率,待采集设备所在站点可以包括一个或多个站点探针。
121.解析模板中包含每一个属性的解析函数。在探针采集到设备属性数据并返回后,调度进程会依据设备型号匹配到具体的解析模板,再在当前解析模板下匹配到具体的属性解析函数。这些都完成后,即可将原始数据传入解析函数中,获得最后的解析数据,解析得到的数据质量高。整个过程遵循工厂模式,原材料投入到具体工厂具体生产线,最终获得成品。
122.(3)数据展示
123.数据展示部分的系统结构示意图如图8所示,数据展示部分的工作流程图如图9所示。依据现有数据,提供一个通用、响应速度快、灵活定义的页面展示,即为展示部分的设计初衷。需要展示的数据来自两部分,一部分是手动查询,即用户手动输入sql语句;另一部分来自于系统查询,即用户事先定义好并永久化的查询。获取两类查询请求后,主进程查询数据库,并将数据返回给前端页面进行展示。
124.本实施例提供的网络数据采集系统,多站点、分布式地通过ssh、netconf、snmp等采集方法,对海量网络设备进行高性能并行、准确的数据采集工作。
125.平台上通过模板定义采集方法,对采集数据进行模板化解析并存储,提供一套扩展性强、标准化高的数据采集与解析方法。
126.与现有数据采集工具相比,本实施例具有以下优势:
127.(1)采集模板配置:在用户配置方面,可以非常直观地修改属性采集方式与指令。
同时在扩展性方面,若有新的设备类型需要采集,而现有模板不能满足,用户只需要少许操作即可扩展一个新的采集模板,按要求修改采集方法与指令即可。标准化的模板配置大大降低了用户的学习成本与工作量。
128.(2)解析模板:与采集模板相对应,代码层面与业务层面关系简单。无论是现有模板新增属性,或是新增采集模板,只需要新增模板解析类或者属性解析函数,即可扩展出新的解析模板。整个系统都提供了非常好的扩展性,减少了开发维护人员的工作量。
129.(3)采集探针与任务调度:使用优先队列与多线程,让任务调度效率大大提高,同时避免了任务过多导致系统出错。由于使用了分布式探针,探针只采集相同站点或相近站点的设备,因网络造成的延时与错误大大降低。探针中使用模块化编程,在增加采集方法时,只需要依据要求定义入口函数,其他的内部代码与系统完全解耦,方便采集扩展。探针用golang高性能地实现并发下发任务,极大地减少了多任务的采集延时,同时一个探针可以同时探测更多目标,减少了机器数量,节约了功耗。由于整个系统分布式运行,探针相互之间并不关联,在系统出问题时,可以方便切换探针,提高了系统整体的稳定性。
130.(4)数据展示:通过对业务的抽象,允许用户通过sql语句更自主地定义展示数据,不必通过开发人员进行专项开发,减少开发人员的工作量的同时也提供了用户更多自主性,减少不必要的工作冲突。
131.本发明提供的网络数据采集方法及系统,在整个运维体系中为上层系统提供了许多相应的数据支撑,例如:为网络监控系统提供需要监控的对象及拓扑关系数据;为idc作业系统提供服务器和网络连接关系数据;为巡检系统提供软件版本、补丁版本、端口状态、速率等数据支撑;为信息安全系统提供防火墙公网ip端口映射数据;为公司级cmdb提供网络设备动态属性及ip等数据;为运维管理人员提供数据快速查询能力等。
132.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
133.在本技术所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
134.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
135.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
136.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
137.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献