资源监控方法和系统的制作方法

文档序号:7854983阅读:122来源:国知局
专利名称:资源监控方法和系统的制作方法
技术领域
本发明涉及互联网领域,尤其涉及一种资源监控方法和系统。
背景技术
随着互联网技术普及和信息化技术不断提高,社会上各个领域对信息化要求越来越高,处理的数据也不断增加。以往的单机器运算、存储很难满足人们的需求,于是出现了分布式计算、并行计算,发展为网络计算。同时虚拟化技术的发展成熟以及网格技术与其结合,孕育出云计算平台。监控是云计算平台的重要组成部分,它是云计算平台中很多诸如网络分析、系统管理、作业调度、负载均衡、事件预测、故障检测以及恢复操作的前提,可以帮助云计算平台动态量化资源使用、检测服务缺陷、发现用户使用模式、辅助资源调度决策,对提高云计算平台的服务质量发挥重要作用。
然而,云平台上面充斥着各种大量的分布式环境下异构的、动态的、复杂的资源,如何对它们进行高效的动态监控及管理是提供高质量服务的保障。按使用付费是云计算的重要特征,这个特征依靠计算资源的虚拟化。虚拟化中间件采用系统实时监控状态进行决策调度和优化。但是大规模的虚拟化涉及到海量的监控点,如何有效的监控这些资源成为监控系统的一大问题。通常,大规模分布式应用采用的监控系统大多数采用集中式体系结构,也就C/S模式,由监控服务器和监控代理两部分组成,监控代理部署在每个监控节点上,负责收集每个节点中监控的信息,然后发送到监控服务器端,同时还要监听服务器传来的命令并执行逻辑操作,监控服务器部署在一台专门的机器节点上,负责收集各个监控代理发送来的监控信息,并且分析处理后存储到数据库中,同时还可以给指定监控代理发送命令,对其动态配置和控制。目前业界著名的计算平台都有自己的监控解决方案,大都只适合于自家云计算平台,很难移植到其它平台。同时,一些监控软件针对自己产品设计,只在某个领域的监控显得比较出色,功能比较单一,不具有通用性,同时开发成本高,部署麻烦,定制化不强。

发明内容
本发明提供了一种资源监控方法和系统,解决了现有监控方案不具有通用性的问题。—种资源监控方法,将云平台中的一台服务器作为服务端,其他服务器作为受所述服务端监控的监控节点服务器,该方法包括所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端;所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中。优选的,所述采集信息包括任意一个或多个以下采集操作采集到的信息CPU硬件信息的采集和CPU状态信息的采集,内存信息的采集、磁盘信息的采集、网络信息的采集、虚拟机信息的采集、所挂载存储池信息的采集。优选的,所述事件信息包括任意一个或多个以下事件的信息检查内存阀值事件、检查磁盘阀值事件、检查虚拟机事件。优选的,所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端的步骤之前,还包括为每个采集操作和事件建立一个专用的监控进程进行监控和信息采集。优选的,所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中的步骤之后,还包括在提取到检查内存阀值事件或检查磁盘阀值事件的事件信息时,发出告警。优选的,所述发出告警具体为向预置的管理员邮件发送告警邮件。优选的,所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中具体为所述服务端从所述高级消息队列中提取重要的事件和历史,进行格式经并存储到key-value数据库中。优选的,所述key-value数据库具体为内存数据库。本发明还提供了一种资源监控系统,包括服务端和接受该服务端监控的多个监控节点服务器;所述监控节点服务器,用于将采集信息和事件信息通过高级消息队列发送至所述服务端;所述服务端,用于从所述高级消息队列中提取重要的事件和历史,记录到数据库中。优选的,所述监控节点服务器,还用于为每个采集操作和事件建立一个专用的监控进程进行监控和信息采集。本发明提供了一种资源监控方法和系统,将云平台中的一台服务器作为服务端,其他服务器作为受所述服务端监控的监控节点服务器,所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端,所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中,实现了模块化的资源监控,解决了现有监控方案不具有通用性的问题。


