本发明涉及指标采集领域,尤其涉及一种基于zookeeper的分布式指标采集技术。
背景技术:
1、现今基于promethues对多个集群进行监控管理的技术方案为:
2、部署与集群一一对应的promethues server实例,即服务实例,由所部署的promethues server实例根据预先配置的监控指标数据采集对应集群的指标数据,获得相应的监控数据;
3、部署中心promethues server实例,由中心promethues server实例聚合监控数据,并为用户提供数据查询服务。
技术实现思路
1、本发明针对现有技术中的对多个集群进行监控管理时,promethues的监控数据的采集、存储和查询压力大的缺点,提供了一种基于zookeeper的分布式指标采集技术。
2、为了解决上述技术问题,本发明通过下述技术方案得以解决:
3、一种分布式指标采集方法,包括以下步骤:
4、获取采集指令,基于采集指令从zookeeper中获取所在集群的指标配置列表和所在集群下各采集器的采集节点信息,所述指标配置列表包含若干个采集指标;
5、基于采集节点信息和预设的任务分配规则,从所述指标配置列表中提取至少一个采集指标作为当前采集器的采集任务,同一集群下各采集器的采集任务互不相同;
6、执行所述采集任务,并将所得指标数据上报至prometheus。
7、作为一种可实施方式:
8、采用环形链表并取模模式,将指标配置列表中的采集指标基于采集节点信息均匀分配给每个采集器,使各采集器获得相应的采集任务。
9、作为一种可实施方式,采用环形链表并取模模式,将指标配置列表中的采集指标基于采集节点信息均匀分配给每个采集器,使各采集器获得相应的采集任务的具体步骤为:
10、构建初始环形链表,所述初始环形链表具有若干个任务节点;
11、将指标配置列表中的采集指标依次写入所述初始环形链表中,获得任务环形链表;
12、基于采集节点信息,为各采集器配置数字编号,将当前采集器的数字编号作为目标编号;
13、遍历所述任务环形链表,令任务环形链表中各采集指标按照所述数字编号报数,取出目标编号所对应的采集指标作为采集任务。
14、作为一种可实施方式:
15、所述采集指令为按照预设的时间周期自动触发的指令。
16、作为一种可实施方式:
17、于zookeeper中注册采集节点信息,所述采集节点信息包括集群信息。
18、一种分布式指标采集组件,包括与集群一一对应的采集模块,所述采集模块包括至少一个采集器,所述采集器均分别与zookeeper和prometheus信号相连;
19、所述采集器用于基于zookeeper所存储的指标配置列表确定采集任务,还用于执行所述采集任务,获得相应的指标数据并上报至prometheus;
20、所述采集器包括:
21、获取单元,用于获取采集指令,并基于采集指令从zookeeper中获取所在集群的指标配置列表和所在集群下各采集器的采集节点信息;
22、任务分配单元,用于基于采集节点信息和预设的任务分配规则,从所述指标配置列表中提取至少一个采集指标作为当前采集器的采集任务,同一集群下各采集器的采集任务互不相同;
23、执行单元,用于执行所述采集任务,并将所得指标数据上报至prometheus。
24、作为一种可实施方式,所述采集器还包括:
25、注册单元,用于在zookeeper中注册采集节点信息,所述采集节点信息包括集群信息。
26、一种分布式指标采集系统,与prometheus信号相连,prometheus用于监控各集群;
27、分布式指标采集系统包括zookeeper和若干个采集模块,所述采集模块与集群一一对应,所述采集模块包括至少一个采集器;
28、所述zookeeper,用于存储与集群一一对应的采集配置数据,所述采集配置数据包括对应集群的指标配置列表和所在集群下各采集器的采集节点信息;
29、所述采集器包括:
30、获取单元,用于获取采集指令,并基于采集指令从zookeeper中获取所在集群的指标配置列表和所在集群下各采集器的采集节点信息;
31、任务分配单元,用于基于采集节点信息和预设的任务分配规则,从所述指标配置列表中提取至少一个采集指标作为当前采集器的采集任务,同一集群下各采集器的采集任务互不相同;
32、执行单元,用于执行所述采集任务,并将所得指标数据上报至prometheus。
33、作为一种可实施方式,还包括规则管理模块;
34、所述规则管理模块:
35、用于获取并解析规则配置数据,生成相应的采集数据,所述采集数据包含集群信息和至少一个采集指标;
36、还用于基于所述集群信息将所述采集指标写入对应的指标配置列表。
37、一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述任意一项所述的方法。
38、本发明由于采用了以上技术方案,具有显著的技术效果:
39、本发明通过采集器和zookeeper的配合工作,差异化的对各集群进行指标采集,通过缩减采集指标的数量,大幅减少prometheus中存储的数据量,并通过降低需要存储的数据量提高promethues的数据持久性和稳定性;
40、本发明利用zookeeper的一致性,准确的感知到同一集群下其他采集器的采集节点信息,从而实现对采集任务的均匀分配,能够减少了单个采集器的采集压力。
41、本发明通过对采集节点信息的注册实现对采集器的部署,部署方便。
1.一种分布式指标采集方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种分布式指标采集方法,其特征在于:
3.根据权利要求2所述的一种分布式指标采集方法,其特征在于,采用环形链表并取模模式,将指标配置列表中的采集指标基于采集节点信息均匀分配给每个采集器,使各采集器获得相应的采集任务的具体步骤为:
4.根据权利要求1-3任一所述的一种分布式指标采集方法,其特征在于:
5.根据权利要求1-3任一所述的一种分布式指标采集方法,其特征在于:
6.一种分布式指标采集组件,其特征在于,包括与集群一一对应的采集模块,所述采集模块包括至少一个采集器,所述采集器均分别与zookeeper和prometheus信号相连;
7.根据权利要求5所述的一种分布式指标采集组件,其特征在于,所述采集器还包括:
8.一种分布式指标采集系统,与prometheus信号相连,prometheus用于监控各集群;
9.根据权利要求8所述的一种分布式指标采集系统,其特征在于,还包括规则管理模块;
10.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如权利要求1~5中任意一项所述的方法。