一种集群监控方法及系统与流程

文档序号:16589049发布日期:2019-01-14 18:57阅读:91来源:国知局
一种集群监控方法及系统与流程

本发明涉及计算机应用技术领域,尤其涉及一种集群监控方法及系统。



背景技术:

监控系统能够辅助数据中心管理员及时了解、管理服务器集群,并在集群(集群通信系统是一种用于集团调度指挥通信的移动通信系统,主要应用在专业移动通信领域)发生状况时能够及时解决突发问题,保证云计算集群的安全、稳定与可靠。同时,监控信息也可以为日后分析并改进云端运行状况提供重要的参考依据。例如ganglia(ganglia是ucberkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点)监控系统,将监控信息存储在各个节点上,之后将该节点的监控信息广播,从而使得每一个节点上都存储了整个集群的监控信息。

当前主流的分布式监控模式通常将监控信息存储在各个节点上,之后发送广播进行监控信息的传递,从而使得每一个节点上都存储了整个集群的监控信息,这样会造成大量的数据冗余,并有极大可能形成网络风暴(由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪)。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术缺陷,本发明提供一种集群监控方法及系统,本发明采用独立监控模块,集群中各个节点上的守护进程只负责发送监控信息,由第三方监控系统进行所有数据的处理及存储,从而降低集群的压力。

本发明解决技术问题所采用的技术方案如下:

一种集群监控方法,其中,所述集群监控方法包括:

接收用户选择对当前集群状况进行诊断的操作指令,或者自动开启对集群运行状况的监控;

将存储在消息服务中的节点列表进行分析,获取当前集群中是否有节点退出或者新增节点的信息,并形成第一诊断信息;

提取持久化数据,并对网络参数信息进行分析,获取集群的运行状况,并形成第二诊断信息;

将第一诊断信息和第二诊断信息推送至web服务器,并等待下一次的诊断命令。

所述的集群监控方法,其中,当自动开启对集群运行状况的监控后,还包括:

当检测到用户在web页面中打开集群监控页面时,根据web服务器发送监控命令对自身的节点列表进行分析;

获取当前集群中节点的变动情况,并形成第三诊断信息;

消息服务将第三诊断信息发送到web服务器中,并等待下一次的监控请求。

所述的集群监控方法,其中,所述集群监控方法还包括:

将第一诊断信息、第二诊断信息以及第三诊断信息中的监控数据进行模型分析与匹配;

如果达到触发报警条件,则发送报警信息至所述web服务器,所述web服务器进一步将报警信息发送到用户指定的客户端。

所述的集群监控方法,其中,所述集群监控方法还包括:

自定义监控对象与监控层次,或使用第三方监控工具来获取监控信息,同时控制物理机与虚拟机进行双层实时动态监控。

所述的集群监控方法,其中,所述网络参数信息包括:网络io、内存、cpu以及磁盘信息。

一种集群监控系统,其中,所述集群监控系统包括:

功能服务器集群,用于对判断需要监控信息的来源并对监控数据进行整合;

云平台服务器集群,用于同时控制物理机与虚拟机进行双层实时动态监控;

客户端,用于选择需要监控的对象,并接收所述功能服务器集群发送的报警信息。

所述的集群监控系统,其中,所述功能服务器集群包括:

数据库服务器,用于对监控信息进行编程模型的分析与处理;

监控服务器,用于判断需要监控信息的来源,以及对报警信息进行传送;

消息队列服务器,用于接收服务器集群中的每个节点周期性发送的监控信息。

所述的集群监控系统,其中,所述云平台服务器集群还包括:

开放式集群节点守护进程模块,用于支持多操作系统,并实行物理机与虚拟机双层监控。

所述的集群监控系统,其中,所述消息队列服务器还包括:

监控数据持久化模块,用于进行数据持久化,并对监控历史数据进行编程模型分析。

所述的集群监控系统,其中,所述监控服务器包括:

监控信息报警模块,用于对监控数据进行模型分析与匹配,如果达到触发报警条件,则发送报警信息至web服务器;

节点实时动态监控模块,用于根据需求选择需要动态监控的层次与对象,并根据选择自动生成横坐标为时间、纵坐标为监控数据大小的心跳图。

