一种采集监控记录的方法及系统与流程

文档序号:13164366阅读:294来源:国知局
一种采集监控记录的方法及系统与流程

本发明涉及计算机领域,特别是涉及一种采集监控记录的方法及系统。



背景技术:

现今,分布式集群已成为主流系统。在一个系统中,不同的模块或单元既有可能呈分布式排布,又有可能呈集群式排布。分布式排布即把不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题,一个单元或资源(软件或硬件)的故障不影响其他资源的正常功能;集群式排布即把一个业务部署在多台机器上,提高系统可用性,如ibm、hp等小型机以上档次的系统,一个主机带多个终端。针对不同模块和单元有不同的节点,一个系统中有许许多多这样的节点。由于整个系统内的节点数目庞大,节点宕机或零部件出现问题的概率就大大增加,为了减少由于硬件故障导致的系统故障,必须对各个节点的各项指标进行监控。

采用分布式监控,把系统监控压力分配到各个节点上,是一种常用的系统监控方法。在一个系统中,有主控节点和监控节点,各个监控节点之间对自己的监控是相互独立的,主控节点将监控节点的监控记录进行汇总,就可以得到整个系统的监控信息。在实际应用中,监控节点往往先将监控记录写入数据库,在收到主控节点发送的获取监控记录的命令时,再从数据库中查询监控记录发送给主控节点。但是,不同监控节点发送给主控节点的监控记录常常不是同一个时间点的,这会使主控节点无法汇总这些监控记录进而形成整个系统的监控指标。



技术实现要素:

本发明解决的技术问题在于提供一种采集监控记录的方法及系统,用于在分布式监控系统中使主控节点获取不同监控节点在同一时间点的监控记录,通过汇总这些监控记录进而形成整个系统的监控指标。

为解决上述技术问题,本发明提供一种采集监控记录的方法,包括:

监控节点获取监控记录并将所述监控记录写入数据库;

主控节点向所述监控节点发送查询命令,所述查询命令包括待查询时刻和误差范围;

所述监控节点收到所述查询命令后,根据所述待查询时刻从所述数据库中查找到所述误差范围内的最新的监控记录,并把所述最新的监控记录发送至所述主控节点。

优选地,在所述主控节点向所述监控节点发送查询命令之前,还包括:

时间同步服务器调整所述主控节点的时间和所述监控节点的时间。

优选地,所述误差范围的半径为所述节点时间差与所述监控命令运行时间之和,所述误差范围的下限为所述待查询时刻减去所述半径的差值,所述误差范围的上限为所述待查询时刻加上所述半径的和值;

其中,所述节点时间差具体为所述监控节点与所述主控节点的时间差,所述监控命令运行时间具体为所述监控节点获取所述监控记录并将所述监控记录写入所述数据库所需的时间。

优选地,所述主控节点向所述监控节点发送所述查询命令的发送时间和频率与所述监控节点获取所述监控记录的获取时间和频率相同。

优选地,当所述监控节点向所述主控节点发送所述最新的监控记录时,还包括:

所述监控节点向所述主控节点发送所述最新的监控记录的写入所述数据库的时间。

为解决上述技术问题,本发明提供一种采集监控记录的系统,包括:

主控节点,用于向监控节点发送查询命令并接受所述监控节点发送的监控记录;所述查询命令包括待查询时刻和误差范围;

监控节点,用于获取所述监控记录并将所述监控记录写入数据库;还用于在接收到所述主控节点发送的所述查询命令后,根据所述待查询时刻从所述数据库中查找到所述误差范围内的最新的监控记录,并把所述监控记录发送至所述主控节点。

优选地,还包括:

时间同步服务器,用于调整所述主控节点的时间和所述监控节点的时间。

优选地,所述误差范围的半径为所述节点时间差与所述监控命令运行时间之和,所述误差范围的下限为所述待查询时刻减去所述半径的差值,所述误差范围的上限为所述待查询时刻加上所述半径的和值;所述节点时间差具体为所述监控节点与所述主控节点的时间差,所述监控命令运行时间具体为所述监控节点获取所述监控记录并将所述监控记录写入所述数据库所需的时间。

