服务器集群监测方法及装置的制造方法

文档序号:10654428阅读:172来源:国知局
服务器集群监测方法及装置的制造方法
【专利摘要】本发明实施例提供一种服务器集群监测方法。在公共服务平台创建服务器集群的临时目录节点;监测所述临时目录节点,当监测到所述临时目录节点有异常时,定位异常子节点;根据所述异常子节点查询预设的异常处理预案,并根据所述异常处理预案对所述异常子节点进行处理。实现了服务器集群的持久化监测以及瞬时报警。
【专利说明】
服务器集群监测方法及装置
技术领域
[0001]本发明实施例涉及大数据处理技术领域,尤其涉及一种服务器集群监测方法及装置。【背景技术】
[0002]服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来服务器集群就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。一旦在服务器上安装并运行了群集服务,该服务器即可加入群集。集群化操作可以减少单点故障数量,并且实现了集群化资源的高可用性。
[0003]通常在分布式服务器集群中,一个大的作业被拆分为多个任务,并将这多个任务分发给集群中的多个服务器并行处理的,从而能够实现高效率的数据处理。
[0004]服务器集群中,当任意一个节点服务器出现故障之后需要启动实时报警,以使集群在接到报警之后启动备用的服务器来接管这一出故障的服务器从而保证作业的正常完成,但是如何实现对每个节点服务器的长时间持续的实时监控以及秒级报警是一个难点。 与此同时,当存在多个服务器集群时,需要对每一个服务器集群分别建立监控系统,消耗时间和资源较多。因此,一种改进的服务器集群监测方法亟待提出。
【发明内容】

