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

文档序号:12751710阅读:341来源:国知局
一种服务器集群监控方法及系统与流程

本发明涉及监控技术领域,特别是涉及一种服务器集群监控方法及系统。



背景技术:

随着互联网技术的快速发展,大数据一直保持高速增长,大数据的存储和处理已经成为衡量企业实力的指标之一。

大数据的存储和处理离不开服务器集群,服务器集群的性能状态,对大数据的存储和处理起着重要作用。

目前,服务器集群多是支持标准的简单网络管理协议(Simple Network Management Protocol,SNMP)的,而监控系统不支持SNMP协议,使得无法对服务器集群进行有效监控。



技术实现要素:

本发明的目的是提供一种服务器集群监控方法及系统,以对服务器集群的性能状态进行有效监控。

一种服务器集群监控方法,应用于服务器集群中的主节点,所述主节点与监控设备通过简单网络管理协议SNMP进行通信,所述方法包括:

获得所述服务器集群中每个节点的监控数据项的监控值;

针对每个告警属性的监控数据项,根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,如果是,则将该监控数据项添加到告警数据项集合中;

根据所述告警数据项集合,生成简单网络管理协议SNMP告警报文,并将所述SNMP告警报文发送给所述监控设备。

在本发明的一种具体实施方式中,所述根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,包括:

如果该监控数据项的最新的监控值大于该监控数据项对应的预设的第一告警阈值,则确定该监控数据项为待告警数据项;

或者,

如果在设定时长内,该监控数据项的监控值均大于该监控数据项对应的预设的第二告警阈值,则确定该监控数据项为待告警数据项;

或者,

如果该监控数据项的监控值大于该监控数据项对应的预设的第三告警阈值的比例大于预设比例阈值,则确定该监控数据项为待告警数据项。

在本发明的一种具体实施方式中,所述获得所述服务器集群中每个节点的监控数据项的监控值,包括:

针对所述服务器集群中每个节点,在预先获得的该节点对应的数据文件中获得该节点的监控数据项的监控值。

在本发明的一种具体实施方式中,针对所述服务器集群中每个节点,通过以下步骤获得该节点对应的数据文件:

如果该节点为所述主节点,则获取自身的监控数据项的监控值,并将获取到的监控数据项的监控值放入自身对应的数据文件中;

如果该节点为除所述主节点外的任意一个节点,则通过监听所述服务器集群的多播组,收集所述多播组上该节点的监控数据项的监控值,并将收集到的监控数据项的监控值放入该节点对应的数据文件中。

在本发明的一种具体实施方式中,还包括:

接收所述监控设备发送的针对目标监控数据项的SNMP请求报文;

确定所述目标监控数据项所属的目标节点;

在所述目标节点对应的数据文件中获取所述目标监控数据项的监控值;

根据所述目标监控数据项的监控值,生成SNMP响应报文,并将所述SNMP响应报文发送给所述监控设备。

一种服务器集群监控系统,包括服务器集群和监控设备,所述服务器集群中的主节点与所述监控设备通过简单网络管理协议SNMP进行通信,其中,

所述主节点,用于获得所述服务器集群中每个节点的监控数据项的监控值;针对每个告警属性的监控数据项,根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,如果是,则将该监控数据项添加到告警数据项集合中;根据所述告警数据项集合,生成简单网络管理协议SNMP告警报文,并将所述SNMP告警报文发送给所述监控设备;

所述监控设备,用于接收所述主节点发送的所述SNMP告警报文,并对所述SNMP告警报文进行解析,获得告警信息。

在本发明的一种具体实施方式中,所述主节点,具体用于:

如果该监控数据项的最新的监控值大于该监控数据项对应的预设的第一告警阈值,则确定该监控数据项为待告警数据项;

或者,

如果在设定时长内,该监控数据项的监控值均大于该监控数据项对应的预设的第二告警阈值,则确定该监控数据项为待告警数据项;

或者,

如果该监控数据项的监控值大于该监控数据项对应的预设的第三告警阈值的比例大于预设比例阈值,则确定该监控数据项为待告警数据项。

在本发明的一种具体实施方式中,所述主节点,具体用于:

针对所述服务器集群中每个节点,在预先获得的该节点对应的数据文件中获得该节点的监控数据项的监控值。

在本发明的一种具体实施方式中,所述主节点,还用于针对所述服务器集群中每个节点,通过以下步骤获得该节点对应的数据文件:

如果该节点为所述主节点,则获取自身的监控数据项的监控值,并将获取到的监控数据项的监控值放入自身对应的数据文件中;

