searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一种基于高可用prometheus架构的分布式交换机数据采集方法

2023-06-28 07:28:05
9
0

本方案由三个模块组成:

  • Prometheus:开源原生的监控组件,负责向负载均衡组件下发采集任务,并进行监控数据采集和存储。
  • 负载均衡组件:负责将多个prometheus节点下发的采集任务随机、均匀地分配给改进型SNMP采集器集群中的节点。
  • 改进型SNMP采集器:交换机数据采集组件snmp-exporter的改进版本,新增数据缓存、同步任务功能,负责使用SNMP协议进行交换机数据采集,并向prometheus提供数据。多个改进型SNMP采集器可构成改进型SNMP采集器集群,支持高可用,避免单点失效问题。

 

本发明创造的技术方案由以下四个过程实现:

  • 改进型SNMP采集器集群节点状态检测过程:改进型SNMP采集器集群内的各个节点定时互相检测运行状态,并各自更新自己本时段的可用节点IP地址表。
  • Prometheus采集任务下发过程:高可用prometheus架构中,N个prometheus节点同时采集M个交换机监控数据。每个prometheus节点下发M个采集任务至负载均衡组件。
  • 改进型SNMP采集器选取过程:负载均衡组件收到采集任务后,将采集任务随机、均匀分配至改进型SNMP采集器集群各个节点上,利用分布式任务调度算法,无中心、自适应地选取改进型SNMP采集器集群中运行状态良好的改进型SNMP采集器节点执行采集任务。
  • 改进型SNMP采集器执行任务过程:利用选取出的改进型SNMP采集器节点,根据采集任务中含有本次采集的交换机IP地址,对指定交换机进行数据采集,并将数据提供给发送该采集任务的prometheus节点。

 

过程详细介绍:

  • 改进型SNMP采集器集群节点状态检测过程

参考附图1,多个改进型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请求,含有本次采集的交换机地址,请求如下。

  • 改进型SNMP采集器选取过程

参考附图2,负载均衡组件收到来自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采集器执行任务过程

参考附图3,在通过上述的改进型SNMP采集器选取过程后,选出改进型SNMP采集器B执行本次采集任务。改进型SNMP采集器节点采集交换机数据过程为:

  • 查询自身缓存。改进型SNMP采集器节点收到采集任务  

后,先查询自身缓存。若自身缓存已存在当前需要采集的交换机数据,则读取缓存数据并通过prometheus提供的collect接口上提供给prometheus使用。

  • 查询节点执行状态。若自身缓存不存在当前需要采集

的交换机数据,进一步判断节点执行任务状态:

1)当该节点处于空闲状态,则从SNMP协议中获取进行交换机数据(例如交换机状态,名称,In/Out报文数目),采集结束后将该数据存储在缓存中并提供给prometheus。

2)当节点正在执行采集任务,该采集任务进行阻塞等待,直至节点完成正在进行的采集任务后,任务从阻塞等待中释放并执行步骤1。

 

通过本方法,多个prometheus节点可同时获取多个交换机数据。本方法利用改进型SNMP采集器和分布式任务调度算法控制交换机采集频率,在企业级监控中保证交换机侧不受流量负荷增大的影响,提高交换机采集效率和质量。

0条评论
0 / 1000
黄****潇
2文章数
0粉丝数
黄****潇
2 文章 | 0 粉丝
原创

一种基于高可用prometheus架构的分布式交换机数据采集方法

2023-06-28 07:28:05
9
0

本方案由三个模块组成:

  • Prometheus:开源原生的监控组件,负责向负载均衡组件下发采集任务,并进行监控数据采集和存储。
  • 负载均衡组件:负责将多个prometheus节点下发的采集任务随机、均匀地分配给改进型SNMP采集器集群中的节点。
  • 改进型SNMP采集器:交换机数据采集组件snmp-exporter的改进版本,新增数据缓存、同步任务功能,负责使用SNMP协议进行交换机数据采集,并向prometheus提供数据。多个改进型SNMP采集器可构成改进型SNMP采集器集群,支持高可用,避免单点失效问题。

 

本发明创造的技术方案由以下四个过程实现:

  • 改进型SNMP采集器集群节点状态检测过程:改进型SNMP采集器集群内的各个节点定时互相检测运行状态,并各自更新自己本时段的可用节点IP地址表。
  • Prometheus采集任务下发过程:高可用prometheus架构中,N个prometheus节点同时采集M个交换机监控数据。每个prometheus节点下发M个采集任务至负载均衡组件。
  • 改进型SNMP采集器选取过程:负载均衡组件收到采集任务后,将采集任务随机、均匀分配至改进型SNMP采集器集群各个节点上,利用分布式任务调度算法,无中心、自适应地选取改进型SNMP采集器集群中运行状态良好的改进型SNMP采集器节点执行采集任务。
  • 改进型SNMP采集器执行任务过程:利用选取出的改进型SNMP采集器节点,根据采集任务中含有本次采集的交换机IP地址,对指定交换机进行数据采集,并将数据提供给发送该采集任务的prometheus节点。

 

过程详细介绍:

  • 改进型SNMP采集器集群节点状态检测过程

参考附图1,多个改进型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请求,含有本次采集的交换机地址,请求如下。

  • 改进型SNMP采集器选取过程

参考附图2,负载均衡组件收到来自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采集器执行任务过程

参考附图3,在通过上述的改进型SNMP采集器选取过程后,选出改进型SNMP采集器B执行本次采集任务。改进型SNMP采集器节点采集交换机数据过程为:

  • 查询自身缓存。改进型SNMP采集器节点收到采集任务  

后,先查询自身缓存。若自身缓存已存在当前需要采集的交换机数据,则读取缓存数据并通过prometheus提供的collect接口上提供给prometheus使用。

  • 查询节点执行状态。若自身缓存不存在当前需要采集

的交换机数据,进一步判断节点执行任务状态:

1)当该节点处于空闲状态,则从SNMP协议中获取进行交换机数据(例如交换机状态,名称,In/Out报文数目),采集结束后将该数据存储在缓存中并提供给prometheus。

2)当节点正在执行采集任务,该采集任务进行阻塞等待,直至节点完成正在进行的采集任务后,任务从阻塞等待中释放并执行步骤1。

 

通过本方法,多个prometheus节点可同时获取多个交换机数据。本方法利用改进型SNMP采集器和分布式任务调度算法控制交换机采集频率,在企业级监控中保证交换机侧不受流量负荷增大的影响,提高交换机采集效率和质量。

文章来自个人专栏
snmp
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0