异种数据库和服务器的分布式指标采集方法及采集系统与流程

未命名 09-07 阅读:155 评论:0


1.本发明属于分布式指标采集方法技术领域,尤其涉及一种异种数据库和服务器的分布式指标采集方法及采集系统。


背景技术:

2.随着互联网产业的快速发展,数据库技术也在不断进步,涌现出各种新型数据库。为了满足不同业务场景的需求,企业和政府部门通常会选择多种数据库来支持业务运行。然而,目前存在一个挑战:现有的exporter往往只支持特定数据库或操作系统,并需要在目标服务器环境中作为agent运行。因此,实现对多种不同类型数据库的监控在实际应用中变得困难。
3.传统技术往往只能针对特定类型的数据库提供监控支持。由于每种数据库都有自己的监控工具或插件,导致在一个统一的监控平台上无法同时监控和管理多个不同类型的数据库。这种局限性增加了系统管理人员的工作负担,并且使监控系统的部署和维护变得更加复杂。另外,它们可能只提供基本的指标收集,如cpu利用率、内存使用量等,而无法深入收集和分析数据库的内部运行情况和关键指标,这使得对数据库性能问题的发现和故障排查变得更加困难和耗时。


技术实现要素:

4.为了克服传统数据库监控技术在多种数据库和服务器环境下存在的诸多缺点和不足,如有限的数据库支持、插件或agent的安装需求、不统一的监控平台等,本发明提出了一种新的异种数据库和服务器的分布式指标采集方法及采集系统,通过本发明方法能够以分布式的部署方式远程监控多个异构数据库以及它们所在的服务器环境,并将采集到的指标信息按照prometheus text format的标准格式输出到指定的端口请求中。
5.本发明异种数据库和服务器的分布式指标采集方法及采集系统,支持业界主流的商用和开源数据库,如vastbase、oracle、mysql、sql server、postgresql和opengauss。用户可以在单一平台上对多个不同应用系统的数据库进行统一指标采集。此外,采集系统只需使用有限权限的数据库用户连接到待审核数据库,而无需使用超级管理员账号或在数据库所在服务器上安装插件,这样既降低了对数据库服务器的影响,又降低了监控应用系统的维护成本。
6.术语解释:
7.prometheus:是一款开源的系统监控和警报工具,其目标是收集、存储和查询系统的时间序列数据,以实现监控、警报和可视化。
8.本发明利用prometheus的以下功能,来采集外部(异种)数据库和服务器中的指标信息,本发明中组件关系示意图见图2:
9.服务发现:prometheus支持多种服务发现机制,包括静态配置、动态配置如基于文件、云平台等的服务发现机制,通过服务发现,prometheus能够自动发现和监控系统中的各
个组件,对应图2中的http service discovery。
10.指标采集:prometheus使用拉取模型(pull model)进行指标采集,周期性地从配置的目标(例如应用程序、数据库、服务器)上拉取指标数据。
11.本发明提供了分布式的部署方式,可实现对多个数据库的监控。
12.具体而言,本发明提供了一种异种数据库和服务器的分布式指标采集方法,本方法包括:
13.s1.将需要监控的数据库信息及采集配置信息按照其关联关系组织并存放到数据库表中;
14.s2.启动注册服务进程,并在prometheus的服务发现功能项中配置注册服务地址;
15.s3.启动采集器,采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,注册服务中心根据心跳请求组装成注册表待prometheus拉取;
16.s4.注册服务中心根据任务关联关系以及注册表中的采集器信息,负载均衡当前采集器所需要采集的任务;
17.s5.采集器根据注册服务中心下发的采集任务,远程采集目标数据库或服务器中的指标信息并缓存到指标池中,prometheus定时拉取指标池中的监控指标信息。
18.进一步地,本发明异种数据库和服务器的分布式指标采集方法步骤s2中所述prometheus的服务发现功能项支持静态配置、动态配置如基于文件、云平台等的服务发现机制,通过服务发现,prometheus能够自动发现和监控系统中的各个组件。
19.进一步地,本发明异种数据库和服务器的分布式指标采集方法步骤s3中所述启动采集器,采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,注册服务中心根据心跳请求组装成注册表待prometheus拉取,还包括:prometheus自动发现和监控启动中的各采集器,同时各采集器均支持横向部署,部署完成后通过注册进入注册服务中心,注册服务中心根据任务情况进行分配,实现采集器的分布式部署和分布式采集。
20.进一步地,本发明异种数据库和服务器的分布式指标采集方法步骤s3中所述采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,所述心跳请求中携带采集任务信息的版本号,当版本号发生变化后,心跳请求返回信息中会带有最新的任务列表,采集器获取该新的任务列表后更新采集调度任务。
21.进一步地,本发明异种数据库和服务器的分布式指标采集方法步骤s5中所述采集器根据注册服务中心下发的采集任务,远程采集目标数据库或服务器中的指标信息并缓存到指标池中包括通过jdbc或ssh远程采集目标数据库或服务器中的指标信息。
22.第二方面,本发明提供了一种异种数据库和服务器的分布式指标采集系统,本指标采集系统包括:
23.信息收集模块:用于向数据库表中组织存放需要监控的数据库信息及采集配置信息;
24.注册模块:用于注册服务、组装注册表、生成采集任务;
25.采集模块:用于根据采集任务采集目标数据库或服务器中的指标信息。
26.进一步地,本发明异种数据库和服务器的分布式指标采集系统中所述注册模块的工作流程包括:
27.s10.启动注册服务,加载配置文件,初始化配置库连接,然后启动主控程序;
28.s20.初始化注册服务;
29.s30.启动一个http server,监听来自采集器和prometheus的请求。
30.进一步地,上述异种数据库和服务器的分布式指标采集系统中步骤s20中所述初始化注册服务,包括:
31.(1)从配置库中加载历史任务分配信息,读取数据库中持久化的注册快照信息;
32.(2)启动清理过期节点定时调度任务,当采集器节点未通过心跳续约直至过期,本任务将移除该部分节点信息;
33.(3)启动监听版本号定时调度任务,采集任务发生变化后将主动更新版本号信息,当注册服务中心监听到版本更新后,立即执行任务分配逻辑;
34.步骤s30中所述来自采集器和prometheus的请求,包括:
35.(a)来自采集器的请求:采集器发送自身节点信息进行注册或续约,信息中包含了采集器当前的任务版本,当与注册服务中心的版本不一致时,注册服务中心返回新的版本信息给采集器进行同步,直到采集器上报的版本信息与注册服务中心一致;
36.(b)来自prometheus的请求:配置http sd后,prometheus主动向配置接口请求节点信息,注册服务中心按照协议格式组装好注册表数据返回。
37.进一步地,本发明异种数据库和服务器的分布式指标采集系统中所述采集模块的工作流程包括:
38.s100.启动采集服务,加载配置文件,然后启动主控程序;
39.s200.初始化采集服务;
40.s300.启动管理服务。
41.进一步地,上述异种数据库和服务器的分布式指标采集系统中步骤s200中所述初始化采集服务,包括:
42.(1)预先装载文件中的采集任务,读取文件中持久化的任务快照信息;
43.(2)初始化全局变量;
44.步骤s300中所述管理服务,包括:
45.(a)datasourcemanager服务,用于监听数据源更新事件;管理数据库连接池、ssh连接池;以及对数据源、操作系统连通性指标采集;
46.(b)taskmanager服务,用于监听任务更新事件,区分是需要新增的任务还是需要删除的任务,发往schedulermanager服务处理;
47.(c)schedulermanager服务,用于监听调度任务更新事件,新增或删除调度任务;
48.(d)requestmanager服务,用于启动http server,监听来自prometheus的数据拉取请求;
49.(e)heartbeatmanager服务,用于定时向register发送注册信息,接收新版本任务信息后持久化到文件并交由datasourcemanager服务进行处理;
50.(f)其他协助调度任务。
51.最后,本发明还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述的异种数据库和服务器的分布式指标采集方法的步骤。
52.综上,本发明异种数据库和服务器的分布式指标采集方法和采集系统具有以下优
点:
53.(1)本发明方法克服了传统数据库监控技术在多种数据库和服务器环境下存在的诸如有限的数据库支持、插件或agent的安装需求、不统一的监控平台等缺点,通过本发明方法能够以分布式的部署方式远程监控多个异构数据库以及它们所在的服务器环境,并将采集到的指标信息按照prometheus text format的标准格式输出到指定的端口请求中。
54.(2)使用本发明方法有助于简化监控系统的部署和维护流程,降低监控应用系统的维护成本和系统管理人员的工作负担。
55.(3)通过本发明方法可深入收集和分析数据库的内部运行情况和关键指标,使对数据库性能问题的发现和故障排查变得更加简单快捷。
56.(4)本发明方法支持业界主流的商用和开源数据库,如vastbase、oracle、mysql、sql server、postgresql和opengauss,用户可以在单一平台上对多个不同应用系统的数据库进行统一指标采集。
57.(5)本发明方法只需使用有限权限的数据库用户连接到待审核数据库,而无需使用超级管理员账号或在数据库所在服务器上安装插件,降低了对数据库服务器的影响。
附图说明
58.为了更清楚地说明本发明实施例的技术方案,下面对本发明实施例中需要使用的附图作简要介绍,显而易见地,下述附图仅是本发明中记载的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
59.图1为本发明采集方法的实施流程图。
60.图2为本发明中组件关系示意图。
61.图3为本发明中注册模块功能示意图。
62.图4为本发明中采集模块功能示意图。
63.图5为本发明采集系统的组成结构图。
具体实施方式
64.为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例,本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
65.同时,应理解,本发明的保护范围并不局限于下述特定的具体实施方案;还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。
66.实施例1:一种异种数据库和服务器的分布式指标采集方法
67.下面结合附图说明本发明的技术方案。
68.如图1所示,本方法包括下述步骤:
69.s1.首先将需要监控的数据库信息及采集配置信息按照要求的关联关系组织并存放到数据库表中。
70.s2.启动注册服务进程,对应图2中的registration module,并在prometheus的服务发现功能项prometheus http service discovery中配置注册服务地址;prometheus的服务发现功能项支持静态配置、动态配置如基于文件、云平台等的服务发现机制,通过服务发现,prometheus能够自动发现和监控系统中的各个组件。
71.s3.接着启动采集器,对应图2中的collectora/b/c,采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,对应图2中的heartbeat;注册服务中心根据心跳请求组装成注册表待prometheus拉取;这样prometheus能够自动发现和监控启动中的各采集器,同时各采集器均支持横向多个部署,部署完成后通过注册进入注册服务中心,注册服务中心根据任务情况进行分配,实现采集器的分布式部署和分布式采集。采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,所述心跳请求中携带采集任务信息的版本号,当版本号发生变化后,心跳请求返回信息中会带有最新的任务列表,采集器获取该新的任务列表后更新采集调度任务,对应图2中的scheduler。
72.s4.注册服务中心根据任务关联关系以及注册表中的采集器信息,负载均衡当前采集器所需要采集的任务,对应图2中的distributor。
73.s5.采集器根据注册服务中心下发的采集任务,通过jdbc或ssh远程采集目标数据库或服务器中的指标信息并缓存到指标池中,对应图2中的metric pool;后续prometheus定时拉取指标池中的监控指标信息。
74.实施例2:一种异种数据库和服务器的分布式指标采集系统
75.本发明提供的是一种结合prometheus服务发现、定期抓取实现分布式异种数据库&服务器指标采集器(采集系统),本采集系统的结构组成如图5所示,包括:
76.信息收集模块:用于向数据库表中组织存放需要监控的数据库信息及采集配置信息;
77.注册模块:用于注册服务、组装注册表、生成采集任务;
78.采集模块:用于根据采集任务采集目标数据库或服务器中的指标信息。
79.本采集系统的处理流程如下:
80.首先介绍注册模块,如图3所示,项目入口为registerstartup类,注册服务启动阶段,主要执行加载配置文件、初始化配置库连接,对应图3中的postgresql、以及主控程序的启动,对应图3中的registercontroller。
81.注册服务初始化阶段,主要执行以下动作:
82.(1)从配置库中加载历史任务分配信息:由于采集器节点大部分时间都处在不变且稳定的状态下,为了减少重启注册服务中心带来的影响,启动后优先读取数据库中持久化的注册快照信息。
83.(2)启动清理过期节点定时调度任务,当采集器节点未通过心跳续约直至过期,本任务将移除该部分节点信息。
84.(3)启动监听版本号定时调度任务:采集任务发生变化后将主动更新版本号信息,当注册服务中心监听到版本更新后,立即执行任务分配逻辑,分配过程会尽可能减小节点或任务的变化带来的影响。
85.注册服务启动后,启动一个http server,监听来自采集器和prometheus的请求,以下是各类请求的处理内容:
86.(a)来自采集器的请求:采集器发送自身节点信息进行注册或续约,信息中包含了采集器当前的任务版本,当与注册服务中心的版本不一致时,注册服务中心返回新的版本信息给采集器进行同步,直到采集器上报的版本信息与注册服务中心一致。
87.(b)来自prometheus的请求:配置http sd后,prometheus主动向配置接口请求节点信息,注册服务中心按照协议格式组装好注册表数据返回。
88.接着介绍采集模块,如图4所示,项目入口为collectorstartup类,采集服务启动阶段,主要执行加载配置文件、以及主控程序的启动,对应图4中的collectorcontroller。
89.采集服务初始化阶段,主要执行以下动作:
90.(1)预先装载文件中的采集任务(有或没有):由于采集器节点大部分时间都处在不变且稳定的状态下,为了减少重启采集器带来的影响,启动后优先读取文件中持久化的任务快照信息。
91.(2)初始化部分全局变量。
92.采集服务启动后,主要启动各种管理服务,如:
93.(a)启动datasourcemanager服务,用于监听数据源更新事件;管理数据库连接池、ssh连接池;以及对数据源、操作系统连通性指标采集。
94.(b)启动taskmanager服务,用于监听任务更新事件,区分是需要新增的任务还是需要删除的任务,发往schedulermanager服务处理。
95.(c)启动schedulermanager服务,用于监听调度任务更新事件,新增或删除调度任务;在该服务中,每个任务被包装为taskcontext并被加入到单线程threadpooltaskscheduler中等待调度,当任务到达执行时间,taskcontext被执行,执行时该数据结构会委派真正的任务方法到taskconsumeexecutor执行。
96.(d)启动requestmanager服务,用于启动http server,监听来自prometheus的数据拉取请求。
97.(f)启动其他协助调度任务。
98.以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、替换等,均应包含在本发明的权利要求保护范围之内。