如果该节点为除所述主节点外的任意一个节点,则通过监听所述服务器集群的多播组,收集所述多播组上该节点的监控数据项的监控值,并将收集到的监控数据项的监控值放入该节点对应的数据文件中。

在本发明的一种具体实施方式中,

所述主节点,还用于接收所述监控设备发送的针对目标监控数据项的SNMP请求报文;确定所述目标监控数据项所属的目标节点;在所述目标节点对应的数据文件中获取所述目标监控数据项的监控值;根据所述目标监控数据项的监控值,生成SNMP响应报文,并将所述SNMP响应报文发送给所述监控设备;

所述监控设备,用于向所述主节点发送针对所述目标监控数据项的所述SNMP请求报文,接收所述主节点返回的所述SNMP响应报文,并对所述SNMP响应报文进行解析,获得所述目标监控数据项的监控值。

应用本发明实施例所提供的技术方案,主节点获得服务器集群中每个节点的监控数据项的监控值后,可以针对每个告警属性的监控数据项,根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,如果是,则将该监控数据项添加到告警数据项集合中,根据告警数据项集合,可以生成SNMP告警报文,并将该SNMP告警报文发送给监控设备,可以对服务器集群的性能状态进行有效监控。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中服务器集群监控方法的一种实施流程图;

图2为本发明实施例中服务器集群监控方法的另一种实施流程图;

图3为本发明实施例中一种服务器集群监控系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种服务器集群监控方法,该方法可以应用于服务器集群中的主节点,该主节点与监控设备通过简单网络管理协议SNMP进行通信。

参见图1所示,为本发明实施例所提供的一种服务器集群监控方法的实施流程图,该方法可以包括以下步骤:

S110:获得服务器集群中每个节点的监控数据项的监控值。

在本发明实施例中,服务器集群中每个节点都具有各自的一个或多个监控数据项,主节点为服务器集群中的一个节点,其也具有自己的一个或多个监控数据项。

主节点可以实时获得服务器集群中每个节点的监控数据项的监控值,或者在达到设定的时间间隔时获得服务器集群中每个节点的监控数据项的监控值。

在本发明的一种具体实施方式中,步骤S110可以包括以下步骤:

针对服务器集群中每个节点,在预先获得的该节点对应的数据文件中获得该节点的监控数据项的监控值。

针对服务器集群中的每个节点,主节点可以存储该节点对应的数据文件,该节点可以对应若干个数据文件,这些数据文件可以存放于同一目录下,每个数据文件记录的是该节点的一个监控数据项的一个或多个监控值。通过读取每个节点对应的数据文件,主节点可以获得每个节点的监控数据项的监控值。在数据文件中获得相应节点的监控数据项的监控值,可以提高数据获取速度。

在本发明的一种具体实施方式中,针对服务器集群中每个节点,可以通过以下步骤获得该节点对应的数据文件:

步骤一:如果该节点为主节点,则获取自身的监控数据项的监控值,并将获取到的监控数据项的监控值放入自身对应的数据文件中;

步骤二:如果该节点为除主节点外的任意一个节点,则通过监听服务器集群的多播组,收集多播组上该节点的监控数据项的监控值,并将收集到的监控数据项的监控值放入该节点对应的数据文件中。

为便于描述,将上述两个步骤结合起来进行说明。

在实际应用中,可以在服务器集群中包括主节点在内的每个节点上均设置数据获取模块。针对服务器集群中每个节点而言,在该节点上运行的数据获取模块启动后,可以为该节点的每一个监控数据项开辟一个线程,每个线程可以周期读取其对应的监控数据项的监控值。

对于主节点而言,其通过数据获取模块获取自身的监控数据项的监控值后,可以直接将获取到的监控数据项的监控值放入自身对应的数据文件中。

对于除主节点外的任意一个节点而言,其通过数据获取模块获取自身的监控数据项的监控值后,可以将获取到的监控值以多播方式发送到多播组上。

在主节点上还可以设置数据收集模块,运行在主节点上的数据收集模块启动后,可以监听服务器集群的多播组。针对服务器集群的除主节点外的每个节点,如果多播组中存在该节点的监控数据项的监控值,则将该节点的监控数据项的监控值存放到该节点对应的数据文件中。具体的,可以将该节点的监控数据项的监控值存放到该节点对应的该监控数据项的数据文件中。

为方便理解,举例说明:

假设服务器集群中有节点node0、node1、node2和node3,其中node0为主节点,每个节点的监控数据项均为cpu利用率cpu_rate、磁盘个数disk_num。node0、node1、node2和node3均可定时获取自身监控数据项的监控值,节点node1、node2和node3将获取到的监控数据项的监控值多播到多播组上,主节点node0通过监听多播组,可以获得节点node1、node2和node3的监控数据项的监控值,并分别放入相应的数据文件中:

