CN115834324A - 一种基于高可用prometheus的交换机数据采集方法及系统 - Google Patents
一种基于高可用prometheus的交换机数据采集方法及系统 Download PDFInfo
- Publication number
- CN115834324A CN115834324A CN202211519294.XA CN202211519294A CN115834324A CN 115834324 A CN115834324 A CN 115834324A CN 202211519294 A CN202211519294 A CN 202211519294A CN 115834324 A CN115834324 A CN 115834324A
- Authority
- CN
- China
- Prior art keywords
- snmp
- node
- task
- prometheus
- acquisition
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012544 monitoring process Methods 0.000 claims abstract description 80
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013480 data collection Methods 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 abstract description 9
- 230000004044 response Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000036541 health Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于高可用prometheus的交换机数据采集方法及系统,所述采集方法基于prometheus架构中的SNMP采集器集群实现,包括:根据采集任务在SNMP采集器集群中确定对应的SNMP采集器节点;检测SNMP采集器节点缓存是否存在所述采集任务对应的监控数据;若是,则将监控数据回传至采集任务对应的prometheus节点;若否,则获取监控数据并回传至prometheus节点。本发明通过进行交换机监控数据采集和多副本数据备份,并利用分布式任务调度算法对采集集群进行任务控制,有效解决了现有技术中同一时刻进行多个采集任务导致的响应延迟或采集数据丢失等问题,显著提高了交换机监控数据的采集效率和质量。
Description
技术领域
本发明属于数据监控技术领域,尤其涉及一种基于高可用prometheus的交换机数据采集方法及系统、设备与介质。
背景技术
prometheus是一个开源的完整数据监控解决方案,其基于中央化的规则计算、统一分析和告警的新模型,凭借强大的数据存储特性被广泛应用于监控领域。由于prometheus架构本身只支持单机部署,传统交换机数据采集流程中是由单个prometheus节点下发采集任务至snmp-exporter(SNMP采集器,即prometheus节点用于进行监控采集的组件),snmp-exporter从SNMP协议中获取指定交换机的数据并提供给prometheus节点使用。也有通过部署多个prometheus节点并采集相同服务的方式实现高可用,但在高可用prometheus架构中,多个prometheus节点同时工作,snmp-exporter在同一时刻对同一交换机进行多次采集任务,交换机侧的流量负荷急剧增大,容易造成采集任务响应延迟和采集数据丢失,从而极大地影响交换机数据的采集效率。
发明内容
本发明要解决的技术问题是为了克服现有技术中的上述缺陷,提供一种基于高可用prometheus的交换机数据采集方法及系统、设备与介质。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供了一种基于高可用prometheus的交换机数据采集方法,基于prometheus架构中的SNMP采集器集群实现,用于采集分布式交换机的监控数据;所述SNMP采集器集群包括至少两个SNMP采集器节点,所述数据采集方法包括如下步骤:
根据prometheus节点发送的采集任务信息,在所述SNMP采集器集群中确定所述采集任务对应的SNMP采集器节点;
检测所述采集任务对应的SNMP采集器节点是否存在所述采集任务对应的监控数据;
若是,则将所述监控数据回传至所述采集任务对应的prometheus节点;若否,则通过所述SNMP采集器节点获取所述监控数据,并回传至所述采集任务对应的prometheus节点。
较佳地,所述根据prometheus节点发送的采集任务信息,在所述SNMP采集器集群中确定所述采集任务对应的SNMP采集器节点的步骤包括:
分别获取至少两个prometheus节点发送的采集任务信息;
将所有的所述采集任务信息随机分配至所述SNMP采集器集群中的每个SNMP采集器节点;
分别根据每个SNMP采集器节点获取的采集任务和所述SNMP采集器节点记载的当前可用的SNMP采集器节点,确定所述采集任务对应的目标SNMP采集器节点;
发送所述采集任务至所述目标SNMP采集器节点。
较佳地,所述分别根据每个SNMP采集器节点获取的采集任务和所述SNMP采集器节点记载的当前可用的SNMP采集器节点,确定所述采集任务对应的目标SNMP采集器节点的步骤包括:
分别读取每个SNMP采集器节点中的第一列表,所述第一列表记载有当前状态为可执行采集任务的SNMP采集器节点的IP地址;
基于所述第一列表进行一致性哈希运算以生成Hash环,所述Hash环的每个节点分别对应于所述当前状态为可执行采集任务的SNMP采集器节点的IP地址;
将所述采集任务对应的分布式交换机的IP地址通过一致性哈希运算映射至所述Hash环,以确定所述采集任务对应的目标SNMP采集器节点。
较佳地,所述通过所述SNMP采集器节点获取所述监控数据,并回传至所 述采集任务对应的prometheus节点的步骤包括:
若所述SNMP采集器节点处于空闲状态,则基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点;
若所述SNMP采集器节点不处于空闲状态,则进行阻塞等待直至所述SNMP采集器节点处于空闲状态后,基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点。
本发明还提供了一种基于高可用prometheus的交换机数据采集系统,基于prometheus架构中的SNMP采集器集群实现,用于采集所述分布式交换机的监控数据;所述SNMP采集器集群包括至少两个SNMP采集器节点,所述数据采集系统包括:
负载均衡模块,用于根据prometheus节点发送的采集任务信息,在所述SNMP采集器集群中确定所述采集任务对应的SNMP采集器节点;
采集执行模块,用于检测所述采集任务对应的SNMP采集器节点是否存在所述采集任务对应的监控数据;若是,则将所述监控数据回传至所述采集任务对应的prometheus节点;若否,则通过所述SNMP采集器节点获取所述监控数据,并回传至所述采集任务对应的prometheus节点。
较佳地,所述负载均衡模块包括:
任务获取单元,用于分别获取至少两个prometheus节点发送的采集任务信息;
任务分配单元,用于将所有的所述采集任务信息随机分配至所述SNMP采集器集群中的每个SNMP采集器节点;
节点确定单元,用于分别根据每个SNMP采集器节点获取的采集任务和所述SNMP采集器节点记载的当前可用的SNMP采集器节点,确定所述采集任务对应的目标SNMP采集器节点;
任务发送单元,用于发送所述采集任务至所述目标SNMP采集器节点。
较佳地,所述节点确定单元包括:
列表读取子单元,用于分别读取每个SNMP采集器节点中的第一列表,所述第一列表记载有当前状态为可执行采集任务的SNMP采集器节点的IP地址;
哈希表生成子单元,用于基于所述第一列表进行一致性哈希运算以生成Hash环,所述Hash环的每个节点分别对应于所述当前状态为可执行采集任务的SNMP采集器节点的IP地址;
目标节点确定子单元,用于将所述采集任务对应的分布式交换机的IP地址通过一致性哈希运算映射至所述Hash环,以确定所述采集任务对应的目标SNMP采集器节点。
较佳地,所述采集执行模块具体用于:若所述SNMP采集器节点处于空闲状态,则基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点;若所述SNMP采集器节点不处于空闲状态,则进行阻塞等待直至所述SNMP采集器节点处于空闲状态后,基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点。
本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时实现上述的基于高可用prometheus的交换机数据采集方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于高可用prometheus的交换机数据采集方法。
本发明的积极进步效果在于:本发明通过提供一种基于高可用prometheus的交换机数据采集方法与系统、设备与介质,能够根据prometheus节点发送的采集任务信息在SNMP采集器集群中确定采集任务对应的SNMP采集器节点,进而根据对SNMP采集器节点是否存在所述采集任务对应的监控数据的检测结果执行对于分布式交换机的监控数据的采集和回传,从而针对高可用prometheus架构存在现有问题进行改进。本发明通过进行交换机监控数据采集和多副本数据备份,并利用分布式任务调度算法对采集集群进行任务控制,有效地解决了现有高可用prometheus架构中交换机同一时刻进行多个采集任务导致的采集任务响应延迟或采集数据丢失问题,显著地提高了交换机监控数据的采集效率和质量。
附图说明
图1为本发明实施例1的基于高可用prometheus的交换机数据采集方法的流程图。
图2为本发明实施例1中SNMP采集器的健康检测示意图。
图3为本发明实施例1中SNMP采集器的选取过程示意图。
图4为本发明实施例1中SNMP采集器执行采集任务过程的示意图。
图5为本发明实施例2的基于高可用prometheus的交换机数据采集系统的模块示意图。
图6为本发明实施例3的电子产品的结构框图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
本实施例所提供的基于高可用prometheus的交换机数据采集方法可以在智能终端、计算机终端、网络设备、芯片、芯片模组或者类似的运算装置中执行。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
实施例1
本实施例具体提供了本发明提供了一种基于高可用prometheus的交换机数据采集方法,数据采集方法基于prometheus架构中的SNMP采集器集群实现,用于采集分布式交换机的监控数据,监控数据包括但不限于交换机状态、名称、I/O报文数目等;其中,SNMP采集器集群包括至少两个SNMP采集器节点。
具体地,可以通过设置下述三个模块来实现采集过程:
开源监控组件prometheus,负责向负载均衡组件下发采集任务,并进行监控数据采集和存储;负载均衡组件,负责将多个prometheus节点下发的采集任务随机、均匀地分配给SNMP采集器集群中的节点;SNMP采集器,即交换机数据采集组件snmp-exporter的改进版本,具有数据缓存、同步任务功能,负责使用SNMP协议进行交换机数据采集,并向prometheus提供数据。多个SNMP采集器可构成SNMP采集器集群,支持高可用,避免单点失效问题。当然,本领域技术人员可知,本实施例的采集方法并不因为上述界定的模块及其名称而受到限制。
数据采集方法包括如下步骤:
S1.根据prometheus节点发送的采集任务信息,在SNMP采集器集群中确定采集任务对应的SNMP采集器节点;
S2.检测采集任务对应的SNMP采集器节点缓存是否存在采集任务对应的监控数据;若是,则执行S3:将监控数据回传至采集任务对应的prometheus节点;若否,则执行S4:通过SNMP采集器节点获取监控数据,并回传至采集任务对应的prometheus节点。本领域技术人员可知,对于SNMP采集器节点是否存在采集任务对应的监控数据,可以对SNMP采集器节点缓存进行检测判断。
作为较佳的实施方式,根据prometheus节点发送的采集任务信息,在SNMP采集器集群中确定采集任务对应的SNMP采集器节点的步骤包括:
分别获取至少两个prometheus节点发送的采集任务信息;
将所有的采集任务信息随机分配至SNMP采集器集群中的每个SNMP采集器节点;
分别根据每个SNMP采集器节点获取的采集任务和SNMP采集器节点记载的当前可用的SNMP采集器节点,确定采集任务对应的目标SNMP采集器节点;
发送采集任务至目标SNMP采集器节点。
其中,Prometheus采集任务下发过程为高可用prometheus架构中,N个prometheus节点同时采集M个交换机监控数据,每个prometheus节点下发M个采集任务至负载均衡组件。负载均衡组件收到采集任务后,将采集任务随机、均匀分配至SNMP采集器集群各个节点上,利用分布式任务调度算法,无中心、自适应地选取SNMP采集器集群中运行状态良好的SNMP采集器节点执行采集任务。对于SNMP采集器节点的可用状态判断,可以基于SNMP采集器集群内各节点定时互相检测运行状态,并各自更新自己本时段的可用节点IP地址表实现同步。而被选取出的SNMP采集器节点根据采集任务中含有本次采集的交换机IP地址对指定交换机进行数据采集,并将数据提供给发送该采集任务的prometheus节点。
参考图2,多个SNMP采集器构成一个SNMP采集器集群。SNMP采集器集群内部的各个节点定时通过访问各自的健康检测http接口,获取集群内其他节点的状态信息。健康检测接口如下:
http://SNMP采集器的ip:端口/health,如果返回文本为“ok”,则表示该节点运行状态正常,否则表示节点运行状态不正常。
在获取集群内其他节点的状态信息后,该节点将当前时段运行状态正常的节点地址写入自己的可用节点IP地址表,定时更新。
写入内容为:(假定节点3运行状态不正常)
SNMP采集器1IP;
SNMP采集器2IP;
SNMP采集器4IP;
……
prometheus采集任务下发过程由高可用prometheus架构中,N个prometheus节点采集M个交换机监控数据。每个prometheus节点下发M个交换机采集任务至负载均衡组件。一个采集任务表示一次交换机采集。采集任务为http请求,含有本次采集的交换机地址,请求如下:
http://负载均衡组件ip:端口?target=交换机IP;
作为较佳的实施方式,分别根据每个SNMP采集器节点获取的采集任务和SNMP采集器节点记载的当前可用的SNMP采集器节点,确定采集任务对应的目标SNMP采集器节点的步骤包括:
分别读取每个SNMP采集器节点中的第一列表,第一列表记载有当前状态为可执行采集任务的SNMP采集器节点的IP地址;
基于第一列表进行一致性哈希运算以生成Hash环,Hash环的每个节点分别对应于当前状态为可执行采集任务的SNMP采集器节点的IP地址;
将采集任务对应的分布式交换机的IP地址通过一致性哈希运算映射至Hash环,以确定采集任务对应的目标SNMP采集器节点。
作为较佳的实施方式,通过SNMP采集器节点获取监控数据,并回传至采集任务对应的prometheus节点的步骤包括:
若SNMP采集器节点处于空闲状态,则基于SNMP协议获取监控数据,并通过缓存回传至采集任务对应的prometheus节点;
若SNMP采集器节点不处于空闲状态,则进行阻塞等待直至SNMP采集器节点处于空闲状态后,基于SNMP协议获取监控数据,并通过缓存回传至采集任务对应的prometheus节点。
具体地,SNMP采集器的选取过程可以参考图3,当负载均衡组件收到来自N个prometheus节点的交换机采集任务后,对每个任务均使用分布式任务调度算法选取合适的SNMP采集器执行本次采集任务,算法具体过程如下:
1.负载均衡。负载均衡组件将采集任务随机分配到SNMP采集器集群中的所有采集器节点上,避免单个节点执行多个采集任务,提高采集效率。
2.选取执行任务节点。SNMP采集器A经负载均衡后收到本次采集任务,进行执行任务的节点选取:
1)读取SNMP采集器A当前可用节点IP表中的所有可用IP地址,进行一致性哈希运算并生成Hash环,环上的每个节点表示当前集群运行状态正常的节点;
2)读取本次采集任务中的需采集信息的交换机IP地址,使用一致性哈希运算映射在1)中的Hash环上;
3)从交换机IP地址经过运算后的哈希值顺时针查找,遇到的第一个哈希值所对应的IP地址即为执行本次采集任务的SNMP采集器B的IP地址;
3.任务转发。SNMP采集器A将采集任务发送至经过2步骤选出的SNMP采集器B,由采集器B执行本次采集任务。
SNMP采集器执行任务过程可参考附图4,在通过上述的SNMP采集器选取过程后,选出SNMP采集器B执行本次采集任务。SNMP采集器节点采集交换机数据过程为:
1.查询自身缓存。SNMP采集器节点收到采集任务后,先查询自身缓存。若自身缓存已存在当前需要采集的交换机数据,则读取缓存数据并通过prometheus提供的collect接口上提供给prometheus使用。
2.查询节点执行状态。若自身缓存不存在当前需要采集的交换机数据,进一步判断节点执行任务状态,当该节点处于空闲状态,则从SNMP协议中获取交换机数据,采集结束后将该数据存储在缓存中并提供给prometheus。当节点正在执行采集任务,该采集任务进行阻塞等待,直至节点完成正在进行的采集任务后,任务从阻塞等待中释放并执行步骤1。
通过本方法,多个prometheus节点可同时获取多个交换机数据。本方法利用SNMP采集器和分布式任务调度算法控制交换机采集频率,在企业级监控中保证交换机侧不受流量负荷增大的影响,提高交换机采集效率和质量。
作为一个具体的例子,有以下Prometheus服务器P1、P2、P3、P4;SNMP采集器S1、S2、S3、S4、S5以及负载均衡服务器D1。
1.SNMP采集器S1、S2、S3、S4、S5构成一个SNMP采集器集群。S1每1分钟向集群内其他SNMP采集器请求health接口,并将返回“ok”的SNMP采集器地址写入自己的可用节点IP地址表。其他采集器以同样方式访问集群中除自己外的节点,更新可用节点IP地址表。
2.Prometheus服务器P1、P2、P3、P4每隔5分钟向负载均衡服务器发送1000个采集任务,每个采集任务携带不同交换机IP地址,目的是采集1000个不同的交换机数据。
3.负载均衡服务器D1收到4个prometheus服务器发送的4000个任务,将任务随机均匀分配到SNMP采集器集群的各个SNMP采集器节点上。
4.采集任务T1经过负载均衡后分配至SNMP采集器节点S1上,S1读取当前自身可用节点IP地址表和采集任务T1携带的交换机IP地址,通过一致性Hash算法构建Hash环。
5.从采集任务T1携带的交换机IP地址经过运算后的哈希值顺时针查找,遇到的第一个哈希值所对应的IP地址即为执行采集任务T1的SNMP采集器S2的IP地址。
6.SNMP采集器S1转发采集任务T1至SNMP采集器S2,由S2执行采集任务T1。
7.SNMP采集器S2收到采集任务后,查询自身缓存。若缓存已存在当前需要采集的交换机数据,则读取缓存数据并提供给prometheus使用;若缓存不存在该交换机数据,进一步判断采集器状态。
若SNMP采集器S2处于空闲状态时,从SNMP协议采集交换机数据,采集结束后将该数据存储在缓存中并提供给prometheus;若采集器S2正在执行采集任务T2,则采集任务T1阻塞等待,直至T2完成后重复7所述过程。
本实施例提供的基于高可用prometheus的交换机数据采集方法基于对SNMP采集器的改进应用,相较原有snmp-exporter版本增加了数据缓存、同步任务功能,控制交换机采集任务频率并同时为多个prometheus节点提供交换机数据;通过设计分布式任务调度算法实现无需借助第三方任务分配和调度组件,由自身集群无中心、自适应选出执行采集任务的SNMP采集器节点,更具实用性。
实施例2
与上面介绍的基于高可用prometheus的交换机数据采集方法对应地,本实施例还提供了一种基于高可用prometheus的交换机数据采集系统。
具体地,如图5所示,本实施例的基于高可用prometheus的交换机数据采集系统基于prometheus架构中的SNMP采集器集群实现,用于采集分布式交换机的监控数据;SNMP采集器集群包括至少两个SNMP采集器节点,数据采集系统包括:
负载均衡模块1,用于根据prometheus节点发送的采集任务信息,在SNMP采集器集群中确定采集任务对应的SNMP采集器节点;
采集执行模块2,用于检测采集任务对应的SNMP采集器节点是否存在采集任务对应的监控数据;若是,则将监控数据回传至采集任务对应的prometheus节点;若否,则通过SNMP采集器节点获取监控数据,并回传至采集任务对应的prometheus节点。作为较佳的实施方式,负载均衡模块1包括任务获取单元,用于分别获取至少两个prometheus节点发送的采集任务信息;任务分配单元,用于将所有的采集任务信息随机分配至SNMP采集器集群中的每个SNMP采集器节点;节点确定单元,用于分别根据每个SNMP采集器节点获取的采集任务和SNMP采集器节点记载的当前可用的SNMP采集器节点,确定采集任务对应的目标SNMP采集器节点;任务发送单元,用于发送采集任务至目标SNMP采集器节点。
作为较佳的实施方式,节点确定单元包括:
列表读取子单元,用于分别读取每个SNMP采集器节点中的第一列表,第一列表记载有当前状态为可执行采集任务的SNMP采集器节点的IP地址;
哈希表生成子单元,用于基于第一列表进行一致性哈希运算以生成Hash环,Hash环的每个节点分别对应于当前状态为可执行采集任务的SNMP采集器节点的IP地址;
目标节点确定子单元,用于将采集任务对应的分布式交换机的IP地址通过一致性哈希运算映射至Hash环,以确定采集任务对应的目标SNMP采集器节点。
作为较佳的实施方式,采集执行模块2具体用于:若SNMP采集器节点处于空闲状态,则基于SNMP协议获取监控数据,并通过缓存回传至采集任务对应的prometheus节点;若SNMP采集器节点不处于空闲状态,则进行阻塞等待直至SNMP采集器节点处于空闲状态后,基于SNMP协议获取监控数据,并通过缓存回传至采集任务对应的prometheus节点。
本实施例提供的基于高可用prometheus的交换机数据采集系统基于对SNMP采集器的改进应用,相较原有snmp-exporter版本增加了数据缓存、同步任务功能,控制交换机采集任务频率并同时为多个prometheus节点提供交换机数据;通过设计分布式任务调度算法实现无需借助第三方任务分配和调度组件,由自身集群无中心、自适应选出执行采集任务的SNMP采集器节点,更具实用性。
实施例3
图6为本实施例提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述实施例中的基于高可用prometheus的交换机数据采集方法。图6显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明如上所述的基于高可用prometheus的交换机数据采集方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如上述实施例的基于高可用prometheus的交换机数据采集方法中的步骤。其中,可读存储介质可以采用更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现如上所述的基于高可用prometheus的交换机数据采集方法中的步骤。其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种基于高可用prometheus的交换机数据采集方法,其特征在于,基于prometheus架构中的SNMP采集器集群实现,用于采集分布式交换机的监控数据;所述SNMP采集器集群包括至少两个SNMP采集器节点,所述数据采集方法包括如下步骤:
根据prometheus节点发送的采集任务信息,在所述SNMP采集器集群中确定所述采集任务对应的SNMP采集器节点;
检测所述采集任务对应的SNMP采集器节点是否存在所述采集任务对应的监控数据;
若是,则将所述监控数据回传至所述采集任务对应的prometheus节点;若否,则通过所述SNMP采集器节点获取所述监控数据,并回传至所述采集任务对应的prometheus节点。
2.如权利要求1所述的基于高可用prometheus的交换机数据采集方法,其特征在于,所述根据prometheus节点发送的采集任务信息,在所述SNMP采集器集群中确定所述采集任务对应的SNMP采集器节点的步骤包括:
分别获取至少两个prometheus节点发送的采集任务信息;
将所有的所述采集任务信息随机分配至所述SNMP采集器集群中的每个SNMP采集器节点;
分别根据每个SNMP采集器节点获取的采集任务和所述SNMP采集器节点记载的当前可用的SNMP采集器节点,确定所述采集任务对应的目标SNMP采集器节点;
发送所述采集任务至所述目标SNMP采集器节点。
3.如权利要求2所述的基于高可用prometheus的交换机数据采集方法,其特征在于,所述分别根据每个SNMP采集器节点获取的采集任务和所述SNMP采集器节点记载的当前可用的SNMP采集器节点,确定所述采集任务对应的目标SNMP采集器节点的步骤包括:
分别读取每个SNMP采集器节点中的第一列表,所述第一列表记载有当前状态为可执行采集任务的SNMP采集器节点的IP地址;
基于所述第一列表进行一致性哈希运算以生成Hash环,所述Hash环的每个节点分别对应于所述当前状态为可执行采集任务的SNMP采集器节点的IP地址;
将所述采集任务对应的分布式交换机的IP地址通过一致性哈希运算映射至所述Hash环,以确定所述采集任务对应的目标SNMP采集器节点。
4.如权利要求1所述的基于高可用prometheus的交换机数据采集方法,其特征在于,所述通过所述SNMP采集器节点获取所述监控数据,并回传至所述采集任务对应的prometheus节点的步骤包括:
若所述SNMP采集器节点处于空闲状态,则基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点;
若所述SNMP采集器节点不处于空闲状态,则进行阻塞等待直至所述SNMP采集器节点处于空闲状态后,基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点。
5.一种基于高可用prometheus的交换机数据采集系统,其特征在于,基于prometheus架构中的SNMP采集器集群实现,用于采集分布式交换机的监控数据;所述SNMP采集器集群包括至少两个SNMP采集器节点,所述数据采集系统包括:
负载均衡模块,用于根据prometheus节点发送的采集任务信息,在所述SNMP采集器集群中确定所述采集任务对应的SNMP采集器节点;
采集执行模块,用于检测所述采集任务对应的SNMP采集器节点是否存在所述采集任务对应的监控数据;若是,则将所述监控数据回传至所述采集任务对应的prometheus节点;若否,则通过所述SNMP采集器节点获取所述监控数据,并回传至所述采集任务对应的prometheus节点。
6.如权利要求5所述的基于高可用prometheus的交换机数据采集系统,其特征在于,所述负载均衡模块包括:
任务获取单元,用于分别获取至少两个prometheus节点发送的采集任务信息;
任务分配单元,用于将所有的所述采集任务信息随机分配至所述SNMP采集器集群中的每个SNMP采集器节点;
节点确定单元,用于分别根据每个SNMP采集器节点获取的采集任务和所述SNMP采集器节点记载的当前可用的SNMP采集器节点,确定所述采集任务对应的目标SNMP采集器节点;
任务发送单元,用于发送所述采集任务至所述目标SNMP采集器节点。
7.如权利要求6所述的基于高可用prometheus的交换机数据采集系统,其特征在于,所述节点确定单元包括:
列表读取子单元,用于分别读取每个SNMP采集器节点中的第一列表,所述第一列表记载有当前状态为可执行采集任务的SNMP采集器节点的IP地址;
哈希表生成子单元,用于基于所述第一列表进行一致性哈希运算以生成Hash环,所述Hash环的每个节点分别对应于所述当前状态为可执行采集任务的SNMP采集器节点的IP地址;
目标节点确定子单元,用于将所述采集任务对应的分布式交换机的IP地址通过一致性哈希运算映射至所述Hash环,以确定所述采集任务对应的目标SNMP采集器节点。
8.如权利要求5所述的基于高可用prometheus的交换机数据采集方法,其特征在于,所述采集执行模块具体用于:若所述SNMP采集器节点处于空闲状态,则基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点;若所述SNMP采集器节点不处于空闲状态,则进行阻塞等待直至所述SNMP采集器节点处于空闲状态后,基于SNMP协议获取所述监控数据,并通过缓存回传至所述采集任务对应的prometheus节点。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行计算机程序时实现如权利要求1-4中任一项所述的基于高可用prometheus的交换机数据采集方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的基于高可用prometheus的交换机数据采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211519294.XA CN115834324A (zh) | 2022-11-30 | 2022-11-30 | 一种基于高可用prometheus的交换机数据采集方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211519294.XA CN115834324A (zh) | 2022-11-30 | 2022-11-30 | 一种基于高可用prometheus的交换机数据采集方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834324A true CN115834324A (zh) | 2023-03-21 |
Family
ID=85533001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211519294.XA Pending CN115834324A (zh) | 2022-11-30 | 2022-11-30 | 一种基于高可用prometheus的交换机数据采集方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834324A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049509A (zh) * | 2015-07-23 | 2015-11-11 | 浪潮电子信息产业股份有限公司 | 一种集群调度方法、负载均衡器以及集群系统 |
CN114443415A (zh) * | 2021-12-21 | 2022-05-06 | 天翼云科技有限公司 | 用于Prometheus的采集自动均衡方法、任务分配器及系统 |
WO2022105138A1 (zh) * | 2020-11-17 | 2022-05-27 | 平安科技(深圳)有限公司 | 去中心化的任务调度方法、装置、设备及介质 |
-
2022
- 2022-11-30 CN CN202211519294.XA patent/CN115834324A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049509A (zh) * | 2015-07-23 | 2015-11-11 | 浪潮电子信息产业股份有限公司 | 一种集群调度方法、负载均衡器以及集群系统 |
WO2022105138A1 (zh) * | 2020-11-17 | 2022-05-27 | 平安科技(深圳)有限公司 | 去中心化的任务调度方法、装置、设备及介质 |
CN114443415A (zh) * | 2021-12-21 | 2022-05-06 | 天翼云科技有限公司 | 用于Prometheus的采集自动均衡方法、任务分配器及系统 |
Non-Patent Citations (2)
Title |
---|
ZHIHAO SHANG等: "Design and implementation of server cluster dynamic load balancing based on OpenFlow", 2013 INTERNATIONAL JOINT CONFERENCE ON AWARENESS SCIENCE AND TECHNOLOGY & UBI-MEDIA COMPUTING, 13 March 2014 (2014-03-13) * |
熊霞等: "综合能源一体化采集系统的多任务自适应实时调度方法", 万方, 19 December 2019 (2019-12-19) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9794135B2 (en) | Managed service for acquisition, storage and consumption of large-scale data streams | |
CN104486445B (zh) | 一种基于云平台的分布式可扩展资源监控系统 | |
US9276959B2 (en) | Client-configurable security options for data streams | |
US9858322B2 (en) | Data stream ingestion and persistence techniques | |
CN107018042B (zh) | 用于在线服务系统的追踪方法及追踪系统 | |
CN111913818B (zh) | 一种确定服务间依赖关系的方法及相关装置 | |
US7631034B1 (en) | Optimizing node selection when handling client requests for a distributed file system (DFS) based on a dynamically determined performance index | |
JP6357243B2 (ja) | データストリーム取り込み及び永続性ポリシ | |
US7441024B2 (en) | Method and apparatus for applying policies | |
WO2019245808A1 (en) | Zone redundant computing services using multiple local services in distributed computing systems | |
US9104572B1 (en) | Automated root cause analysis | |
US20180091588A1 (en) | Balancing workload across nodes in a message brokering cluster | |
US20160072761A1 (en) | Automatic generation of server network topology | |
US10756947B2 (en) | Batch logging in a distributed memory | |
CN105224445A (zh) | 分布式跟踪系统 | |
CN113949707A (zh) | 基于OpenResty和K8S的容器云服务发现和负载均衡方法 | |
US20150280981A1 (en) | Apparatus and system for configuration management | |
US20040139194A1 (en) | System and method of measuring and monitoring network services availablility | |
US10715608B2 (en) | Automatic server cluster discovery | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
US20150052242A1 (en) | Information processing system, method of controlling information processing system, and computer-readable recording medium storing control program for controller | |
EP3685567B1 (en) | Load shedding of traffic based on current load state of target capacity | |
CN116483543A (zh) | 一种任务处理方法、装置、设备及存储介质 | |
CN116501246A (zh) | 一种智能数据传输交换平台和任务流转方法 | |
CN115834324A (zh) | 一种基于高可用prometheus的交换机数据采集方法及系统 |
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 |