跨数据中心集群的分布式系统监控方法及系统
技术领域
本发明涉及服务器集群监控领域,尤其涉及横跨多数据中心实现监控系统及方法。
背景技术
随着云计算越来越多地应用到信息产业的各个领域,云平台所依托的数据中心数量逐渐增多、规模日趋庞大,进而出现单一云平台中运行的业务横跨多个数据中心的情况。如何有效地实现监控和管理庞大数量、跨数据中心、跨地域的集群设备并且保证系统的高性能和高可用性是当前面临的必要和紧迫的问题。
目前业界普遍采用的第一种监控架构是金字塔式的,例如由某大学的国家高性能计算机实验室研发针对的通用的应用于大规模Linux集群的监控系统软件SuperMon,它分为三个层次:底层每个节点上的数据服务(mon)用来收集节点状态信息,中层的数据集中器(Supermon)汇总来自每个mon的数据并处理来自上层的数据请求实例,最上层的应用客户端或顶层数据集中器汇总每个Supermon的数据,进行显示或者再次汇总;另外由Yahoo开发的基于Hadoop之上的用于分布式系统状态监控的大型数据采集与分析系统Chukwa,由Agent和Collector组件组成,Agent负责采集监控主机上原始数据,Collector负责收集Agent发送的数据并做持久化处理。这些软件组成的模块首先所有最底层被监控的服务器节点上的代理程序收集数据,然后每个代理程序将数据汇聚给所在集群的中心监控服务器节点,最后中心监控服务器节点将数据累积上传给总监控服务器节点,监控集群的数据则需要从总监控节点获取。
采用这种架构存在以下几个问题:
(1)大量监控数据由下层服务器节点同时向总监控节点汇集,同时总监控节点还要响应业务方面获取监控数据的请求,无疑极大增加了总监控节点的输入输出压力,同时也直接导致稳定性下降,不能很好地满足日常业务需求。
(2)监控系统中节点角色的唯一性,如果中心监控节点出现问题,则部分监控系统就失效了;如果总监控服务器节点出现故障或宕机,则整个监控系统随之陷于瘫痪。
(3)面对跨多个数据中心的业务时,总监控节点在总数据量和架构的瓶颈限制下将很难横跨多个数据中心,将很大程度上减慢响应的时间而无法满足实时性的要求。
第二种监控架构为分布式架构,突出的代表是由美国UC Berkeley开发维护的Ganglia软件,它基于XML技术的数据传递可以是系统的状态数据跨越不同的系统平台而进行交互,解决了系统间异构性的问题;采用基于多播的listen/announce协议,每个节点向所有相邻节点发出自身节点的状态监控信息。收发大量不必要的冗余信息,造成网络和节点I/O开销非常大,导致监控数据刷新的频率较慢。
另外,上面所述的Ganglia在用户进行安装初始化过程中,每个节点的代理端gmond都需要手工配置参数后才能运行,如果需要变更运行配置参数,还需要逐个节点进行修改后重启程序,过程非常繁琐,是监控系统的灵活性和可扩展性随之下降。
发明专利一种超大规模集群监控系统及方法,该系统包括分区监控服务器和中心监控服务器;每个分区监控服务器采集到每个分区集群内部信息后,将该信息推送至中心监控服务器;中心监控服务器接收来自分区监控服务器的信息,并按照信息对所有分区进行统一配置,然后将统一配置结果提供给分区监控服务器;分区监控服务器接收来自中心监控服务器的统一配置结果,按此结果对集群进行监控和管理。该发明采用了分区监控服务器和中心监控服务器的金字塔架构,当下层分区监控服务器及被监控的节点规模增大时,中心监控服务器的网络和本机I/O非常大。并且没有实现对于业务个性化监控请求的定制,没有对于单个业务运行在多个数据中心情况下的协同处理,仍然停留在单个数据中心的层面。但是仅仅解决业务定制的问题,并没有将各层节点的职能做了清晰地划分而使监控集群更加高效。
发明专利分布式集群监控系统及方法,该方法包括以下步骤:每个分中心监控服务器采集到每个分布式集群内部的信息后,将信息推送至中心监控服务器。中心监控服务器接收来自分中心监控服务器的信息,并按照信息对所有分布式集群进行统一配置,然后将统一配置的结果提供给分中心监控服务器。分中心监控服务器接收来自中心监控服务器的统一配置结果,按照配置结果对分布式集群进行监控和管理。该发明为每个子集群创建了分中心的监控器,将采集到的集群内部信息推送到中心监控服务器,仍然会造成中心监控服务器的网络和节点I/O巨大的问题没有解决。没有满足业务的个性化监控定制需求,并且针对各层节点的动态扩展性和运行时稳定性不佳。
发明内容
为了解决对云计算横跨多数据中心的服务器集群的监控当前面临的诸多问题,提出了跨数据中心集群的分布式系统监控方法及系统,采用监控数据汇聚和节点关系控制相分离的方式实现,降低了高层节点的负载,使监控系统更加有针对性和效率。通过使用统一的集中式监控平台,有效实现了对超大规模集群进行高效的监控和管理。
具体地讲,本发明公开了一种跨数据中心集群的分布式系统监控系统,该系统采用多层分布式的架构,共包括业务层和支撑层两个层级及其业务端、控制端、汇总端、监控端四个模块组成的监控架构;其中,业务层包括业务端、控制端两类功能对象;支撑层包括汇总端和监控端两类功能对象;
监控模板,用于规定监控端需要收集的数据域的信息;
业务端,用于向监控集群请求获取所有监控数据信息;
控制端,用于保存汇总端和监控端服务器的映射关系;负责处理业务端、控制端、监控端和汇总端的注册请求,并协调这业务端、汇总端、监控端服务器正常地运行;管理和控制汇总端和监控端的监控内容和策略;
汇总端,用于统计和处理监控端上传的监控数据;分解由控制端下发的监控模板,根据内容下发给对应的监控端;响应业务端提交的获取集群内的监控数据请求;向控制端上传其下辖监控端的资源或设备的报警信息;
监控端,用于根据监控模板监控本机的各项指标数据,并向汇总端进行提交;运行由汇总端下发更新的监控模板规定的内容;
监控集群,用于将监控端、汇总端和控制端运行完整监控系统模块的集合。
该四个模块在该系统中均包括多个服务器节点。
该数据域的信息,包括控制端和汇总端的设备信息、域元素的名称、数值精度、域元素单位、采集和上传的时间间隔和上下限值、唯一标识、附加信息等数据域相关的内容和待监控端节点列表、监控起止时间、备用分流控制端节点列表、备用分流汇总端节点列表、数值特征汇总方式等策略操作的相关信息。
本发明还公开了一种跨数据中心集群的分布式系统监控方法,采用多层分布式的架构,共包括业务层和支撑层两个层级及其业务端、控制端、汇总端、监控端四个模块组成的监控架构;其中,业务层包括业务端、控制端两类功能对象;支撑层包括汇总端和监控端两类功能对象;
启动步骤,用于规定监控端需要收集的数据域的信息;
业务步骤,用于向监控集群请求获取所有监控数据信息;
控制步骤,用于保存汇总端和监控端服务器的映射关系;负责处理业务端、控制端、监控端和汇总端的注册请求,并协调这业务端、汇总端、监控端服务器正常地运行;管理和控制汇总端和监控端的监控内容和策略;
汇总步骤,用于统计和处理监控端上传的监控数据;分解由控制端下发的监控模板,根据内容下发给对应的监控端;响应业务端提交的获取集群内的监控数据请求;向控制端上传其下辖监控端的资源或设备的报警信息;
监控步骤,用于根据监控模板监控本机的各项指标数据,并向汇总端进行提交;运行由汇总端下发更新的监控模板规定的内容;
监控集群步骤,用于将监控端、汇总端和控制端运行完整监控系统模块的集合。
四个模块的启动步骤如下:
步骤S1,控制端初始化过程;
步骤S11,如果监控集群在没有其他的控制端的情况下,则直接运行新控制端即可;
步骤S12,如果监控集群存在其他控制端时,则新控制端将本机信息向监控集群中在任意一个目的控制端发送注册请求;
步骤S13,目的控制端返回注册结果信息,如果成功,则返回包括所有控制端节点的信息,然后运行下面的步骤;如果失败则终止;
步骤S14,新添加的控制端如果存在下辖汇总端和监控端等服务器节点时,则继续向目的控制端同步其下辖汇总端-监控端映射关系以及监控端的监控模板信息;
步骤S15,目的控制端将包括新添加的控制端配置信息、新增的下辖汇总端-监控端映射关系和监控模板信息等内容同步到监控集群众所有其他的控制端中。
其中,汇总步骤具体包括如下步骤:
步骤S21,新汇总端向控制端发送包括本机配置信息的注册请求;
步骤S22,控制端处理步骤S21的请求并返回结果,成功则继续进行下列步骤;失败则终止;
步骤S23,汇总端如果有下辖的监控端节点时,则将其与所有下辖监控端的映射关系、各节点监控模板和配置信息整理并向控制端发送加入监控集群的附加请求;如果没有下辖监控端节点,则终止;
步骤S24,控制端处理S23步骤的附加请求,校验并记录新增加的汇总端上传的配置信息、各个监控模板和汇总端-监控端映射关系信息;
步骤S25,控制端根据汇总端的配置等信息处理并返回汇总端和监控端绑定结果,并返回备用分流控制端服务器信息列表;
步骤S26,控制端将本机信息、新增的汇总端-监控端映射关系数据和监控模板同步到另外的控制端中。
监控步骤分封闭式和开放式,其中封闭式监控步骤具体包括如下步骤:
步骤S31,监控端将包括本机信息的注册请求发送给汇总端;
步骤S32,汇总端将包括监控模板等信息返回给监控端;
步骤S33,监控端根据步骤S32返回的监控模板中规定的内容,评估本节点的配置和性能后进行填充,然后上传给汇总端;
步骤S34,汇总端根据步骤S33填充的监控模板内容确定是否进行添加。如果添加,则更新保存本机中的汇总端-监控端的映射关系和监控端节点的模板信息;反之,则向监控端节点回应拒绝信息;
步骤S35,最后将监控端的监控模板和新增的汇总端-监控端映射关系上传到控制端中,完成与监控端的绑定操作;
步骤S36,汇总端向监控端返回注册处理结果信息;
步骤S37,控制端向监控集群中所有其他的监控端同步新增加的汇总端-监控端映射关系信息和监控模板。
监控步骤分封闭式和开放式,其中开放式监控步骤具体包括如下步骤:
步骤S41,新监控端将包括本机配置信息的注册请求发送给控制端;
步骤S42,控制端将监控模板信息返回给请求的监控端;
步骤S43,监控端根据本机的实际配置和性能填充步骤S42返回的监控模板,继续向控制端发送请求;
步骤S44,控制端根据步骤S43中填充好的监控模板的信息确定是否在监控集群中添加监控端,如果成功添加则返回控制端保存的下辖汇总端列表信息给监控端,之后进行下述步骤;反之则返回拒绝信息;
步骤S45,监控端收到步骤S44中的汇总端节点列表之后,验证与汇总端节点的连通性;
步骤S46,如果联通成功则将本机信息和欲加入的汇总端信息向控制端提交绑定请求;
步骤S47,控制端将此监控端的请求进行记录并新增汇总端-监控端映射关系后,将监置控模板信息和配信息下发到对应的汇总端中,然后向新监控端发送绑定成功信息;
步骤S48,新监控端根据步骤S43中填充好的监控模板规定的数据内容要求收集和整理,然后向汇总端上传监控数据;
步骤S49,在步骤S42中的控制端向监控集群中的其他控制端节点同步新加入的监控端信息及与汇总端的映射关系。
业务步骤具体包括如下步骤:
步骤S51,业务端向控制端发送包括业务端的基本信息、请求的进行监控的节点集合、需要获取节点的数据域及其采集频率和精度等内容的监控模板请求信息;
步骤S52,控制端根据业务端的请求,在所有汇总端-监控端映射关系中查询符合条件的汇总端和监控端服务器节点列表,然后生成为后续业务端与汇总端通信索引用的唯一标识;
步骤S53,控制端分解业务端的请求内容,分别将包括业务端节点信息、对应的监控端节点列表集合、唯一标识等监控模板信息逐个下发给所有监控端对应汇总端服务器;
步骤S54,控制端向业务端返回包括汇总端列表信息的请求处理结果和在S52步骤中生成的业务端和汇总端通信的唯一标识;
步骤S55,业务端将包括机器信息和唯一标识的监控请求逐个发送给步骤S54中的列表中的所有汇总端服务器;
步骤S56,汇总端根据业务端的请求中包括的机器信息和唯一标识查询并整理其需要的所有下辖监控端的数据;
步骤S57,汇总端将步骤S56中的监控数据返回给业务端。
所述的跨数据中心集群的分布式系统监控方法,开放式监控步骤在监控集群中的注销过程、封闭式监控步骤在监控集群中的注销过程、汇总步骤在监控集群的注销过程与各自的启动步骤相同。
本发明中系统实现了统一管理、稳定开放的针对云计算跨越多数据中心的监控架构,具有如下技术效果:
1、控制端和汇总端负责维护整个监控集群各类型节点列表和映射关系等核心数据,降低了上层节点的负载,缩短了监控数据传输路径,降低了网络间和节点I/O的开销,使监控系统更加高效。
2、控制端和汇总端均采用分布式的架构,包括各自的备用分流节点,在单个节点负载量较大或者宕机的情况下,仍然能够保证了系统运行和响应的稳定性。
3、开放性的监控系统很好的满足了多数据中心和多业务方的可定制化监控的需求,例如在业务跨多数据中心的情况下,即可根据业务方的需求进行监控信息的定制和获取;在监控过程中,业务的监控需求可以实现动态同步到所有目的监控节点并执行。
附图说明
图1为多示意图;
图1监控系统结构图;
图2监控系统初始化流程图;
图3控制端初始化过程;
图4汇总端初始化过程;
图5封闭式监控端初始化过程;
图6开放式监控端初始化过程;
图7业务端初始化过程。
具体实施方式
本发明的监控系统采用多层分布式的架构,并且系统共包括两个层级及其下四个模块类型组成的监控软件架构。两个层级分别为业务层和支撑层(参见附图1),四个软件模块分别是:业务层包括运行业务端监控软件的服务器(简称业务端)和运行控制端软件服务器(简称控制端)两类功能对象;支撑层包括运行汇总端软件的服务器(简称汇总端)和运行监控端软件的服务器(简称监控端)两类功能对象。每个模块类型在监控系统中包括多个节点。
监控模板(简称模板):规定监控端需要收集的数据域的信息,包括控制端和汇总端的设备信息、域元素的名称、数值精度、域元素单位、采集和上传的时间间隔和上下限值、唯一标识、附加信息等数据域相关的内容和待监控端节点列表、监控起止时间、备用分流控制端节点列表、备用分流汇总端节点列表、数值特征汇总方式等策略操作的相关信息。
业务端:向监控集群请求获取所有指定服务器节点的监控数据信息。
控制端:保存汇总端和监控端服务器的映射关系;负责处理业务端、控制端、监控端和汇总端的注册请求,并协调这业务端、汇总端、监控端服务器正常地运行;管理和控制汇总端和监控端的监控内容和策略。
汇总端:统计和处理监控端上传的监控数据;分解由控制端下发的监控模板,根据内容下发给对应的监控端;响应业务端提交的获取集群内的监控数据请求;向控制端上传其下辖监控端的资源或设备的报警信息。
监控端:根据监控模板监控本机的各项指标数据,并向汇总端进行提交;运行由汇总端下发更新的监控模板规定的内容。
监控集群:以上所有类型的服务器节点(监控端、汇总端和控制端)运行完整监控系统模块的集合。
本发明的监控系统启动的流程如附图2所示,每个模块部分的详细启动流程分解为如下具体步骤:
步骤S1,控制端初始化过程(参见图3)
步骤S11,如果监控集群在没有其他的控制端的情况下,则直接运行新控制端即可。
步骤S12,如果监控集群存在其他控制端时,则新控制端将本机信息向监控集群中在任意一个目的控制端发送注册请求。
步骤S13,目的控制端返回注册结果信息,如果成功,则返回包括所有控制端节点的信息,然后运行下面的步骤;如果失败则终止。
步骤S14,新添加的控制端如果存在下辖汇总端和监控端等服务器节点时,则继续向目的控制端同步其下辖汇总端-监控端映射关系以及监控端的监控模板信息。
步骤S15,目的控制端将包括新添加的控制端配置信息、新增的下辖汇总端-监控端映射关系和监控模板信息等内容同步到监控集群众所有其他的控制端中。
同理,可以类似上述步骤完成控制端服务器节点在监控集群的注销过程。
步骤S2,汇总端初始化过程(参见附图4)
步骤S21,新汇总端向控制端发送包括本机配置信息的注册请求;
步骤S22,控制端处理步骤S21的请求并返回结果,成功则继续进行下列步骤;失败则终止。
步骤S23,汇总端如果有下辖的监控端节点时,则将其与所有下辖监控端的映射关系、各节点监控模板和配置信息整理并向控制端发送加入监控集群的附加请求;如果没有下辖监控端节点,则终止;
步骤S24,控制端处理步骤S23的附加请求,校验并记录新增加的汇总端上传的配置信息、各个监控模板和汇总端-监控端映射关系信息;
步骤S25,控制端根据汇总端的配置等信息处理并返回汇总端和监控端绑定结果,并返回备用分流控制端服务器信息列表;
步骤S26,控制端将本机信息、新增的汇总端-监控端映射关系数据和监控模板同步到另外的控制端中。
同理,可以类似上述步骤完成汇总端在监控集群的注销过程。
步骤S3,封闭式监控端初始化过程(参见附图5)
步骤S31,监控端将包括本机信息的注册请求发送给汇总端;
步骤S32,汇总端将包括监控模板等信息返回给监控端;
步骤S33,监控端根据步骤S32返回的监控模板中规定的内容,评估本节点的配置和性能后进行填充,然后上传给汇总端。
步骤S34,汇总端根据步骤S33填充的监控模板内容确定是否进行添加。如果添加,则更新保存本机中的汇总端-监控端的映射关系和监控端节点的模板信息。反之,则向监控端节点回应拒绝信息。
步骤S35,最后将监控端的监控模板和新增的汇总端-监控端映射关系上传到控制端中,完成与监控端的绑定操作。
步骤S36,汇总端向监控端返回注册处理结果信息。
步骤S37,控制端向监控集群中所有其他的监控端同步新增加的汇总端-监控端映射关系信息和监控模板。
同理,可以类似上述步骤完成封闭式监控端在监控集群中的注销过程。
步骤S4,开放式监控端初始化过程(参见附图6)
步骤S41,新监控端将包括本机配置信息的注册请求发送给控制端;
步骤S42,控制端将监控模板信息返回给请求的监控端。
步骤S43,监控端根据本机的实际配置和性能填充步骤S42返回的监控模板,继续向控制端发送请求。
步骤S44,控制端根据步骤S43中填充好的监控模板的信息确定是否在监控集群中添加监控端,如果成功添加则返回控制端保存的下辖汇总端列表信息给监控端,之后进行下述步骤;反之则返回拒绝信息。
步骤S45,监控端收到步骤S44中的汇总端节点列表之后,验证与汇总端节点的连通性。
步骤S46,如果联通成功则将本机信息和欲加入的汇总端信息向控制端提交绑定请求。
步骤S47,控制端将此监控端的请求进行记录并新增汇总端-监控端映射关系后,将监置控模板信息和配信息下发到对应的汇总端中,然后向新监控端发送绑定成功信息。
步骤S48,新监控端根据步骤S43中填充好的监控模板规定的数据内容要求收集和整理,然后向汇总端上传监控数据。
步骤S49,在步骤S42中的控制端向监控集群中的其他控制端节点同步新加入的监控端信息及与汇总端的映射关系。
同理,可以类似上述步骤完成开放式监控端在监控集群中的注销过程。
步骤S5,业务端初始化过程(参见附图7)
步骤S51,业务端向控制端发送包括业务端的基本信息、请求的进行监控的节点集合、需要获取节点的数据域及其采集频率和精度等内容的监控模板请求信息;
步骤S52,控制端根据业务端的请求,在所有汇总端-监控端映射关系中查询符合条件的汇总端和监控端服务器节点列表,然后生成为后续业务端与汇总端通信索引用的唯一标识;
步骤S53,控制端分解业务端的请求内容,分别将包括业务端节点信息、对应的监控端节点列表集合、唯一标识等监控模板信息逐个下发给所有监控端对应汇总端服务器;
步骤S54,控制端向业务端返回包括汇总端列表信息的请求处理结果和在S52步骤中生成的业务端和汇总端通信的唯一标识;
步骤S55,业务端将包括机器信息和唯一标识的监控请求逐个发送给步骤S54中的列表中的所有汇总端服务器;
步骤S56,汇总端根据业务端的请求中包括的机器信息和唯一标识查询并整理其需要的所有下辖监控端的数据;
步骤S57,汇总端将步骤S56中的监控数据返回给业务端。
综上所述,本发明解决了背景技术部分所列当前存在的诸多问题,因此具有良好的应用前景和市场推广价值。实现了统一管理、稳定开放的针对云计算跨越多数据中心的监控架构,此架构有如下优点:
1、控制端和汇总端负责维护整个监控集群各类型节点列表和映射关系等核心数据,降低了上层节点的负载,缩短了监控数据传输路径,降低了网络间和节点I/O的开销,使监控系统更加高效。
2、控制端和汇总端均采用分布式的架构,包括各自的备用分流节点,在单个节点负载量较大或者宕机的情况下,仍然能够保证了系统运行和响应的稳定性。
3、开放性的监控系统很好的满足了多数据中心和多业务方的可定制化监控的需求,例如在业务跨多数据中心的情况下,即可根据业务方的需求进行监控信息的定制和获取;在监控过程中,业务的监控需求可以实现动态同步到所有目的监控节点并执行。