优选地,所述主控节点向所述监控节点发送所述查询命令的发送时间和频率与所述监控节点开始获取所述监控记录的时间和频率相同。

优选地,当所述监控节点向所述主控节点发送所述最新的监控记录时,所述监控节点还用于:向所述主控节点发送所述最新的监控记录的写入所述数据库的时间。

本发明所提供的采集监控记录的方法及系统,由监控节点获取监控记录并将监控记录写入数据库,然后主控节点向监控节点发送查询命令,查询命令中包括待查询时刻和误差范围;监控节点在接收到查询命令后,在数据库中查找待查询时刻的误差范围内的监控记录,并把其中最新的监控记录发送至主控节点。在监控节点将监控记录写入数据库时记录的时间与主控节点的时间不一致时,由于监控节点查询的是在待查询时刻的误差范围内的监控记录,就可以尽可能地获取到在待查询时刻的同时发生的监控记录监控到的事件,不会出现监控节点发送主控节点的监控记录监控到的事件实际发生的时间与主控节点的待查询时刻不同的情况。这样就可以使主控节点获取不同监控节点在同一时刻的监控记录,通过汇总这些监控记录,就可以形成整个系统的监控指标。

附图说明

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

图1为本发明实施例提供的一种采集监控记录的方法的流程图;

图2为本发明实施例提供的第二种采集监控记录的方法的流程图;

图3为本发明实施例提供的一种采集监控记录的系统的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的核心是提供一种采集监控记录的方法和系统,用于使主控节点获取不同监控节点在同一时刻的监控记录,通过汇总这些监控记录,就可以形成整个系统的监控指标。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种采集监控记录的方法的流程图。如图1所示,采集监控记录的方法包括:

s10:监控节点获取监控记录并将监控记录写入数据库。

s11:主控节点向监控节点发送查询命令,所述查询命令包括待查询时刻和误差范围。

s12:监控节点在收到查询命令后,根据待查询时刻从数据库中查找到误差范围内的最新的监控记录,并把所述最新的监控记录发送至主控节点。

在具体实施中,对于s10来说,一个系统中有多个监控节点,这些监控节点是定时执行监控命令的,而监控节点获取监控记录并将监控记录写入数据库的过程就是监控节点执行监控命令的过程。每个监控节点的监控命令都是预先设置的,如每隔15s查询并记录一次硬件温度,被预先设置了这个监控命令的监控节点每隔15s被触发一次,直至将当前获取的监控记录写入数据库后,本次监控命令执行完毕,并在数据库中将执行完毕的时间记为监控记录产生时间。

对于s11来说,主控节点触发一次查询任务后,向监控节点发送查询命令,在接收到各监控节点返回的监控记录后进行汇总,从而形成整个系统的监控指标。上述查询命令中包括待查询时刻和误差范围,这里的待查询时刻可以是当前时刻,也可以是历史时刻,这里的误差范围指待查询时刻的误差范围,例如待查询时刻为12:00:00,误差范围可以表示为-1s~+2s,也可以表示为11:59:59~12:00:02,即查询11:59:59~12:00:02之间的监控记录。

对于s12来说,监控节点接收到主控节点发送的查询命令,根据查询命令中的待查询时刻,从数据库中查找待查询时刻的误差范围内的最新的监控记录,按上一自然段中的例子来说,就是从数据库中查询11:59:59~12:00:02之间的最新的监控记录,并将该最新的监控记录发送至主控节点。这里的最新的监控记录可能是12:00:02在数据库中产生的监控记录,也有可能是在12:00:02之前在数据库中产生的监控记录。

本发明实施例提供的采集监控记录的方法,由监控节点获取监控记录并将监控记录写入数据库,由主控节点向监控节点发送查询命令,查询命令中包括待查询时刻和误差范围;监控节点在接收到查询命令后,在数据库中查找待查询时刻的误差范围内的监控记录,并把其中最新的监控记录发送至主控节点。由于在实际情况中,往往存在监控节点的时间与主控节点的时间不同步等情况,监控节点在数据库中写入监控记录的数据时记录的时间很有可能不是这条监控记录监控到的事件发生的真实时间(以主控节点为准),即这个记录的时间存在误差,所以在查询命令中包括待查询时刻以及待查询时刻的误差范围,使监控节点在待查询时刻的误差范围内查到监控记录并把最新的监控记录返回主控节点,就可以抵消这个误差,从而使监控节点向主控节点发送时间正确的监控记录。因此,主控节点可以获取不同监控节点在同一时刻的监控记录,通过汇总这些监控记录,就可以形成整个系统的监控指标。