本发明公开了一种集群监控方法及系统,所述方法包括:接收用户选择对当前集群状况进行诊断的操作指令,或者自动开启对集群运行状况的监控;将存储在消息服务中的节点列表进行分析,获取当前集群中是否有节点退出或者新增节点的信息,并形成第一诊断信息;提取持久化数据,并对网络参数信息进行分析,获取集群的运行状况,并形成第二诊断信息;将第一诊断信息和第二诊断信息推送至web服务器,并等待下一次的诊断命令。本发明通过开放式监控框架,一方面用户可以自定义监控对象与监控层次,或使用第三方监控工具来获取监控信息,另一方面可以通过该框架来实时动态的对物理机与虚拟机进行实时动态监控,通过使用数据库与接口来对监控信息进行分析与处理,并对错误信息进行报警。

附图说明

图1是本发明集群监控方法的较佳实施例的流程图;

图2是本发明集群监控方法的较佳实施例中另一监控模式的流程图;

图3是本发明集群监控方法的较佳实施例中对监控数据进行分析与报警处理的流程图;

图4是本发明集群监控方法的较佳实施例一具体实施例实现过程的流程图;

图5是本发明集群监控系统的较佳实施例的结构原理图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明较佳实施例所述的集群监控方法,如图1所示,所述集群监控方法包括以下步骤:

步骤s10、接收用户选择对当前集群状况进行诊断的操作指令,或者自动开启对集群运行状况的监控。

具体地,用户选择对当前集群状况诊断或者系统自动对集群运行状况进行监控,可用于监视各种网络服务、服务器和网络机器等状态;其中,用户可以指定监控对象。

步骤s20、将存储在消息服务中的节点列表进行分析,获取当前集群中是否有节点退出或者新增节点的信息,并形成第一诊断信息。

具体地,系统对存储在messageservice(消息服务)中的节点列表进行分析,从而提取出当前集群中是否有节点退出或者新增节点,形成第一诊断信息。

步骤s30、提取持久化数据,并对网络参数信息进行分析,获取集群的运行状况,并形成第二诊断信息。

具体地,系统提取持久化数据,并对网络io、内存、cpu、磁盘等信息进行分析,从而提取出集群的运行状况,形成第二诊断信息。

步骤s40、将第一诊断信息和第二诊断信息推送至web服务器,并等待下一次的诊断命令。

具体地,形成最终诊断信息:第一诊断信息+第二诊断信息,并将该信息推送至web服务器,等待下一次的诊断命令。

进一步地,如图2所示,当自动开启对集群运行状况的监控后,还包括如下步骤:

s50、当检测到用户在web页面中打开集群监控页面时,根据web服务器发送监控命令对自身的节点列表进行分析;

s60、获取当前集群中节点的变动情况,并形成第三诊断信息;

s70、消息服务将第三诊断信息发送到web服务器中,并等待下一次的监控请求。

具体地,如果有用户在web页面中打开集群监控页面,web服务器会每隔10秒钟向messageservice的集群监控模块发送监控命令,集群监控模块收到该命令后,会对自身的节点列表进行分析,从而分析出当前集群中节点的变动情况,形成第三诊断信息;messageservice将第三诊断信息发送到web服务器中,等待下一次的监控请求。

进一步地,如图3所示,当两种情况下的诊断信息采集完成后,还包括如下步骤:

s80、将第一诊断信息、第二诊断信息以及第三诊断信息中的监控数据进行模型分析与匹配;

s90、如果达到触发报警条件,则发送报警信息至所述web服务器,所述web服务器进一步将报警信息发送到用户指定的客户端。

通过本发明的开放式监控框架,用户可以自定义监控对象与监控层次或使用snmp(simplenetworkmanagementprotocol,简单网络管理协议,支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况)等第三方监控工具来获取监控信息;同时可以对物理机与虚拟机进行实时动态监控;另外还可以通过本框架中使用的nosql(notonlysql,非关系型数据库,)数据库与接口来对监控信息进行mapreduce(编程模型,用于大规模数据集的并行运算)分析与处理。

下面以一个具体实施例进行说明:

如图4所示,操作流程具体步骤如下:

s101,判断用户是否选择对当前集群状况进行诊断,当是时执行s102和s104,当否时执行s105;

s102,系统对存储在messageservice中的节点列表进行分析,从而提取出当前集群中是否有节点退出或者新增节点,形成第一诊断信息;

s103,系统提取持久化数据,并对网络io、内存、cpu、磁盘等信息进行分析,从而提取出集群的运行状况,形成第二诊断信息,并执行s108;

s104,系统自动对集群运行状况进行监控;

s105,判断用户是否打开监控界面,当是时执行s106,当否时执行s104;

s106,如果有用户在web页面中打开集群监控页面,web服务器会每隔10秒钟向messageservice的集群监控模块发送监控命令;