技术特征:
1.一种异种数据库和服务器的分布式指标采集方法,其特征在于,所述方法包括:s1.将需要监控的数据库信息及采集配置信息按照其关联关系组织并存放到数据库表中;s2.启动注册服务进程,并在prometheus的服务发现功能项中配置注册服务地址;s3.启动采集器,采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,注册服务中心根据心跳请求组装成注册表待prometheus拉取;s4.注册服务中心根据任务关联关系以及注册表中的采集器信息,负载均衡当前采集器所需要采集的任务;s5.采集器根据注册服务中心下发的采集任务,远程采集目标数据库或服务器中的指标信息并缓存到指标池中,prometheus定时拉取指标池中的监控指标信息。2.根据权利要求1所述的异种数据库和服务器的分布式指标采集方法,其特征在于,步骤s2中所述prometheus的服务发现功能项支持静态配置和动态配置的服务发现机制,所述动态配置的服务发现机制包括基于文件、云平台的服务发现机制;通过服务发现,prometheus能够自动发现和监控系统中的各个组件。3.根据权利要求1所述的异种数据库和服务器的分布式指标采集方法,其特征在于,步骤s3中所述启动采集器,采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,注册服务中心根据心跳请求组装成注册表待prometheus拉取,还包括:prometheus自动发现和监控启动中的各采集器,同时各采集器均支持横向部署,部署完成后通过注册进入注册服务中心,注册服务中心根据任务情况进行分配,实现采集器的分布式部署和分布式采集。4.根据权利要求1所述的异种数据库和服务器的分布式指标采集方法,其特征在于,步骤s3中所述采集器根据配置的注册服务地址,向注册服务中心发起心跳请求,所述心跳请求中携带采集任务信息的版本号,当版本号发生变化后,心跳请求返回信息中会带有最新的任务列表,采集器获取该新的任务列表后更新采集调度任务。5.根据权利要求1所述的异种数据库和服务器的分布式指标采集方法,其特征在于,步骤s5中所述采集器根据注册服务中心下发的采集任务,远程采集目标数据库或服务器中的指标信息并缓存到指标池中包括通过jdbc或ssh远程采集目标数据库或服务器中的指标信息。6.一种异种数据库和服务器的分布式指标采集系统,其特征在于,所述指标采集系统包括:信息收集模块:用于向数据库表中组织存放需要监控的数据库信息及采集配置信息;注册模块:用于注册服务、组装注册表、生成采集任务;采集模块:用于根据采集任务采集目标数据库或服务器中的指标信息。7.根据权利要求6所述的异种数据库和服务器的分布式指标采集系统,其特征在于,所述注册模块的工作流程包括:s10.启动注册服务,加载配置文件,初始化配置库连接,然后启动主控程序;s20.初始化注册服务;s30.启动一个http server,监听来自采集器和prometheus的请求。8.根据权利要求7所述的异种数据库和服务器的分布式指标采集系统,其特征在于,步
骤s20中所述初始化注册服务,包括:(1)从配置库中加载历史任务分配信息,读取数据库中持久化的注册快照信息;(2)启动清理过期节点定时调度任务,当采集器节点未通过心跳续约直至过期,本任务将移除该部分节点信息;(3)启动监听版本号定时调度任务,采集任务发生变化后将主动更新版本号信息,当注册服务中心监听到版本更新后,立即执行任务分配逻辑;步骤s30中所述来自采集器和prometheus的请求,包括:(a)来自采集器的请求:采集器发送自身节点信息进行注册或续约,信息中包含了采集器当前的任务版本,当与注册服务中心的版本不一致时,注册服务中心返回新的版本信息给采集器进行同步,直到采集器上报的版本信息与注册服务中心一致;(b)来自prometheus的请求:配置http sd后,prometheus主动向配置接口请求节点信息,注册服务中心按照协议格式组装好注册表数据返回。9.根据权利要求6所述的异种数据库和服务器的分布式指标采集系统,其特征在于,所述采集模块的工作流程包括:s100.启动采集服务,加载配置文件,然后启动主控程序;s200.初始化采集服务;s300.启动管理服务。10.根据权利要求9所述的异种数据库和服务器的分布式指标采集系统,其特征在于,步骤s200中所述初始化采集服务,包括:(1)预先装载文件中的采集任务,读取文件中持久化的任务快照信息;(2)初始化全局变量;步骤s300中所述管理服务,包括:(a)datasourcemanager服务,用于监听数据源更新事件;(b)taskmanager服务,用于监听任务更新事件;(c)schedulermanager服务,用于监听调度任务更新事件;(d)requestmanager服务,用于启动http server,监听来自prometheus的数据拉取请求;(e)heartbeatmanager服务,用于定时向register发送注册信息,接收新版本任务信息后持久化到文件并交由datasourcemanager服务进行处理;(f)协助调度任务。

技术总结
本发明涉及一种异种数据库和服务器的分布式指标采集方法及采集系统。本方法包括数据库信息及采集配置信息组织存储、启动注册服务、配置注册服务地址、启动采集器向注册服务中心发起心跳请求、注册服务中心组装注册表并生成采集任务、采集器远程采集目标数据库或服务器中的指标信息、Prometheus定时拉取指标池中的监控指标信息。本方法能够以分布式的部署方式远程监控多个异构数据库及其服务器环境,并将采集的指标信息输出到指定的端口请求中,可深入收集和分析数据库的内部运行情况和关键指标,使对数据库性能问题的发现和故障排查变得更加简单快捷,同时简化了监控系统的部署和维护流程,降低了维护成本和系统管理人员的工作负担。工作负担。工作负担。


技术研发人员:李林森 苏章艳
受保护的技术使用者:广州海量数据库技术有限公司
技术研发日:2023.06.14
技术公布日:2023/9/6
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