图2为本发明实施例提供的第二种采集监控记录的方法的流程图。如图2所示,在上述实施例的基础上,在另一实施例中,在步骤s11之前,还包括:

s20:时间同步服务器调整主控节点的时间和监控节点的时间。

需要说明的是,时间同步服务器最好采用ntpd(时钟同步服务),ntpd的机制为一点点地校准时间,对于整个系统来说更加安全,如果使用类似于ntpdate等一步将时间调整同步的方式,可能会造成系统的逻辑混乱。

在具体实施中,步骤s20可以在步骤s10之前进行,也可以与步骤s10同时进行,也可以在步骤s10之后进行。如果步骤s20与步骤s10同时进行或者在步骤s10之后进行,在监控节点将监控记录写入数据库之后再调整使主控节点和监控节点的时间一致,虽然也能减少主控节点和监控节点的时间差,但是由于不同的监控节点之间还有时间差,这样做误差较大,调整效果不佳。如果在步骤s10之前进行步骤s20,在调整使主控节点和监控节点的时间一致的基础上,监控节点再将监控记录写入数据库,可以最大程度上地减小主控节点和监控节点之间的时间差,也可以最大程度上地减小不同监控节点之间的时间差。

本发明实施例提供的采集监控记录的方法,采用时间同步服务器调整主控节点的时间和监控节点的时间,尽可能减少主控节点和监控节点的时间差,可以很大程度上避免主控节点采集到错误的监控记录。

在本发明实施例提供的第二种采集监控记录的方法的基础上,在本发明另一实施例中,误差范围的计算方法具体为:

误差范围的半径为节点时间差与监控命令运行时间之和,误差范围的下限为待查询时刻减去半径的差值,误差范围的上限为待查询时刻加上半径的和值;其中,节点时间差具体为监控节点与主控节点的时间差,监控命令运行时间具体为监控节点获取监控记录并将监控记录写入数据库所需的时间。

需要说明的是,节点时间差具体为监控节点的时间减去主控节点的时间,或者说,这里的节点时间差为监控节点的时间快于主控节点的时间,可能是正数,可能是负数,也可能为零。如果主控节点为12:00:00时,监控节点的时间为11:59:59,那么节点时间差为-1s。监控命令运行时间的产生是从监控节点触发监控任务后开始,到监控记录被写入数据库后的时间。这是因为某一时刻某一监控节点的监控记录可能是不止一项的监控数据,监控节点在采集这些监控数据时需要一定的时间,而将这些由监控数据组成的监控记录写入数据库的时候,又需要一定的时间,而数据库只记载监控记载写完那一刻的时间,这两段时间就是监控记录记载的事件发生的实际时间和记载时间之间的误差。因此,将节点时间差和监控命令运行时间算入误差范围内进行查找,可以减小这些误差。

另外,由于不同的监控节点与主控节点的时间差不同,不同的监控节点执行监控命令的时间也不同,导致节点时间差和监控命令运行时间有不同的数值,而在具体实施中,因为监控节点数量很多,针对不同监控节点发送不同的误差范围是很麻烦的,这就需要一个统一的标准。首先,由于在本发明实施例提供的第二种采集监控记录的方法中,在主控节点执行查询任务之前,时间同步服务器已经调整过主控节点和监控节点的时间,尽管不同监控节点的节点时间差有正有负有零,但这些节点时间差已经趋近于零,所以造成的误差可以忽略不计,只需计算各监控节点的节点时间差的绝对值的最大值作为统一的节点时间差即可。同样的,虽然不同监控节点的监控命令运行时间不同,但是这与单一监控节点产生的监控命令运行时间相比误差要小得多,而且在具体实施中监控节点触发监控命令的时间间隔比监控命令运行时间要大得多,所以可以计算不同监控节点的监控命令运行时间的最大值作为统一的监控命令运行时间。