图I为本发明的实施例一提供的一种资源监控方法的流程图;图2为本发明的实施例二提供的一种资源监控系统的结构示意图;图3为本发明的实施例三提供的一种资源监控系统的结构示意图。
具体实施例方式下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。首先结合附图,对本发明的实施例一进行说明。、
本发明实施例提供了一种资源监控方法,将云平台中的一台服务器作为服务端,其他服务器作为受所述服务端监控的监控节点服务器,使用该方法完成资源监控的流程如图I所示,包括步骤101、为每个采集操作和事件建立一个专用的监控进程进行监控和信息采集;本步骤中,在监控节点服务器上运行着多个进程,每个进程都负责监控一个采集操作或一个预先定义的事件。步骤102、所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端;本步骤中,所述采集信息包括任意一个或多个以下采集操作采集到的信息 CPU硬件信息的采集和CPU状态信息的采集,内存信息的采集、磁盘信息的采集、网络信息的采集、虚拟机信息的采集、所挂载存储池信息的采集。所述事件信息包括任意一个或多个以下事件的信息检查内存阀值事件、检查磁盘阀值事件、检查虚拟机事件。步骤103、所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中;本步骤中,所述服务端从所述高级消息队列中提取重要的事件和历史,进行格式经并存储到key-value数据库中。key-value 型数据库可以米用 redis 数据库、Berkeley DB、SQLite、MongoDB 等,优选的,key-value数据库为内存数据库。步骤104、在提取到检查内存阀值事件或检查磁盘阀值事件的事件信息时,发出告m.
I=I ,本步骤中,当服务端检测到检查内存阀值事件或检查磁盘阀值事件的事件信息时,即会通过向预置的管理员邮件发送告警邮件等形式发出告警。下面结合附图,对本发明的实施例二进行说明。本发明实施例提供了一种资源监控系统,该系统的结构如图2所示,包括服务端201和接受该服务端201监控的多个监控节点服务器202 ;所述监控节点服务器202,用于将采集信息和事件信息通过高级消息队列发送至所述服务端201 ;所述服务端201,用于从所述高级消息队列中提取重要的事件和历史,记录到数据库中。优选的,所述监控节点服务器202,还用于为每个采集操作和事件建立一个专用的监控进程进行监控和信息采集。下面结合附图,对本发明的实施例三进行说明。本发明实施例提供了一种资源监控系统,区别于传统的以某一云平台产品或单一用户为核心的框架体系,本发明实施例所提供的资源监控系统是以高级消息队列为核心,通过整合前端监控模块、中间的高级消息队列、后端的处理模块、调度模块、及一个高效的key-value型数据库,使整个云平台下的监控行为发挥最大的效能。该系统结构如图3所示,包括
高级消息队列301、监控模块302、处理模块303、调度模块304和key-value型数据库305。其中高级消息队列301是该资源监控系统的核心,负责协调各模块资源间的消息的传递以及协议的转化;监控模块302主要负责对云平台下应用和基础设施的数据采集和事件获取等行为和接收调度模块发来的调度消息,具体的数据采集和事件检查等工作需要由自定义的程序来实现,监控模块只负责将程序采集或检查的结果进行协议封闭并且经由高级消息队列传递给处理模块;处理模块303在与高级消息队列通讯时,负责接收监控模块传递过来的数据包,进行协议转换并传递调用指定的自定义处理程序来处理数据或事件。;
调度模块304的作用是调度监控模块的具体行为,也就是告知监控模块现在应该使用哪种自定义程序来执行数据的采集或事件检查。调度模块分为2部分,I是调度模块将调度消息通过高级消息队列传送给监控模块;2是监控模块内部的调度核心自发调度。key-value型数据库305主要负责采集数据和事件信息的存储,具体存储着各模块产生的采集数据信息、事件信息、模块工作状态信息等,由于云平台下大量的并发的监控数据信息需要被存储到数据库中,所以要使用一种存取速度快、存放数据量大、支持高并发的数据库,key-value型数据库基本上满足以上需求。优选的,高级消息队列是指AMQP (Advanced Message Queuing Protocol高级消息队列协议)开放标准的一个实现。可以是任何实现,包括0penAMQ、Apache Qpid、RedhatEnterprise MRG、RabbitMQ、Zyre等实现。高级消息队列作为此资源监控系统的核心,起到协调各资源间的通信以及协议转化等作用。因而对可靠性、安全性、性能有很严格的要求并且是面向消息、队列、路由(包括点对点和发布/订阅),所以使用AMQP作为系统核心为各模块提供可靠的通讯保障。监控模块主要包括程序处理单元、消息通讯单元、协议转化单元。程序处理单元主要完成了监控程序的执行和执行结果的接收处理,消息通讯单元主要完成了与高级消息队列的注册和消息的接收发送,协议转化单元主要完成了监控程序执行结果的协议封装和消息队列接收到的调度协议的解析。处理模块主要包括程序处理单元、消息通讯单元、协议转化单元和数据存储单元。程序处理单元主要完成了处理程序的执行并提供处理程序必要的监控信息结果。消息通讯单元主要完成了与高级消息队列的注册和消息和接收和发送,协议转化单元主要完成了监控程序执行结果的协议解析,数据存储单元主要完成了所有监控数据和事件向key-value数据库的存储。调度模块主要包括消息通讯单元、协议转化单元、调度单元和监控模块内部的调度单元。消息通讯单元主要完成了消息的发送接收,协议转化单元主要完成将调度信息进行协议封装,调度单元主要了监控的调度管理及调度信息的发送。监控模块内部的调度单元主要完成了监控的自发调度,不依靠调度模块发送的调度信息,这主要是为了将检查云平台应用和基础设施事件这样的工作交由监控模块自己调度,降低调度模块的负担,同时降低云平台内的网络消耗。以上所有单元中消息通讯单元、协议转化单元是复用单元,采用统一接口为各模块提代服务。对各单元的实现可以使用通用的脚本语言如ruby、python、PERL来编写实现,这样做的好处就是各单元模块的定制化强,易修改,易扩展。key-value 型数据库可以米用 redis 数据库、Berkeley DB、SQLite、MongoDB 等,推荐使用像redis这样的内存数据库,可以大幅提高监控系统的整体性能。由于云平台环境规模大,所以监控数据量也比较多,对数据库的高并发性、数据量和查询速度就会有较高的要求,而key-value型数据库正好能满足以上的高要求。在一个典型的配置环境中,可以将云平台中的I台服务器作为服务端,上面部署高级消息队列如RabbitMQ,调度模块、处理模块、监控模块(可选)、key-value型数据库。云平台中数台受监控节点服务器作为客户端部署监控模块。监控模块会将所有的采集信息和事件信息通过高级消息队列发送到服务端。在各个受监控的客户端上实现多个监控程序,如对CPU硬件信息的采集和CPU状态信息的采集,内存信息的采集、磁盘信息的采集、网络信息的采集、虚拟机信息的采集、所挂载存储池信 息的采集,检查内存阀值事件、检查磁盘阀值事件、检查虚拟机事件。配置将所有以上信息采集的行为由服务端调度模块来调度控制,而将事件检查行为由监控模块内部调度机制自发控制。处理模块会从高级消息队列中接收到监控模块的信息并将其中一些重要事件和历史记录到数据库中。在服务端实现多个处理程序。如将客户端采集的信息进行格式化并存储到key-value数据库中。对客户端报告的阀值事件采取必要的措施,如向管理员发送邮件告知等。基于以上的部署便可以实现一个完整的监控系统。与传统的以某一云平台产品或单一用户为核心的框架体系相比,本发明的实施例提供的资源监控系统具有高可扩展、低开发成本,以及基于模块化部件灵活配置等特性。其中,高可扩展的实现方式描述如下监控模块和处理模块不实现具体的行为只提供相应的接口,具体行为由监控程序和处理程序来实现,而程序的编写可在接口允许范围内按需灵活扩展的,可根据具体的应用平台和用户需求来实现。低开发成本的实现方式描述如下在这种新型体系结构中,需要开发的内容只有具体的监控程序和处理程序,无需再度开发监控系统的消息通信机制、调度机制和数据库。节省了大量的时间成本和人力成本,可以高效快速的部署现有的云计算平台。本发明的实施例提供了一种资源监控方法和系统,将云平台中的一台服务器作为服务端,其他服务器作为受所述服务端监控的监控节点服务器,所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端,所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中,实现了模块化的资源监控,解决了现有监控方案不具有通用性的问题。在云平台下,基于模块化的系统结构易于部署、易于开发、易于扩展,主要是指监控体系结构中的高级消息队列、监控模块、处理模块、调度模块、key-value型数据库作为系统内的模块化部件,可以进行灵活的配置和较容易的开发。这种灵活性体现在添加和删除某一监控项目和处理项目时,基本不用或很少对其他监控框架进行任何的配置工作,从而减少云平台下框架管理的复杂程度。这种易开发性体现在利用此资源监控系统的框架可以很容易的实现一个新的云平台监控系统,只需要为监控模块实现具体的监控行为,同时为处理模块实现具体的处理行为,这些行为的实现可以使用任何方式、任何开发语言,监控和处理的对象可以是云平台下任何指定的应用和基础设施(具体取决于这些行为的实现),然后对调度模块进行简单的配置就可以实现一个新的监控系统,至于监控消息的处理、协议的转化、监控和处理行为的调度、监控数据的存储的工作就由本发明的实施例提供的资源监控系统来完成,从而很好的降低了监控系统的开发难度。此监控框架结构所具有的上述优点,使得其弥补了传统的监控系统以某一云平台产品或单一用户为核心的通用性上的不足和开发成本的高昂,为云平台监控体系带来的一种新的灵活多变的、低成本的通用开发框架结构,使其更适用于复杂的云平台应用环境,因而具有非常广阔的发展前景。本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电 路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
权利要求
1.ー种资源监控方法,其特征在于,将云平台中的一台服务器作为服务端,其他服务器作为受所述服务端监控的监控节点服务器,该方法包括 所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端; 所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中。
2.根据权利要求I所述的资源监控方法,其特征在于,所述采集信息包括任意ー个或多个以下采集操作采集到的信息 CPU硬件信息的采集和CPU状态信息的采集,内存信息的采集、磁盘信息的采集、网络信息的采集、虚拟机信息的采集、所挂载存储池信息的采集。
3.根据权利要求2所述的资源监控方法,其特征在于,所述事件信息包括任意ー个或 多个以下事件的信息 检查内存阀值事件、检查磁盘阀值事件、检查虚拟机事件。
4.根据权利要求3所述的资源监控方法,其特征在干,所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端的步骤之前,还包括 为每个采集操作和事件建立一个专用的监控进程进行监控和信息采集。
5.根据权利要求3所述的资源监控方法,其特征在于,所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中的步骤之后,还包括 在提取到检查内存阀值事件或检查磁盘阀值事件的事件信息时,发出告警。
6.根据权利要求5所述的资源监控方法,其特征在于,所述发出告警具体为 向预置的管理员邮件发送告警邮件。
7.根据权利要求I所述的资源监控方法,其特征在于,所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中具体为 所述服务端从所述高级消息队列中提取重要的事件和历史,进行格式经并存储到key-value数据库中。
8.根据权利要求I所述的资源监控方法,其特征在于,所述key-value数据库具体为内存数据库。
9.ー种资源监控系统,其特征在于,包括服务端和接受该服务端监控的多个监控节点服务器; 所述监控节点服务器,用于将采集信息和事件信息通过高级消息队列发送至所述服务端; 所述服务端,用于从所述高级消息队列中提取重要的事件和历史,记录到数据库中。
10.根据权利要求9所述的资源监控系统,其特征在干, 所述监控节点服务器,还用于为每个采集操作和事件建立一个专用的监控进程进行监控和信息采集。
全文摘要
本发明提供了一种资源监控方法和系统。涉及互联网领域;解决了现有监控方案不具有通用性的问题。该方法包括所述监控节点服务器将采集信息和事件信息通过高级消息队列发送至所述服务端;所述服务端从所述高级消息队列中提取重要的事件和历史,记录到数据库中。本发明提供的技术方案适用于云平台,实现了通用的服务器监控。
文档编号H04L12/24GK102739452SQ20121022442
公开日2012年10月17日 申请日期2012年6月28日 优先权日2012年6月28日
发明者崔赢, 张俊, 张现忠, 颜秉珩 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1