专利名称:一种服务器集群的监控方法、装置与系统的制作方法
技术领域:
本发明涉及集群通信技术领域,更具体的说是涉及一种服务器集群的监控方法、装置与系统。
背景技术:
集群是由一些互相连接在一起的计算机构成的一个并行或分布式系统,服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像只有一个服务器。随着分布式集群系统的应用,集群的规模也越来越大,为了保证集群整体的良好运行,集群中服务器的负载数据采集和运行状态监控就显得极为重要。Ganglia就是现有技术中使用的一种主要的集群监控开源软件。参考图1所示,图1为Ganglia的架构图,其中,Ganglia是基于分层设计的,主要包括gmond进程、gmetad进程,以及一个Web前端(Clint)。集群中每台被监控的服务器(节点Node)上都运行一个采集服务器运行状态信息的gmond进程,所述服务器运行状态信息包括操作系统信息、CPU信息、网络流量使用信息等。每个gmond进程获取一台服务器的信息,同一子集群中的不同服务器的gmond进程之间传递彼此采集的信息,实现服务器信息的共享;然后,gmetad通过单播路由的方式与子集群中的任一服务器中的gmond进程通信以获取子集群中所有服务器运行状态信息,并将获取的信息保存到数据库中,以便对集群的运行状况进行分析。
发明内容
发明人在研究过程中发现,Ganglia监控架构是基于分层设计的,在一定程度上可以满足集群规模的扩大,但是随着gmetad管辖的子集群规模的扩大,gmond进程就需要频繁的与同一子集群内的其他服务器进行通信以实现服务器运行状态信息共享,占用较多服务器资源和网络资源,gmetad管辖的子集群规模越大,服务器运行状态信息采集对服务器正常运行的影响越大,基于Ganglia架构的集群监控限制了服务器集群的扩展。本发明提供一种服务器集群的监控方法、装置与系统,以解决现有技术中监控服务器运行状态信息时因大量占用服务器资源对服务器集群的扩展造成限制的技术问题,在实现集群监控的条件下,提高服务器集群的扩展性。为解决上述技术问题,本发明提供一种服务器集群的监控方法、装置与系统,本发明提供如下技术方案:—种服务器集群的监控装置,该装置包括:—个控制节点、所述控制节点包括至少一个任务分配节点,每个任务分配节点包括至少一个采集节点;所述任务分配节点,用于为其包括的至少一个采集节点中的每个采集节点分配多个待采集服务器;
采集节点,用于根据预设采集协议及所述采集协议对应的采集周期,从其所属的任务分配节点分配的多个待采集服务器中采集服务器运行状态信息,并将服务器运行状态信息通过任务分配节点转发给控制节点进行保存。优选的,控制节点还用于根据保存的服务器运行状态信息调整采集周期,所述调整包括:若采集服务器运行状态信息时,服务器响应时间大于预设阈值,增大采集周期。优选的,控制节点还用于更新当前业务配置节点负责分配的待采集服务器的范围,所述更新包括:增加、减少当前业务配置节点负责分配的服务器或将所述当前业务配置节点负责分配的部分服务器替换为其他业务配置节点负责分配的服务器。优选的,控制节点还用于删除当前业务配置节点,以撤销对所述当前业务配置节点负责的服务器运行状态信息的采集。优选的,当前业务分配节点还用于更新当前采集节点负责采集服务器的范围,所述更新包括:增加、减少当前采集节点负责采集的服务器或将所述当前采集节点负责采集的部分服务器替换为其他采集节点负责的服务器。优选的,当前业务分配节点还用于当前采集节点出现故障而无法采集服务器信息时,将所述当前采集节点负责采集的多个服务器分配给当前业务分配节点包括的其他采集节点进行采集。本发明还提供一种服务器集群的监控方法,所述方法包括:当前采集节点根据预设采集协议及所述采集协议对应的采集周期,从当前任务分配节点为其配置的多个待采集服务器中采集服务器运行状态信息,所述当前任务分配节点包括多个采集节点;当前采集节点·将采集的多个服务器的运行状态信息通过当前业务分配节点转发给控制节点保存,所述控制节点包括多个任务分配节点。优选的,所述采集协议包括简单网络管理协议SNMP和智能平台管理协议IPMI。优选的,所述方法还包括:控制节点根据保存的服务器运行状态信息调整采集周期,所述调整包括:若采集服务器运行状态信息时,服务器响应时间大于预设阈值,增大采集周期。优选的,所述方法还包括:控制节点更新当前业务配置节点负责分配的待采集服务器的范围,所述更新包括:增加、减少当前业务配置节点负责分配的服务器或将所述当前业务配置节点负责分配的部分服务器替换为其他业务配置节点负责分配的服务器。优选的,所述方法还包括:控制节点删除当前业务配置节点,以撤销对所述当前业务配置节点负责的服务器的运行状态信息采集。优选的,所述方法还包括:当前业务分配节点更新当前采集节点负责采集服务器的范围,所述更新包括:增加、减少当前采集节点负责采集的服务器或将所述当前采集节点负责采集的部分服务器替换为其他采集节点负责采集的服务器。优选的,所述方法还包括:若当前采集节点出现故障而无法采集服务器运行状态信息时,当前业务分配节点将所述当前采集节点负责采集的多个服务器分配给当前业务分配节点包括的其他采集节点进行采集。优选的,所述当前采集节点将采集的多个服务器的运行状态信息通过当前业务分配节点转发给控制节点保存,包括:当前采集节点将采集的服务器运行状态信息根据对应的采集协议进行封装;
当前采集节点将封装后的信息发送到当前业务分配节点进行解析和数据结构转化;当前业务分配节点将转化后的信息发送到控制节点进行保存;或,当前采集节点将采集的服务器运行状态信息根据对应的采集协议进行封装;当前采集节点将封装后的信息通过当前业务分配节点转发给控制节点进行解析和数据结构转化;控制节点保存转化后的信息。本发明还提供一种服务器集群的监控系统,所述系统包括服务器集群和上述任一所述监控装置。本发明的技术方案中,使用了与现有技术完全不同的服务器集群的监控架构,具体的,设置了业务分配节点,且每个业务分配节点包括了多个采集节点,每个采集节点负责采集业务分配节点为其分配的多个待采集服务器的信息,最后将采集的服务器信息发送给控制节点进行保存。 本发明中,每个采集节点负责采集多个服务器的信息,节点与服务器之间是一点对多点的关系,多个采集节点之间不需要进行通信,直接将采集的数据转发给控制节点保存,不会占用额外的服务器资源或者网络资源。当服务器集群的规模扩大时,如果服务器数量小规模的增加,则可以通过增加采集节点的数目即可实现服务器集群的规模扩大;若服务器数量大规模的增加,则通过增加业务分配节点的数目即可实现大规模服务器集群,本发明的技术方案采用的监控架构,有利于服务器集群的大规模扩展并对其实施监控。进一步的,本发明可以在除控制节点之外的节点出现故障时,实现功能的转移,使整个服务器集群的监控可以正常运行;控制节点通过调整服务器运行状态信息采集周期,可以适当的减小信息采集对负载较大的服务器带来的影响,避免与服务器业务程序的资源竞争。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中Ganglia的架构图;图2本发明一种服务器集群的监控方法实施例1的流程图;图3为本发明一种服务器集群的监控方法实施例2的流程图;图4为本发明采用的服务器集群监控架构图;图5为本发明一种服务器集群的监控装置实施例1的结构示意图;图6为本发明一种服务器集群的监控系统实施例1的结构示意图。
具体实施例方式为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了便于对本发明中服务器集群监控装置的理解,首先对所述装置对应的方法实施例进行说明。参考图2所示,为本发明提供的一种服务器集群的监控方法实施例1的流程图,本实施例具体可以包括:步骤201:当前采集节点从当前任务分配节点为其配置的多个待采集服务器中采集服务器运行状态信息。在实际应用中,如果要进行数据采集,需要实现设定数据采集周期以及数据采集使用的通信协议,本实施例中数据采集周期以及数据采集使用的通信协议均由控制节点进行设置。控制节点包括多个业务分配节点(控制节点的二级节点),每个业务分配节点负责一定数目的服务器的采集任务,其中每个业务分配节点又包括多个采集节点(业务分配节点的二级节点)。业务分配节点将其负责的服务器的采集任务分配给下级的多个采集节点,由采集节点具体进行服务器运行状态信息的采集。以控制节点包括的当前业务分配节点、和当前业务节点包括的当前采集节点为例进行本实施例的说明。当前采集节点从当前任务分配节点为其配置的多个待采集服务器中采集服务器运行状态信息时,可以采用数据抓取技术,按照不同的采集协议分别实施数据抓取。所述采集协议包括SNMP协议(Simple Network Management Protocol,简单网络管理协议)和IPMI(Intelligent Platform Management Interface,智能平台管理接口)协议,通过 SNMP 协议抓取服务器上的数据前,必须保证被采集服务器安装并运行了 SNMP服务,一般服务器中均内置了 SNMP服务。所述SNMP协议和IPMI协议分别可以对应不同的采集周期,因为根据不同的协议采集的数据不同,所以上述协议可以并行进行。当前采集节点根据不同协议的周期向服务器分别发送基于SNMP协议的信息抓取请求和基于IPMI协议的信 息抓取请求。基于SNMP协议抓取的服务器信息为服务器的负载数据,主要包括:磁盘10 (传输流量)、网卡10 (传输流量)、RAID (磁盘阵列,RedundantArrays of Inexpensive Disks)卡信息和服务器Proc (负载信息)。基于IPMI协议米集服务器运行状态信息又称为带外采集,所述带外采集可以这样理解:当企业网络建成后,网络上会传输各种企业的业务数据,如果网络出现问题,仍然通过这个网络排除故障,这种方式称为带内管理;如果另外再建一套网络系统,通过这新建系统去管理业务网络,这种就是带外管理。互联网公司中带外采集特指采集端通过IPMI协议访问服务器的BMC (BaseboardManagement Controller,基板管理控制器),获取服务器上相关传感器的值。基于IPMI协议抓取的服务器信息为服务器物理状态信息,主要包括:服务器运行时的温度、电压和电流等物理信息。步骤202:当前采集节点将采集的多个服务器的运行状态信息通过当前业务分配节点转发给控制节点保存。因为当前采集节点抓取服务器信息时,使用的采集协议不同,所以采集到的数据要分别处理。当前采集节点从多个服务器抓取到服务器运行状态信息后,根据采集协议对抓取到的服务器运行状态信息进行封装,将封装后的运行状态信息通过当前业务分配节点转发到控制节点。其中运行状态信息通过当前业务分配节点转发到控制节点可以包括以下两种方式:I)、当前采集节点将采集的服务器运行状态信息根据对应的采集协议进行封装;数据封装后,当前采集节点将封装后的信息发送到当前业务分配节点进行数据解析和数据结构的转化;由当前业务分配节点将转化后的信息发送到控制节点进行保存;2)、当前采集节点将采集的服务器运行状态信息根据对应的采集协议进行封装;当前采集节点直接将封装后的信息通过当前业务分配节点转发给控制节点,由控制节点本身进行数据解析和数据结构的转化,然后,将转化后的数据进行保存。优选的,当前业务分配节点可以备份所述信息,当向控制节点转发数据不成功时,重发采集的信息。控制节点是以一定的数据格式来存储数据,所以要对解析得到的数据进行格式转化,便于控制节点对服务器信息的存储。在实际应用中,控制节点存储数据后,可以对存储的数据进一步处理,比如使用RRDTooI (基于Round Robin Database的存储和绘图工具)对根据存储的数据处理,将服务器运行状态以图形显示,以Web方式直观的提供给客户端。本实施例的技术方案中,使用了与现有技术完全不同的服务器集群的监控架构,具体的,设置了业务分配节点,且每个业务分配节点包括了多个采集节点,每个采集节点负责采集业务分配节点为其分配的多个待采集服务器的信息,最后将采集的服务器信息发送给控制节点进行保存。本发明中,每个采集节点负责采集多个服务器的信息,节点与服务器之间是一点对多点的关系,多个采集节点之间不需要进行通信,直接将采集的数据转发给控制节点保存,不会占用额外的服务器资源或者网络资源。当服务器集群的规模扩大时,如果服务器数量小规模的增加,则可以通过增加采集节点的数目即可实现服务器集群的规模扩大;若服务器数量大规模的增加,则通过增加业务分配节点的数目即可实现大规模服务器集群。同时采用SNMP协议和IPMI协议,基于SNMP协议的信息采集依赖于操作系统,当服务器的操作系统出现故障时,无法对操作系统出现故障的服务器进行监控,服务器信息的采集会受影响甚至中断。会失去对所述服务器的监控能力,集群的运行稳定性将收到一定的影响。采用基于IPMI协议的采集不需要依赖操作系统,而是通过服务器中独立的BMC获取服务器的物理健康特征,如温度,电压,电扇工作状态,电源状态等。不需要与服务器的操作系统进行通信,不会对操作系统的运行造成负担,业务程序消耗的是操作系统内的计算和存储资源,基于IPMI协议采集不会与被采集服务器上运行的业务程序竞争资源,对被采集服务器带来的影响几乎为零。在服务器出现严重故障甚至宕机时,采用本实施例的技术方案仍然可以获取服务器的电流、电压和温度信息,并进行远程控制服务器的操作,比如服务器的开关机或重启。与现有技术相比,使得服务器集群监控系统的健壮性得到了保证。为了进一步的理解本发明的技术方案,本发明还提供了一种服务器集群的监控方法实施例2,参考图3所示,为本发明提供的一种服务器集群的监控方法实施例2的流程图,本实施例可以看作是在所述实施例1基础上的一个具体实现,本实施例中与实施例1中相关的步骤的实现方式,可以参考实施例1,本实施例中不再作详细说明。所述实施例2要借助图4所示的架构图来进行说明,参考图4所示,为服务器集群的监控架构图,图4所示监控架构分为四部分:控制节点(Central Control Node,以下简称Central),业务分配节点 (Master Node,以下简称Master),采集节点(Slave Node,以下简称Slave),数据缓冲池(DataPool Node,以下简称DataPool )。图4仅仅是示意性的说明本实施例的监控架构图,其中所包括的每级节点的个数并不局限于图4中所示的情况。其中在业务分配节点和控制节点中均有数据缓冲池,如果将数据缓冲池与其所在的业务分配节点或控制节点作为一个节点看待的话,本监控架构也可以分为三部分,在实际实施中,所述的控制节点、业务分配节点、采集节点和数据缓冲池可以集成在一台服务器中,或者所述多个节点中任意的两个或者三个组合在一起集成在一台服务器,或者每个节点均由单独的服务器或多个服务器来实现,这里不做具体限制。当每个节点均由单独的服务器来实现时,对服务器集群的监控部分也可以看作是一个小的服务器集群。其中,Central节点负责Master节点的辖域管理和全局采集周期管理;Master节点负责为其辖域的服务器生成具体的采集任务,并且派发,监听,动态调整此类任务以实现负载均衡;Slave节点负责采集任务的具体执行;DataPool节点负责采集结果的解析,结构化抽取和数据存储,一般情况下每个Master节点都有与其对应的Datapool节点,其辖域内采集数据均存储到此DataPool节点中。各节点之间通过套接字(Socket)通信,以保证模块间较低的稱合度,Central节点与Master节点,Master节点与Slave节点间都是一对多的关系。基于图4所示的监控架构,以Masterl节点为当前业务分配节点、Slavel节点为当前采集节点为例,所述实施例2具体可以包括:步骤301 =Central节点为Masterl节点划分子集群,并设定采集周期。实际运行场景下,Central节点要为所有的Master节点划分子集群和设定采集周期,这里以Masterl节点为例,其他Master节点的操作均可以参考Masterl节点。Central节点可以采用为Masterl节点划分子集群的方式为Masterl节点分配待采集的多个服务器。Central节点为Masterl节点划分子集群后,在对服务器集群的监控过程中,还可以对Masterl节点子集群的划分进行更新,比如,为Masterl节点增加新的子集群,修改Masterl节点管辖的子集群的范围。另外,Central节点还可以撤销Masterl节点,以达到采集部分服务器信息的目的,当Masterl节点出现故障时,Central节点可以将Masterl节点管辖的子集群分配给Ma`ster2节点管辖,以保证监控系统的稳定性。Central节点为Masterl节点划分子集群的同时,还要为服务器信息采集设定采集周期,因为采集服务器信息时使用了 SNMP协议和IPMI协议,所以要分别设置采集周期。在数据采集过程中,如果采集某个服务器信息时,该服务器响应的时间较长(可以根据实际应用场景设置一个服务器响应阈值,如果大于该阈值,则时间较长),说明该服务器的负载较大,为了减轻服务器的负载,可以适当的增大该服务器的采集周期,在采集过程中尽量少的占用服务器资源,不影响服务器业务程序的正常运行。如果采集某个服务器信息时,该服务器响应的时间较短,说明该服务器的负载较小,此时,可以保持采集周期不变或者适当的减小该服务器的采集周期。步骤302:Masterl节点发起采集任务。Central节点为Masterl节点设置管辖的子集群后,具体的服务器采集任务由Masterl节点发起,具体的由Masterl节点包括的多个Slave节点执行采集任务。参考图4所示,以Masterl节点包括Slavel节点和Slave2节点为例,具体的Masterl节点从本地数据库中读取待采集服务器的标识信息,并生成携带服务器标识信息的采集任务。Masterl节点向下级Slavel节点和Slave2节点发送的采集任务中包括Slavel节点和Slave2节点需要采集的所有服务器的身份信息,优选的,这些信息以数组的形式发送,以单个服务器的标识信息为例,参考表I所示,为Masterl与Slavel节点和Slave2节点之间的信息传递格式。表IMasterl与Slavel节点和Slave2节点之间的信息传递格式
权利要求
1.一种服务器集群的监控装置,其特征在于,所述装置包括一个控制节点、所述控制节点包括至少一个任务分配节点,每个任务分配节点包括至少一个采集节点; 所述任务分配节点,用于为其包括的至少一个采集节点中的每个采集节点分配多个待采集服务器; 每个采集节点,用于根据预设采集协议及所述采集协议对应的采集周期,从其所属的任务分配节点分配的多个待采集服务器中采集服务器运行状态信息,并将服务器运行状态信息通过所属的任务分配节点转发给控制节点进行保存。
2.根据权利要求1所述的装置,其特征在于,控制节点还用于根据保存的服务器运行状态信息调整采集周期,所述调整包括:若采集服务器运行状态信息时,服务器响应时间大于预设阈值,增大采集周期。
3.根据权利要求1所述的装置,其特征在于,控制节点还用于更新当前业务配置节点负责分配的待采集服务器的范围,所述更新包括:增加、减少当前业务配置节点负责分配的服务器或将所述当前业务配置节点负责分配的部分服务器替换为其他业务配置节点负责分配的服务器。
4.根据权利要求1所述的装置,其特征在于,控制节点还用于删除当前业务配置节点,以撤销对所述当前业务配置节点负责的服务器运行状态信息的采集。
5.根据权利要求1所述的装置,其特征在于,当前业务分配节点还用于更新当前采集节点负责采集服务器的范围,所述更新包括:增加、减少当前采集节点负责采集的服务器或将所述当前采集节点负责采集的部分服务器替换为其他采集节点负责的服务器。
6.根据权利要求1所述的装置,其特征在于,当前业务分配节点还用于当前采集节点出现故障而无法采集服务器信息时,将所述当前采集节点负责采集的多个服务器分配给当前业务分配节点包括的其他采集节点进行采集。`
7.一种服务器集群的监控方法,其特征在于,所述方法包括: 当前采集节点根据预设采集协议及所述采集协议对应的采集周期,从当前任务分配节点为其配置的多个待采集服务器中采集服务器运行状态信息,所述当前任务分配节点包括多个采集节点; 当前采集节点将采集的多个服务器的运行状态信息通过当前业务分配节点转发给控制节点保存,所述控制节点包括多个任务分配节点。
8.根据权利要求7所述的方法,其特征在于,所述采集协议包括简单网络管理协议SNMP和智能平台管理协议IPMI。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括: 控制节点根据保存的服务器运行状态信息调整采集周期,所述调整包括:若采集服务器运行状态信息时,服务器响应时间大于预设阈值,增大采集周期。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括: 控制节点更新当前业务配置节点负责分配的待采集服务器的范围,所述更新包括:增力口、减少当前业务配置节点负责分配的服务器或将所述当前业务配置节点负责分配的部分服务器替换为其他业务配置节点负责分配的服务器。
11.根据权利要求7所述的方法,其特征在于,所述方法还包括: 控制节点删除当前业务配置节点,以撤销对所述当前业务配置节点负责的服务器的运行状态信息米集。
12.根据权利要求7所述的方法,其特征在于,当前业务分配节点更新当前采集节点负责采集服务器的范围,所述更新包括:增加、减少当前采集节点负责采集的服务器或将所述当前采集节点负责采集的部分服务器替换为其他采集节点负责采集的服务器。
13.根据权利要求7所述的方法,其特征在于,所述方法还包括:若当前采集节点出现故障而无法采集服务器运行状态信息时,当前业务分配节点将所述当前采集节点负责采集的多个服务器分配给当前业务分配节点包括的其他采集节点进行采集。
14.根据权利要求7所述的方法,其特征在于,所述当前采集节点将采集的多个服务器的运行状态信息通过当前业务分配节点转发给控制节点保存,包括: 当前采集节点将采集的服务器运行状态信息根据对应的采集协议进行封装; 当前采集节点将封装后的信息发送到当前业务分配节点进行解析和数据结构转化; 当前业务分配节点将转化后的信息发送到控制节点进行保存; 或, 当前采集节点将采集的服务器运行状态信息根据对应的采集协议进行封装; 当前采集节点将封装后的信息通过当前业务分配节点转发给控制节点进行解析和数据结构转化; 控制节点保存转化后的信息。
15.一种服务器集群的监控系统,其特征在于,所述系统包括服务器集群和权利要求1至6任一项所述的监控装置。
全文摘要
本发明公开了一种服务器集群的监控装置,所述装置包括一个控制节点、所述控制节点包括至少一个任务分配节点,每个任务分配节点包括至少一个采集节点;所述任务分配节点,用于为其包括的至少一个采集节点中的每个采集节点分配多个待采集服务器;每个采集节点,用于从多个待采集服务器中采集服务器运行状态信息,并将服务器运行状态信息通过所属的任务分配节点转发给控制节点进行保存。本发明中,每个采集节点负责采集多个服务器的信息,节点与服务器之间是一点对多点的关系,多个采集节点之间不需要进行通信。当服务器集群的规模扩大时,只需增加采集节点的数目或业务分配节点的数目即可实现大规模服务器集群的监控。
文档编号H04L12/24GK103236949SQ201310153008
公开日2013年8月7日 申请日期2013年4月27日 优先权日2013年4月27日
发明者周星, 彭毅 申请人:北京搜狐新媒体信息技术有限公司