本发明实施例提供的采集监控记录的方法,在本发明实施例提供的第二种采集监控记录的方法的基础上,限定了误差范围的上下限计算方法,将实际情况下可能产生的节点时间差和监控命令运行时间都计算在误差范围内,可以消除这些误差。上文已经说过,监控节点根据查询命令中的待查询时刻在数据库中查找到误差范围内的最新的监控记录,节点时间差趋近于零,误差范围受监控命令运行时间影响更大,而监控命令运行时间是一个正值,由此可见,监控记录写入数据库的时间往往迟于待查询时刻,因此查找到的误差范围内的最新的监控记录,就是待查询时刻的监控记录。

在本发明实施例提供的第二种采集监控记录的方法的基础上,在另一实施例中,还包括:

主控节点向监控节点发送查询命令的发送时间和频率与监控节点获取监控记录的时间和频率相同。

需要说明的是,基于时间同步服务器将节点时间差减小到最小,可以保证主控节点向监控节点发送查询命令的发送时间和频率与监控节点获取监控记录的时间和频率相同。

本发明实施例提供的采集监控记录的方法,在本发明第二种具体实施方式的基础上,使主控节点向监控节点发送查询命令的发送时间和频率与监控节点获取监控记录的时间和频率相同,这样就可以达到实时采集系统监控记录的效果,方便监控人员观察系统的各项监控指标从而对系统进行调整。

在上述具体实施方式的基础上,在本发明的另一实施例中,还包括:

监控节点向主控节点发送最新的监控记录的写入数据库的时间。

在上文描述中提到,监控节点将待查询时刻的监控记录写入数据库的时间与待查询时刻有一定的误差,为了消去这些误差的影响,需要在查询命令中包括待查询时刻和误差范围,监控节点根据待查询时刻在数据库中查找到误差范围内的最新的监控记录发送至主控节点。通过监控节点向主控节点发送最新的监控记录的写入数据库的时间,可以直接得到这些监控节点的误差范围,从而通过计算得到整个系统的监控节点的误差范围。

本发明实施例提供的采集监控记录的方法,在上述具体实施方式的基础上,还包括监控节点向主控节点发送最新的监控记录的写入数据库的时间,这样就可以通过统计不同监控节点产生的误差,从而计算得到整个系统的监控节点的误差范围。

上文详述了采集监控记录的方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的采集监控记录的系统。图3为本发明实施例提供的一种采集监控记录的系统的示意图。如图3所示,采集监控记录的系统包括:

主控节点301,用于向监控节点发送查询命令并接受监控节点发送的监控记录;查询命令包括待查询时刻和误差范围。

监控节点302,用于获取监控记录并将监控记录写入数据库;还用于在接收到主控节点发送的查询命令后,根据待查询时刻从数据库中查找到误差范围内的最新的监控记录,并把监控记录发送至主控节点。

需要说明的是,监控节点302不止一个。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本发明实施例提供的采集监控记录的系统,由监控节点获取监控记录并将监控记录写入数据库,由主控节点向监控节点发送查询命令,查询命令中包括待查询时刻和误差范围;监控节点在接收到查询命令后,在数据库中查找待查询时刻的误差范围内的监控记录,并把其中最新的监控记录发送至主控节点。由于在实际情况中,往往存在监控节点的时间与主控节点的时间不同步等情况,监控节点在数据库中写入监控记录的数据时记录的时间很有可能不是这条监控记录监控到的事件发生的真实时间(以主控节点为准),即这个记录的时间存在误差,所以在查询命令中包括待查询时刻以及待查询时刻的误差范围,使监控节点在待查询时刻的误差范围内查到监控记录并把最新的监控记录返回主控节点,就可以抵消这个误差,从而使监控节点向主控节点发送时间正确的监控记录。因此,主控节点可以获取不同监控节点在同一时刻的监控记录,通过汇总这些监控记录,就可以形成整个系统的监控指标。

以上对本发明所提供的采集监控记录的方法及系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

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