s107,集群监控模块收到该命令后,会对自身的节点列表进行分析,从而分析出当前集群中节点的变动情况,形成第三诊断信息;

s108,web服务器接收所有诊断信息(包括第一诊断信息、第二诊断信息、第三诊断信息),当web服务器发布监控/诊断命令后,执行s109;

s109,接收web服务器发布监控/诊断命令后,执行是101。

如图5所示,基于上述集群监控方法,本发明还相应提供了一种集群监控系统,所述集群监控系统包括:

功能服务器集群10,用于对判断需要监控信息的来源并对监控数据进行整合;云平台服务器集群20,用于同时控制物理机与虚拟机进行双层实时动态监控;客户端30,用于选择需要监控的对象,并接收所述功能服务器集群10发送的报警信息。

具体地,所述功能服务器集群10包括:数据库服务器(nosql数据库服务器),用于对监控信息进行编程模型的分析与处理;监控服务器,用于判断需要监控信息的来源,以及对报警信息进行传送;消息队列服务器,用于接收服务器集群中的每个节点周期性发送的监控信息;还包括一连接监控服务器和消息队列服务器的中心服务器。

具体地,所述云平台服务器集群20还包括:开放式集群节点守护进程模块,用于支持多操作系统,并实行物理机与虚拟机双层监控。

所述云平台服务器集群20包括虚拟机集群和物理机集群,其中,虚拟机集群包括多个虚拟机,物理机集群包括多个物理机。

其中,客户端包括常用的个人电脑和智能手机。

具体地,所述消息队列服务器还包括:监控数据持久化模块,用于进行数据持久化,并对监控历史数据进行编程模型分析(模块设计中采用nosql数据库mongodb进行数据持久化,并对监控历史数据进行mapreduce分析)。

具体地,所述监控服务器包括:监控信息报警模块,用于对监控数据进行模型分析与匹配,如果达到触发报警条件,则发送报警信息至web服务器,web服务器可进一步将报警信息发送到用户指定的客户端;节点实时动态监控模块,用于根据需求选择需要动态监控的层次与对象,并根据选择自动生成横坐标为时间、纵坐标为监控数据大小的心跳图。

通过本发明的集群监控系统可完成如下三大流程:

一、监控业务流程:

(1)用户会在客户端选择要监控的对象;

(2)客户端将该对象请求信息传送给监控服务器,监控服务器判断需要的监控信息来源;

(3)如果需要从数据库中读取,则读取数据库中的相关数据;

(4)如果需要从节点中读取,则给节点发送命令;

(5)节点在接到命令后对相关的监控信息进行读取,之后传送给监控服务器,监控服务器对数据进行整合并发送给监控端。

二、报警业务流程:

(1)节点服务器集群与消息队列服务器将报警信息传送给监控服务器;

(2)监控服务器将数据进行处理并推送给客户端,进行报警。

三、数据持久化业务流程

(1)服务器集群中的每个节点周期性的将监控到的信息传送给消息队列服务器;

(2)消息队列服务器将整理后的数据插入到数据库中进行持久化;

(3)消息队列服务器更新内部的节点表,并对其进行监控;

(4)将错误信息以报警的方式发送给监控服务器

(5)监控服务器将报警信息推送给客户端。

本发明通过该开放式监控框架,一方面用户可以通过系统提供过的api自定义监控对象与监控层次或使用snmp等第三方监控工具来获取监控信息,另一方面可以通过该框架来实时动态的对物理机与虚拟机进行实时动态监控;最后,用户可以通过本框架中使用的nosql数据库与接口来对监控信息进行mapreduce分析与处理。

综上所述,本发明提供一种集群监控方法及系统,所述方法包括:接收用户选择对当前集群状况进行诊断的操作指令,或者自动开启对集群运行状况的监控;将存储在消息服务中的节点列表进行分析,获取当前集群中是否有节点退出或者新增节点的信息,并形成第一诊断信息;提取持久化数据,并对网络参数信息进行分析,获取集群的运行状况,并形成第二诊断信息;将第一诊断信息和第二诊断信息推送至web服务器,并等待下一次的诊断命令。本发明通过开放式监控框架,一方面用户可以自定义监控对象与监控层次,或使用第三方监控工具来获取监控信息,另一方面可以通过该框架来实时动态的对物理机与虚拟机进行实时动态监控,通过使用数据库与接口来对监控信息进行分析与处理,并对错误信息进行报警。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来自动完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1