[0005]本发明实施例提供一种服务器集群监测方法及装置,用以解决现有技术中对服务器集群进行监测时不能长时间持续监测且集群故障时不能快速报警的缺陷,实现对服务器集群的持续监测且服务器集群故障的秒级报警。
[0006]本发明实施例提供一种服务器集群监测方法,包括:
[0007]在公共服务平台创建服务器集群的临时目录节点;
[0008]监测所述临时目录节点,当监测到所述临时目录节点有异常时,定位异常子节点;
[0009]根据所述异常子节点查询预设的异常处理预案,并根据所述异常处理预案对所述异常子节点进行处理。
[0010]本发明实施例提供一种服务器集群监测装置,包括:
[0011]预处理模块,用于在公共服务平台创建服务器集群的临时目录节点;
[0012]监测模块,用于监测所述临时目录节点,当监测到所述临时目录节点有异常时,定位异常子节点;
[0013]异常处理模块,用于根据所述异常子节点查询预设的异常处理预案,并根据所述异常处理预案对所述异常子节点进行处理。
[0014]本发明实施例提供的服务器集群监测方法及装置,利用能够为不同集群提供公共服务的平台,在公共服务平台上根据集群结构创建临时目录节点,并通过对所述临时目录节点的监测实现对服务器集群的监测,改变了现有技术中进行服务器集群监测时,不能长时间持续检测且集群故障时不能快速报警的缺陷,实现了对服务器集群的持续监测且服务器集群故障的秒级报警。【附图说明】
[0015]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1为本申请实施例一的技术流程图;[〇〇17]图2为本申请实施例二的技术流程图;
[0018]图3为本申请实施例三的技术流程图;
[0019]图4为本申请实施例一的装置实施例结构示意图;
[0020]图5为本申请实施例二的装置实施例结构示意图。【具体实施方式】
[0021]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]假设这样一个应用场景,当存在多个服务器集群时,对每一服务器集群分别进行监控需要经过很繁琐的操作,而且占用较多监控资源,而多个服务器集群可以依赖于一个公共服务进行数据的维护以及集群配置的管理,因此,本申请实施例中采用公共服务平台对服务器集群进行监测,例如zookeeper这一公共服务平台。[0〇23] ZooKeeper是一个开放源码的分布式应用程序协调服务,是Google的Chubby—个开源的实现,是Hadoop和Hbase的重要组件。它能够为分布式应用提供一致性服务的软件, 提供的功能包括:配置维护、域名服务、分布式同步、组服务等。以下部分将结合附图详细阐述本申请实施例基于zookeeper进行服务器集群监测的具体实现。
[0024]图1是本申请实施例一的技术流程图,结合图1,本申请实施例一种服务器集群监测方法,可以有如下的实施过程:
[0025]步骤S110:在公共服务平台创建服务器集群的临时目录节点;
[0026]步骤S120:监测所述临时目录节点,当监测到所述临时目录节点有异常时,定位异常子节点;[〇〇27]步骤S130:根据所述异常子节点查询预设的异常处理预案,并根据所述异常处理预案对所述异常子节点进行处理。[0〇28]具体的,在步骤S110中,当所述公共服务平台为zookeeper时,所述创建服务器集群的临时目录节点可以是在GroupMembers中,在这个目录中,首先创建临时目录节点,所述临时目录节点的数量可以与服务器集群的数量相对应,例如,在一种应用场景中,需要监测的服务器集群有三个,则可以在GroupMembers中创建三个临时目录节点。在此步骤中,为实现对服务器集群中每一节点服务器的监控,还需根据服务器集群的结构,创建所述临时目录节点的所有子节点,其中,每一个所述子节点代表服务器集群的每一个服务器,所述子节点的数量可以与每个服务器集群中的服务器数量相对应,并以每一所述子节点服务器的IP 地址为所述子节点赋值。[0〇29] 例如,在GroupMembers目录中,仓I」建集群1的临时目录节点Nodel,并根据集群1中服务器的连接情况为所述临时目录节点建立子节点,例如Serverl、Serverl..Server N。
[0030]本步骤中,为所述临时目录节点创建子节点之后,进一步将每个子节点服务器的 IP地址赋值给每一子节点,以使得在服务器集群出现故障时,能够根据故障节点的IP地址快速定位故障服务器并启动处故障理方案。
[0031]因此,对于临时目录节点Nodel,可以有如下的赋值结果:
[0032]Nodel\Serverl\192.x.y.1
[0033]Nodel\Server2\192.x.y.2
[0034]Nodel\Server3\192.x.y.3
[0035]具体的,在步骤S120中,监测所述临时目录节点,可以表现为监测所述临时目录节点的子节点数量是否发生变化。[0〇36]Zookeeper维护了一个类似文件系统的数据结构,在Zookeeper中每个子目录项,例如NameService、GroupMembers,都被称作为znode,和文件系统一样,能够自由的增加、删除znode以及在一个znode下增加、删除子znode。本申请实施例中,选择GroupMembers这一子目录项,并在这一子目录项中根据被监测的服务器集群的数量创建相应数量的临时目录节点。
[0037]Zookeeper 有四种类型的 znochPERSISTENT-持久化目录节点、PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点、EPHEMERAL-临时目录节点以及EPHEMERAL_ SEQUENTIAL-临时顺序编号目录节点。[〇〇38]对于PERSISTENT-持久化目录节点而言,与之连接的设备与zookeeper断开连接后,客户端注册的节点依旧存在。[〇〇39]对于PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点而言,设备与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号。
[0040]对于EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点而言设备与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。[0〇41 ]对EPHEMERAL-临时目录节点而言,客户端与zookeeper断开连接后,设备注册的节点随之被删除。[〇〇42]本申请实施例中,利用临时目录节点EPHEMERAL的特性,约定所有服务器在在父目录GroupMembers下创建临时目录节点,然后监听父目录节点的子节点变化消息。一旦出现服务器宕机的现象,则该服务器与zookeeper的连接断开,其所创建的临时目录节点被删除。[0〇43]因此,利用zookeeper中临时目录节点的特性可以实现本申请实施例中对服务器集群的监测。当临时目录节点中,子节点的数量一旦发生变化,则很容易判断得知服务器集群中是否有服务器宕机。
[0044]具体的,在本步骤中,当监测到所述临时目录节点有异常时,定位异常子节点,具体还可包括如下的实现步骤:
[0045]步骤S121:实时获取当前时刻所述临时目录节点的当前结构,并以所述当前结构与历史结构进行实时比对;
[0046]步骤S122:当所述比对结果中出现异常子节点时,从所述预设结构中读取所述异常子节点的IP地址从而定位异常子节点。
[0047]在步骤S121中,所述历史结构为所述当前时刻的前一时刻对应的所述临时目录节点的结构;需要说明的是,本申请实施例中,每一时刻所述临时目录节点的结构都是需要保存的,当前时刻的结构在下一时刻变为历史结构,用于和下一时刻的结构进行比对从而实现对集群的实时监测,及时发现集群故障。其中,所述每一时刻的时间间隔根据用户需求而进行设置,可以是1秒钟保存一次当前时刻结构,可以1毫秒保存一次当前时刻结构,也可以是30秒或者一分钟保存一次,当然,时间间隔的粒度越小,监控的实时性越高,本申请实施例并不限制所述每一时刻的时间间隔,上述数据仅供举例说明使用,对本申请实施并不构成限制。假设当前时刻,服务器集群中有一台服务器宕机,则这台服务器对应的子节点会从 zookeeper中消失。在所述当前时刻的前一时刻,这台服务器对应的子节点仍旧存在,因此, 服务器故障一瞬间,所述临时目录节点的子节点数量会发生变化,但是具体是哪一个子节点发生的变化,就需要对比历史结构和当前结构的区别。[〇〇48]例如,集群1的历史结构如下:
[0049]Nodel\Serverl\192.x.y.1
[0050]Nodel\Server2\192.x.y.2
[0051]Nodel\Server3\192.x.y.3
[0052]Node1\Server4\192.x.y.4 [〇〇53]集群1的当前结构如下:
[0054]Nodel\Serverl\192.x.y.1
[0055]Nodel\Server2\192.x.y.2
[0056]Node1\Server4\192.x.y.4[〇〇57]则通过所述历史结构和所述当前结构的比对分析,可以判断得知,IP地址为 192.x.y.3的Server3与zookeeper的连接断开了,Server3极有可能发生宕机故障。[〇〇58] 具体的,在步骤S130中,找到异常子节点之后,zookeeper会发出预警通知,需要说明的是,zookeeper的预警通知能够达到毫秒级的速度,因此能够实现服务器集群故障的急速报警。[〇〇59]其中,所述异常处理预案包括:根据所述异常子节点的IP地址启动相应的备用子节点;或,将所述异常子节点的异常信息通知相应的服务器集群管理员。
[0060]上述两种处理预案是预设的,对于第一种处理预案而言,子节点的IP地址不同则对应的备用子节点不同,因不同IP地址可能对应不同的服务器集群,不同服务器集群的作业能力不同,故启用的备用服务器也不同。
[0061]对于第二种处理预案,每一种异常信息都可以对应相应管理员的联系方式,通过将异常信息发送至管理员,由管理员处理服务器故障。在一种可行的实现方式中,可以根据所述异常子节点对应的父节点选择服务器管理员,具体的,查询预设的应急处理表,所述应急处理表中,罗列有不同服务器集群与管理员联系方式的对应关系,例如,服务器集群1对应1队管理员、服务器集群2对应2队管理员;又比如,服务器集群1中的核心服务器对应1队的1号管理员,非核心服务器对应1队的其他管理员。具体通知形式可以是预先编辑好异常说明信息,在故障发生时,直接将所述异常说明信息推送至管理员的移动设备,从而及时提醒管理员。
[0062]本实施例中,利用能够为不同集群提供公共服务的平台,在公共服务平台上根据集群结构创建临时目录节点,并通过对所述临时目录节点的监测实现对服务器集群的监测,改变了现有技术中进行服务器集群监测时,不能长时间持续监测且集群故障时不能快速报警的缺陷,实现了对服务器集群的持续监测且服务器集群故障的秒级报警。
[0063]图2是本申请实施例二的技术流程图,结合图2,本申请实施例一种服务器集群监测方法,还有如下的实施步骤:
[0064]步骤S210:根据需监测的所述服务器集群的数量创建相应数量的监测线程;[〇〇65]步骤S220:使用监听器对每一所述监测线程进行静默监听从而实时获取每一所述服务器集群的异常状况。
[0066]具体的,在步骤S210中,所述监测线程用于对每一所述服务器集群的所述临时目录节点以及所述临时目录节点的子节进行监测。每一个所述监测线程都执行实施例一中的实施步骤。[〇〇67]具体的,在步骤S220中,对于每一个监测线程都启动一个监听器对其进行静默监听,能够实现对多个服务器集群的同时监控,且每一所述检测线程都在后台静默运行,消耗资源少。所述监听器可以通过监听模式实现,因所述监听模式是成熟的现有技术,此处不赘述。
[0068]本实施例中,当有多个服务器集群需要监控时,启动相应数量的监控线程,并采用静默监听的方式对每一个线程进行静默监听,从而在消耗极少网络以及系统资源的情况下,也能实现持续不断地对多个服务器进行监听。与此同时,本申请实施例中,当多个服务器集群都依赖于一个公共服务进行数据的维护以及集群配置的管理时,利用所述公共服务对所述多个服务器集群进行故障监测,能够更加节省监控设备的部署资源以及部署流程。 [〇〇69]图3是本申请实施例三的技术流程图,结合图3,本申请实施例一种服务器集群监测方法,每一监测线程的具体监测过程可包括如下的实施步骤:
[0070]步骤S310:在公共服务平台创建服务器集群的临时目录节点;
[0071]步骤S320:根据服务器集群的结构,创建所述临时目录节点的所有子节点,并以每一所述子节点的IP地址为所述子节点赋值;[〇〇72]步骤S330:实时获取当前时刻所述临时目录节点的当前结构,并以所述当前结构与历史结构进行实时比对;
[0073]步骤S340:当所述比对结果中出现异常子节点时,从所述预设结构中读取所述异常子节点的IP地址从而定位异常子节点;[〇〇74]步骤S350:根据所述异常子节点查询预设的异常处理预案,并根据所述异常处理预案对所述异常子节点进行处理。
[0075]本实施例中,通过在公共服务平台上根据集群结构创建临时目录节点,并通过对所述临时目录节点的当前结构以及历史结构的比对,实现了服务器集群中,异常服务器的快速定位服务器集群故障的秒级报警。
[0076]图4是本申请实施例一的装置结构示意图,结合图4,本申请实施例一种服务器集群监测装置,包括如下模块:
[0077]预处理模块410,用于在公共服务平台创建服务器集群的临时目录节点;
[0078]监测模块420,用于监测所述临时目录节点,当监测到所述临时目录节点有异常时,定位异常子节点;[〇〇79]异常处理模块430,用于根据所述异常子节点查询预设的异常处理预案,并根据所述异常处理预案对所述异常子节点进行处理。
[0080]其中,所述预处理模块410,具体用于:根据服务器集群的结构,创建所述临时目录节点的所有子节点,并以每一所述子节点的IP地址为所述子节点赋值。
[0081]其中,所述监测模块420,具体用于:监测所述临时目录节点的子节点数量是否发生变化。
[0082]其中,所述监测模块420,具体用于:实时获取当前时刻所述临时目录节点的当前结构,并以所述当前结构与历史结构进行实时比对;其中,所述历史结构为所述当前时刻的前一时刻对应的所述临时目录节点的结构;当所述比对结果中出现异常子节点时,从所述预设结构中读取所述异常子节点的IP地址从而定位异常子节点。
[0083]其中,所述监测模块420还用于:根据需监测的所述服务器集群的数量创建相应数量的监测线程,其中所述检测线程用于对每一所述服务器集群的所述临时目录节点以及所述临时目录节点的子节进行监测;使用监听器对每一所述监测线程进行静默监听从而实时获取每一所述服务器集群的异常状况。
[0084]其中,所述异常处理预案包括:根据所述异常子节点的IP地址启动相应的备用子节点;或,将所述异常子节点的异常信息通知相应的服务器集群管理员。
[0085]图4所示装置可以执行图1以及图3所示实施例的方法,实现原理和技术效果参考图1以及图3所示实施例,不再赘述。
[0086]图5是本申请实施例二的装置结构示意图,结合图5,本申请实施例一种服务器集群监测装置,包括监测模块、监听器:
[0087]所述监测模块510用于:根据需监测的所述服务器集群的数量创建相应数量的监测线程,其中所述检测线程用于对每一所述服务器集群的所述临时目录节点以及所述临时目录节点的子节进行监测;
[0088]所述装置还包括监听器520,所属于监听器用于对每一所述监测线程进行静默监听从而实时获取每一所述服务器集群的异常状况。
[0089]图5所示装置可以执行图2以及图3所示实施例的方法,实现原理和技术效果参考图2以及图3所示实施例,不再赘述。
[0090]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0091]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分所述的方法。[〇〇92]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换; 而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种服务器集群监测方法,其特征在于,包括:在公共服务平台创建服务器集群的临时目录节点;监测所述临时目录节点,当监测到所述临时目录节点有异常时,定位异常子节点;根据所述异常子节点查询预设的异常处理预案,并根据所述异常处理预案对所述异常 子节点进行处理。2.根据权利要求1所述的方法,其特征在于,在公共服务平台创建临时目录节点,具体 包括:根据服务器集群的结构,创建所述临时目录节点的所有子节点,并以每一所述子节点 的IP地址为所述子节点赋值。3.根据权利要求2所述的方法,其特征在于,监测所述临时目录节点,具体包括:监测所述临时目录节点的子节点数量是否发生变化。4.根据权利要求2所述的方法,其特征在于,定位异常子节点,具体包括:实时获取当前时刻所述临时目录节点的当前结构,并以所述当前结构与历史结构进行 实时比对;其中,所述历史结构为所述当前时刻的前一时刻对应的所述临时目录节点的结 构;当所述比对结果中出现异常子节点时,从所述历史结构中读取所述异常子节点的IP地 址从而定位异常子节点。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据需监测的所述服务器集群的数量创建相应数量的监测线程,其中所述检测线程用 于对每一所述服务器集群的所述临时目录节点以及所述临时目录节点的子节进行监测; 使用监听器对每一所述监测线程进行静默监听从而实时获取每一所述服务器集群的 异常状况。6.根据权利要求1所述的方法,其特征在于,所述异常处理预案包括:根据所述异常子节点的IP地址启动相应的备用子节点;或,将所述异常子节点的异常信息通知相应的服务器集群管理员。7.—种服务器集群监测装置,其特征在于,包括如下的装置:预处理模块,用于在公共服务平台创建服务器集群的临时目录节点;监测模块,用于监测所述临时目录节点,当监测到所述临时目录节点有异常时,定位异 常子节点;异常处理模块,用于根据所述异常子节点查询预设的异常处理预案,并根据所述异常 处理预案对所述异常子节点进行处理。8.根据权利要求1所述的装置,其特征在于,所述预处理模块,具体用于:根据服务器集群的结构,创建所述临时目录节点的所有子节点,并以每一所述子节点 的IP地址为所述子节点赋值。9.根据权利要求2所述的装置,其特征在于,所述监测模块,具体用于:监测所述临时目录节点的子节点数量是否发生变化。10.根据权利要求2所述的装置,其特征在于,所述监测模块,具体用于:实时获取当前时刻所述临时目录节点的当前结构,并以所述当前结构与历史结构进行 实时比对;其中,所述历史结构为所述当前时刻的前一时刻对应的所述临时目录节点的结构;当所述比对结果中出现异常子节点时,从所述预设结构中读取所述异常子节点的IP地 址从而定位异常子节点。11.根据权利要求1所述的装置,其特征在于,所述监测模块还用于:根据需监测的所述服务器集群的数量创建相应数量的监测线程,其中所述检测线程用 于对每一所述服务器集群的所述临时目录节点以及所述临时目录节点的子节进行监测;所述装置还包括监听器,所属于监听器用于对每一所述监测线程进行静默监听从而实 时获取每一所述服务器集群的异常状况。12.根据权利要求1所述的装置,其特征在于,所述异常处理预案包括:根据所述异常子节点的IP地址启动相应的备用子节点;或,将所述异常子节点的异常信息通知相应的服务器集群管理员。
【文档编号】G06F11/32GK106021070SQ201610285256
【公开日】2016年10月12日
【申请日】2016年4月29日
【发明人】赵富欣
【申请人】乐视控股(北京)有限公司, 乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1