/data/node1/cpu_rate.mdd

/data/node1/disk_num.mdd

/data/node2/cpu_rate.mdd

/data/node2/disk_num.mdd

/data/node3/cpu_rate.mdd

/data/node3/disk_num.mdd

主节点node0获取自身的监控数据项的监控值后,可以直接将获取到的监控数据项的监控值放入自身对应的数据文件中:

/data/node0/cpu_rate.mdd

/data/node0/disk_num.mdd

当主节点node0需要与监控设备交互时,可以从上述数据文件中获得相应监控数据项的监控值。

在本发明实施例中,可以预先设定每个数据文件中可存放的数据记录的最多条数,比如,100条。当存在某个节点的某个监控数据项的新的监控值,该监控数据项对应的数据文件中的数据记录条数已经达到预设的最多条数,则可以按照时间先后顺序,将距离当前时刻最长的数据记录删除或者移入到其预设目录中,便于查看历史数据。

S120:针对每个告警属性的监控数据项,根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,如果是,则将该监控数据项添加到告警数据项集合中。

在本发明实施例中,每个监控数据项具有一定的属性,比如告警属性或者非告警属性等。针对告警属性的监控数据项,一旦其监控值达到设定的告警条件,则需主动发出针对该监控数据项的告警信息。

在主节点上可以设置SNMP代理模块,该SNMP代理模块启动后可以开辟告警线程,该告警线程可以获得每个节点的告警属性的监控数据项的监控值。针对每个告警属性的监控数据项,根据该监控数据项的监控值,可以确定该监控数据项的监控值是否满足预设的告警条件,从而可以确定该监控数据项是否为待告警数据项,如果是,则可以将该监控数据项添加到告警数据项集合中。

具体的,如果该监控数据项的最新的监控值大于该监控数据项对应的预设的第一告警阈值,则确定该监控数据项为待告警数据项。

或者,如果在设定时长内,该监控数据项的监控值均大于该监控数据项对应的预设的第二告警阈值,则确定该监控数据项为待告警数据项。

或者,如果该监控数据项的监控值大于该监控数据项对应的预设的第三告警阈值的比例大于预设比例阈值,则确定该监控数据项为待告警数据项。

需要说明的是,第一告警阈值、第二告警阈值、第三告警阈值和比例阈值均可以根据实际情况进行设定和调整,本发明实施例对此不做限制。

S130:根据告警数据项集合,生成简单网络管理协议SNMP告警报文,并将SNMP告警报文发送给监控设备。

在步骤S120,针对每个告警属性的监控数据项,确定是否将该监控数据项添加到告警数据项集合中。告警数据项集合中包含的监控数据项的属性均为告警属性,且监控值符合预设的告警条件。

主节点通过SNMP代理模块根据告警数据项集合,可以生成简单网络管理协议SNMP告警报文,在该SNMP告警报文中可以携带告警数据项集合中每个监控数据项的标识和监控值的信息。

生成SNMP告警报文后,可以将该SNMP告警报文发送给监控设备。这样,监控设备可以通过监控模块解析该SNMP告警报文,即可获知哪些监控数据项存在问题,并及时将告警信息反馈给监控人员,以便进行问题的确认和处理。

应用本发明实施例所提供的方法,主节点获得服务器集群中每个节点的监控数据项的监控值后,可以针对每个告警属性的监控数据项,根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,如果是,则将该监控数据项添加到告警数据项集合中,根据告警数据项集合,可以生成SNMP告警报文,并将该SNMP告警报文发送给监控设备,可以对服务器集群的性能状态进行有效监控。

参见图2所示,在本发明的一个实施例中,该方法还可以包括以下步骤:

S210:接收监控设备发送的针对目标监控数据项的SNMP请求报文。

在实际应用中,监控设备通过监控模块可以按照设定周期或者在接收到监控人员的数据获取指令时,向主节点发送针对目标监控数据项的SNMP请求报文,该SNMP请求报文中可以携带目标监控数据项的标识,还可以携带所需的目标监控数据项的监控值的时长等信息。

运行在主节点上的SNMP代理模块启动后可以开辟请求线程,该请求线程监听来自于监控模块的SNMP请求报文。接收到SNMP请求报文后,继续执行步骤S220的操作。

S220:确定目标监控数据项所属的目标节点。

不同节点的监控数据项的名称不同,或者监控数据项的标识中可以包含其所属的节点的标识。主节点接收到监控设备发送的针对目标监控数据项的SNMP请求报文后,可以对该SNMP请求报文进行解析,确定该目标监控数据项所属的目标节点。

S230:在目标节点对应的数据文件中获取目标监控数据项的监控值。

主节点通过监听服务器集群的多播组,可以将每个节点的监控数据项的监控值存放于该监控数据项对应的数据文件中。对应于同一节点的数据文件在同一目录。当主节点确定目标节点后,可以在目标节点对应的数据文件中获取该目标监控数据项的监控值。

S240:根据目标监控数据项的监控值,生成SNMP响应报文,并将SNMP响应报文发送给监控设备。

主节点根据目标监控数据项的监控值,可以生成SNMP响应报文,并将该SNMP响应报文发送给监控设备。监控设备解析该SNMP响应报文,即可获得所请求的目标监控数据项的监控值。

主节点在接收到监控设备针对目标监控数据项的SNMP请求报文后,直接在数据文件中即可获取目标监控数据项的监控值,可以快速响应该SNMP请求报文。

在本发明实施例中,监控设备可以是互联网上任意一台机器,在其上部署监控模块,满足远程监控要求。当服务器集群中增加新的节点时,在新的节点上部署数据获取模块,通过该数据获取模块可以将新的节点的监控数据项的监控值发送到多播组中,从而主节点通过数据收集模块就可获知该新的节点的相关数据,在主节点的SNMP代理模块中增加对相应监控数据项的处理即可,方便服务器集群的扩容和功能扩展。

相应于上面的方法实施例,本发明实施例还提供了一种服务器集群监控系统,下文描述的一种服务器集群监控系统与上文描述的一种服务器集群监控方法可相互对应参照。

参见图3所示,该系统包括服务器集群310和监控设备320,服务器集群310中的主节点311与监控设备320通过简单网络管理协议SNMP进行通信连接。

其中,主节点311,用于获得服务器集群310中每个节点的监控数据项的监控值;针对每个告警属性的监控数据项,根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,如果是,则将该监控数据项添加到告警数据项集合中;根据告警数据项集合,生成简单网络管理协议SNMP告警报文,并将SNMP告警报文发送给监控设备320;

监控设备320,用于接收主节点311发送的SNMP告警报文,并对SNMP告警报文进行解析,获得告警信息。

应用本发明实施例所提供的系统,主节点获得服务器集群中每个节点的监控数据项的监控值后,可以针对每个告警属性的监控数据项,根据该监控数据项的监控值,确定该监控数据项是否为待告警数据项,如果是,则将该监控数据项添加到告警数据项集合中,根据告警数据项集合,可以生成SNMP告警报文,并将该SNMP告警报文发送给监控设备,可以对服务器集群的性能状态进行有效监控。

在本发明的一种具体实施方式中,主节点311,具体用于:

如果该监控数据项的最新的监控值大于该监控数据项对应的预设的第一告警阈值,则确定该监控数据项为待告警数据项;

或者,

如果在设定时长内,该监控数据项的监控值均大于该监控数据项对应的预设的第二告警阈值,则确定该监控数据项为待告警数据项;

或者,

如果该监控数据项的监控值大于该监控数据项对应的预设的第三告警阈值的比例大于预设比例阈值,则确定该监控数据项为待告警数据项。

在本发明的一种具体实施方式中,主节点311,具体用于:

针对服务器集群310中每个节点,在预先获得的该节点对应的数据文件中获得该节点的监控数据项的监控值。

在本发明的一种具体实施方式中,主节点311,还用于针对服务器集群310中每个节点,通过以下步骤获得该节点对应的数据文件:

如果该节点为主节点311,则获取自身的监控数据项的监控值,并将获取到的监控数据项的监控值放入自身对应的数据文件中;

如果该节点为除主节点311外的任意一个节点,则通过监听服务器集群的多播组,收集多播组上该节点的监控数据项的监控值,并将收集到的监控数据项的监控值放入该节点对应的数据文件中。

在本发明的一种具体实施方式中,

主节点311,还用于接收监控设备320发送的针对目标监控数据项的SNMP请求报文;确定目标监控数据项所属的目标节点;在目标节点对应的数据文件中获取目标监控数据项的监控值;根据目标监控数据项的监控值,生成SNMP响应报文,并将SNMP响应报文发送给监控设备320;

监控设备320,用于向主节点311发送针对目标监控数据项的SNMP请求报文,接收主节点311返回的SNMP响应报文,并对SNMP响应报文进行解析,获得目标监控数据项的监控值。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种服务器集群监控方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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