一种监控分布式存储系统的方法及装置与流程

文档序号:20487550发布日期:2020-04-21 21:47阅读:235来源:国知局
一种监控分布式存储系统的方法及装置与流程

本发明涉及金融科技(fintech)领域,尤其涉及一种监控分布式存储系统的方法及装置。



背景技术:

随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外。但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出了更高的要求。

出于对海量数据所要求的可扩展性以及高可用性等因素的考虑,银行业一般选择将cephfs(cephfilesystem,ceph文件系统)这样一种分布式存储系统作为共享存储的技术方案,其中,cephfs下连接有cephfuse客户端;与此同时,本领域的技术人员通常采用开源的prometheus这样一种监控系统对cephfs进行监控。其中,prometheus主要由exporters和prometheussever等部分组成;cephfs主要由监视器(monitor,简写成mon)、目标存储设备(objectstoragedevice,简写成osd)以及元数据服务器(metadatasever,简写成mds)等各类组件组成,此外,cephfsosd组件上还分布有归置小组(placementgroups,简写成pg)。

针对现有技术中的prometheus对于cephfs进行监控的技术方案,存在以下两方面问题:

第一,prometheus对于cephfs的监控主要表现为prometheus对cephfsosd组件状态以及cephfspg状态的数据采集,但prometheus并没有实现对cephfuse客户端的监控。

第二,prometheus对于cephfs的监控架构非常臃肿,表现为需要给每个cephfs部署一套prometheus;此外,由于cephfs版本的不同,还需要为不同版本的cephfs部署不同的expoter。如图1所示,为现有技术的prometheus对于cephfs的监控架构图。参考图1,exporter_m采集cephfs_m的监控数据,若所采集到的监控数据满足生成告警信息的规则,则将生成的告警信息上报至prometheussever_m,同理,exporter_n采集cephfs_n的监控数据,若所采集到的监控数据满足生成告警信息的规则,则将生成的告警信息上报至prometheussever_n;但由于exporter_m与cephfs_n版本的不匹配,从而不能将exporter_m用于采集cephfs_n的监控数据,以实现对cephfs_n的告警信息的上报。也即,prometheussever、exporter和cephfs这三者之间没有实现高可用,导致在异常情况下无法及时上报监控信息。

综上,现有技术存在prometheus无法监控cephfuse客户端以及prometheus对于cephfs的监控效率低下的问题。



技术实现要素:

本发明提供一种监控分布式存储系统的方法及装置,用以解决prometheus无法监控cephfuse客户端以及prometheus对于cephfs的监控效率低下的问题。

第一方面,本发明实施例提供一种监控分布式存储系统的方法,该方法包括:监控服务器向所述分布式存储系统中的各集群发送采集指令;所述监控服务器获取所述各集群基于所述采集指令反馈的监控数据,所述监控数据包括集群自身的健康数据以及与集群相连的客户端的状态数据;针对至少一个集群,所述监控服务器根据预设的告警规则,从所述集群的监控数据中确定告警信息并将所述告警信息上报至告警平台。

基于该方案,监控服务器通过将采集指令下发至分布式存储系统中的各集群的方式,使得监控服务器可以同时监控多个集群,从而避免了由于集群与exporter版本不匹配时、监控服务器无法有效地监控各集群;此外,各集群反馈给监控服务器的监控数据中还包括与集群相连的客户端的状态数据,有利于监控服务器通过对与集群相连的客户端的状态数据的分析来确定告警信息,从而实现了监控服务器对与集群相连的客户端进行监控的目的。

作为一种可能实现的方法,所述监控服务器为多台;任一集群中包括多台节点服务器,且连接有客户端的各节点服务器所连接的客户端均相同;所述监控服务器向所述分布式存储系统中的各集群发送采集指令,包括:针对任一台监控服务器,所述监控服务器向任一集群中的至少两台节点服务器下发采集指令。

基于该方案,通过为分布式存储系统设置多台监控服务器,一方面,通过频繁地从分布式存储系统中的各集群中获取各集群的监控数据,可以实现对于该分布式存储系统的全方位、甚至实时监控的目标;另一方面,通过设置多台监控服务器的方式,还可以确保在其中一台或几台监控服务器宕机的情况下,还有其他可用的监控服务器来对该分布式存储系统进行监控。对于多台监控服务器中的任一台监控服务器,该监控服务器通过向各集群中的至少两台节点服务器下发采集指令,有利于确保在其中一台节点服务器宕机的情况下,该监控服务器还可以从其他可用的节点服务器上来获取该节点服务器所在集群的监控数据,从而实现监控服务器对各集群的有效监控。

作为一种可能实现的方法,所述告警规则包括告警生成规则;所述监控服务器根据预设的告警规则,从所述监控数据中确定告警信息,包括:所述监控服务器从所述监控数据中确定出与所述集群的连接状态发生变化的第一客户端;所述监控服务器根据所述集群的业务变化确定与所述集群的连接状态发生变化的第二客户端;根据包含在所述第一客户端中却不包含在所述第二客户端中的客户端及所述告警生成规则,生成客户端的告警信息。

基于该方案,通过对监控数据的分析,确定出与所述集群的连接状态发生变化的第一客户端,以及通过对已知业务变化的分析,确定出与所述集群的连接状态发生变化的第二客户端,通过将第一客户端与第二客户端进行对比,即可生成由于客户端的异常而产生的告警信息。

作为一种可能实现的方法,所述告警规则还包括告警抑制规则;所述监控服务器确定所述集群的业务变化的变化时长;所述监控服务器设置所述客户端的告警信息的告警抑制规则,所述客户端的告警抑制规则用于将在所述变化时长内产生的所述客户端的告警信息不进行上报。

基于该方案,在确定出集群出于业务需要的目的而要求的必要的时长后,监控服务器并不会在这段必要的时长的过程中、将客户端的告警信息上报至告警平台,从而可以有效地避免产生已知而无用的告警。

作为一种可能实现的方法,所述监控服务器根据所述集群自身的健康数据生成所述集群的mds组件的告警信息;所述监控服务器根据预设的告警规则,将所述告警信息上报至告警平台,包括:所述监控服务器确定所述mds组件的告警信息的告警级别高于所述客户端的告警信息,则将所述mds组件的告警信息上报至告警平台。

基于该方案,当监控服务器同时获取到集群的mds组件的告警信息和与集群相连的客户端的告警信息时,考虑到可能是集群的mds组件的异常造成了与集群相连的客户端的异常事件,因此监控服务器确定mds组件的告警信息的告警级别高于客户端的告警信息,并将mds组件的告警信息上报至告警平台,自动屏蔽低级别的客户端的告警信息。

作为一种可能实现的方法,所述监控服务器获取所述各集群基于所述采集指令反馈的监控数据之后,还包括:所述监控服务器设置各监控数据对应的集群标识。

基于该方案,监控服务器通过为获取到的各监控数据打上与其对应的集群的标识,有助于监控服务器后期对于接收到同一集群的相同监控数据时、迅速地做出相应的告警操作。

作为一种可能实现的方法,所述告警规则还包括告警收敛规则;所述监控服务器根据预设的告警规则,将所述告警信息上报至告警平台,包括:所述监控服务器确定所述告警信息为所述集群中非首次出现的同一告警信息,则根据所述告警收敛规则中的告警级别与告警时延的对照关系,在设定时延后将所述告警信息上报至所述告警平台;其中,告警级别的级别越低,相应的告警时延的时延越长。

基于该方案,在监控服务器确定告警信息为某集群非首次出现的相同告警信息后,根据告警收敛规则、在设定时延后将非首次出现的相同告警上报至所述告警平台,可以有效防止该集群持续重复发出相同告警,而造成的资源浪费现象。

第二方面,本发明实施例提供一种监控分布式存储系统的装置,该装置包括:发送单元,用于向所述分布式存储系统中的各集群发送采集指令;获取单元,用于获取所述各集群基于所述采集指令反馈的监控数据,所述监控数据包括集群自身的健康数据以及与集群相连的客户端的状态数据;确定单元,针对至少一个集群,用于根据预设的告警规则,从所述集群的监控数据中确定告警信息并将所述告警信息上报至告警平台。

基于该方案,监控服务器通过将采集指令下发至分布式存储系统中的各集群的方式,使得监控服务器可以同时监控多个集群,从而避免了由于集群与exporter版本不匹配时、监控服务器无法有效地监控各集群;此外,各集群反馈给监控服务器的监控数据中还包括与集群相连的客户端的状态数据,有利于监控服务器通过对与集群相连的客户端的状态数据的分析来确定告警信息,从而实现了监控服务器对与集群相连的客户端进行监控的目的。

作为一种可能实现的方法,所述监控服务器为多台;任一集群中包括多台节点服务器,且连接有客户端的各节点服务器所连接的客户端均相同;针对任一台监控服务器,所述发送单元,具体用于向任一集群中的至少两台节点服务器下发采集指令。

基于该方案,通过为分布式存储系统设置多台监控服务器,一方面,通过频繁地从分布式存储系统中的各集群中获取各集群的监控数据,可以实现对于该分布式存储系统的全方位、甚至实时监控的目标;另一方面,通过设置多台监控服务器的方式,还可以确保在其中一台或几台监控服务器宕机的情况下,还有其他可用的监控服务器来对该分布式存储系统进行监控。对于多台监控服务器中的任一台监控服务器,该监控服务器通过向各集群中的至少两台节点服务器下发采集指令,有利于确保在其中一台节点服务器宕机的情况下,该监控服务器还可以从其他可用的节点服务器上来获取该节点服务器所在集群的监控数据,从而实现监控服务器对各集群的有效监控。

作为一种可能实现的方法,所述告警规则包括告警生成规则;所述确定单元,具体用于从所述监控数据中确定出与所述集群的连接状态发生变化的第一客户端;根据所述集群的业务变化确定与所述集群的连接状态发生变化的第二客户端;根据包含在所述第一客户端中却不包含在所述第二客户端中的客户端及所述告警生成规则,生成客户端的告警信息。

基于该方案,通过对监控数据的分析,确定出与所述集群的连接状态发生变化的第一客户端,以及通过对已知业务变化的分析,确定出与所述集群的连接状态发生变化的第二客户端,通过将第一客户端与第二客户端进行对比,即可生成由于客户端的异常而产生的告警信息。

作为一种可能实现的方法,所述告警规则还包括告警抑制规则;所述确定单元,具体用于确定所述集群的业务变化的变化时长;设置所述客户端的告警信息的告警抑制规则,所述客户端的告警抑制规则用于将在所述变化时长内产生的所述客户端的告警信息不进行上报。

基于该方案,在确定出集群出于业务需要的目的而要求的必要的时长后,监控服务器并不会在这段必要的时长的过程中、将客户端的告警信息上报至告警平台,从而可以有效地避免产生已知而无用的告警。

作为一种可能实现的方法,所述监控服务器根据所述集群自身的健康数据生成所述集群的mds组件的告警信息;所述确定单元,具体用于确定所述mds组件的告警信息的告警级别高于所述客户端的告警信息,则将所述mds组件的告警信息上报至告警平台。

基于该方案,当监控服务器同时获取到集群的mds组件的告警信息和与集群相连的客户端的告警信息时,考虑到可能是集群的mds组件的异常造成了与集群相连的客户端的异常事件,因此监控服务器确定mds组件的告警信息的告警级别高于客户端的告警信息,并将mds组件的告警信息上报至告警平台,自动屏蔽低级别的客户端的告警信息。

作为一种可能实现的方法,所述监控服务器获取所述各集群基于所述采集指令反馈的监控数据之后,所述确定单元,还用于设置各监控数据对应的集群标识。

基于该方案,监控服务器通过为获取到的各监控数据打上与其对应的集群的标识,有助于监控服务器后期对于接收到同一集群的相同监控数据时、迅速地做出相应的告警操作。

作为一种可能实现的方法,所述告警规则还包括告警收敛规则;所述确定单元,具体用于确定所述告警信息为所述集群中非首次出现的同一告警信息,则根据所述告警收敛规则中的告警级别与告警时延的对照关系,在设定时延后将所述告警信息上报至所述告警平台;其中,告警级别的级别越低,相应的告警时延的时延越长。

基于该方案,在监控服务器确定告警信息为某集群非首次出现的相同告警信息后,根据告警收敛规则、在设定时延后将非首次出现的相同告警上报至所述告警平台,可以有效防止该集群持续重复发出相同告警,而造成的资源浪费现象。

第三方面,本发明实施例提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一所述的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一所述的方法。

附图说明

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

图1为现有技术的prometheus对于cephfs的监控架构图;

图2为本发明提供的一种监控分布式存储系统的方法;

图3为本发明提供的一种prometheus对于cephfs的监控架构图;

图4为本发明提供的一种监控分布式存储系统的装置。

具体实施方式

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

如图2所示,为本发明实施例提供的一种监控分布式存储系统的方法,该方法包括:

步骤201,监控服务器向所述分布式存储系统中的各集群发送采集指令。

步骤202,所述监控服务器获取所述各集群基于所述采集指令反馈的监控数据,所述监控数据包括集群自身的健康数据以及与集群相连的客户端的状态数据。

步骤203,针对至少一个集群,所述监控服务器根据预设的告警规则,从所述集群的监控数据中确定告警信息并将所述告警信息上报至告警平台。

基于该方案,监控服务器通过将采集指令下发至分布式存储系统中的各集群的方式,使得监控服务器可以同时监控多个集群,从而避免了由于集群与exporter版本不匹配时、监控服务器无法有效地监控各集群;此外,各集群反馈给监控服务器的监控数据中还包括与集群相连的客户端的状态数据,有利于监控服务器通过对与集群相连的客户端的状态数据的分析来确定告警信息,从而实现了监控服务器对与集群相连的客户端进行监控的目的。

在上述步骤201中,监控服务器向所述分布式存储系统中的各集群发送采集指令。

设cephfs这样一种分布式存储系统中设置有多个集群,如3个,分别令为cephfs_a集群,cephfs_b集群,cephfs_c集群;作为监控cephfs的一种监控服务器prometheus,通过其内部的prometheussever向cephfs下发采集指令,具体表现为prometheussever向cephfs_a集群下发采集指令i,prometheussever向cephfs_b集群下发采集指令i,prometheussever向cephfs_c集群下发采集指令i。

在上述步骤202中,所述监控服务器获取所述各集群基于所述采集指令反馈的监控数据,所述监控数据包括集群自身的健康数据以及与集群相连的客户端的状态数据。

当prometheussever向cephfs_a集群下发采集指令i后,cephfs_a集群会对该采集指令i作出相应的响应,得到关于cephfs_a集群的监控数据,由此prometheussever获取到关于cephfs_a集群的监控数据;同理,prometheussever可以获取到关于cephfs_b集群的监控数据以及获取到关于cephfs_c集群的监控数据。

关于cephfs_a集群的监控数据,具体可以表现为cephfs_a集群自身的健康数据(如osd组件的运行状态、pg的状态数据),以及与cephfs_a集群相连的cephfuse_a客户端的状态数据(如cephfuse_a客户端是否接入cephfs_a集群)。比如与cephfs_a集群相连的cephfuse_a客户端有100个,则关于cephfs_a集群的监控数据部件包括cephfs_a集群自身的健康数据,还包括与cephfs_a集群相连的100个cephfuse_a客户端的状态数据;关于cephfs_b集群的监控数据、关于cephfs_c集群的监控数据可以参考关于cephfs_a集群的监控数据的情形,在此不赘述。

在上述步骤203中,针对至少一个集群,所述监控服务器根据预设的告警规则,从所述集群的监控数据中确定告警信息并将所述告警信息上报至告警平台。

设对于cephfs_a集群,prometheus通过对获取的来自于cephfs_a集群的监控数据的分析,分析的依据是预设的告警规则,从而确定出关于cephfs_a集群的告警信息;进一步地,prometheus将得到的关于cephfs_a集群的告警信息后上报至告警平台,上报的依据仍然是预设的告警规则。其中,告警平台可以为ims系统,还可以是其他告警平台,对此,本发明不做限定。同理,prometheus对于cephfs_b集群、cephfs_c集群的告警过程可以参考cephfs_a集群的告警过程,在此不赘述。

作为一种可能实现的方法,所述监控服务器为多台;任一集群中包括多台节点服务器,且连接有客户端的各节点服务器所连接的客户端均相同;所述监控服务器向所述分布式存储系统中的各集群发送采集指令,包括:针对任一台监控服务器,所述监控服务器向任一集群中的至少两台节点服务器下发采集指令。

如图3所示,为本发明实施例提供的一种prometheus对于cephfs的监控架构图。参考图3,部署了两台监控服务器,分别令为prometheussever_x和prometheussever_y,prometheussever_x和prometheussever_y均用于监控分布式存储系统,该系统中部署有cephfs_a集群、cephfs_b集群和cephfs_c集群;对于cephfs_a集群,该集群中包括了多台节点服务器,为了叙述的方便,设cephfs_a集群包括了4台节点服务器,分别令为a1、a2、a3和a4;同样的,对于cephfs_b集群,该集群中包括了多台节点服务器,为了叙述的方便,设cephfs_b集群包括了4台节点服务器,分别令为b1、b2、b3和b4;同样的,对于cephfs_c集群,该集群中包括了多台节点服务器,为了叙述的方便,设cephfs_c集群包括了4台节点服务器,分别令为c1、c2、c3和c4。

对于cephfs_a集群,设有100台cephfuse_a客户端连接于该集群中的被配置有mds组件的节点服务器,设cephfs_a集群中有3台节点服务器被配置有mds组件,则这100台cephfuse_a客户端均连接于这3台被配置有mds组件的节点服务器(图中未示出);同理,对于cephfs_b集群,设有200台cephfuse_b客户端连接于该集群中的被配置有mds组件的节点服务器,设cephfs_b集群中有3台节点服务器被配置有mds组件,则这200台cephfuse_b客户端均连接于这3台被配置有mds组件的节点服务器(图中未示出);同理,对于cephfs_c集群,设有300台cephfuse_c客户端连接于该集群中的被配置有mds组件的节点服务器,设cephfs_c集群中有3台节点服务器被配置有mds组件,则这300台cephfuse_c客户端均连接于这3台被配置有mds组件的节点服务器(图中未示出)。

设对于prometheussever_x,该监控服务器向上述cephfs_a集群、cephfs_b集群和cephfs_c集群中的任一集群中的至少两台节点服务器下发采集指令,具体表现为:

设在8:00am这一时刻,prometheussever_x向cephfs_a集群中的a1、a2和a4这3台节点服务器下发采集指令i;同时,prometheussever_x向cephfs_b集群中的b1、b3和b4这3台节点服务器下发采集指令i;同时,prometheussever_x向cephfs_c集群中的c1、c2和c4这3台节点服务器下发采集指令i。

需要说明的是,prometheussever_x向cephfs_a集群中的至少两台节点服务器下发采集指令时,是通过随机的方式向cephfs_a集群中的任意至少两台节点服务器下发采集指令。举个例子,上述prometheussever_x可以是向cephfs_a集群中的a1、a2和a4这3台节点服务器下发采集指令i,也可以是向cephfs_a集群中的a2、a3和a4这3台节点服务器下发采集指令i,也可以是向cephfs_a集群中的a1、a2和a3这3台节点服务器下发采集指令i,对此本发明不做限定。同样的,prometheussever_x向cephfs_b集群中的至少两台节点服务器下发采集指令时,是通过随机的方式向cephfs_b集群中的任意至少两台节点服务器下发采集指令;同样的,prometheussever_x向cephfs_c集群中的至少两台节点服务器下发采集指令时,是通过随机的方式向cephfs_c集群中的任意至少两台节点服务器下发采集指令。

作为一种可能实现的方式,所述告警规则包括告警生成规则;所述监控服务器根据预设的告警规则,从所述监控数据中确定告警信息,包括:所述监控服务器从所述监控数据中确定出与所述集群的连接状态发生变化的第一客户端;所述监控服务器根据所述集群的业务变化确定与所述集群的连接状态发生变化的第二客户端;根据包含在所述第一客户端中却不包含在所述第二客户端中的客户端及所述告警生成规则,生成客户端的告警信息。

举个例子,对于cephfs_a集群,为了叙述的方便,设有w1、w2、w3、w4、w5、w6、w7、w8、w9和w10这10台cephfuse_a客户端连接于该集群中的被配置有mds组件的节点服务器;prometheussever_x向cephfs_a集群中的a1、a2和a4这3台节点服务器下发了采集指令i,设prometheussever_x首先获取到a1节点服务器上的监控数据,通过对a1节点服务器上的监控数据的分析,确定出其中的w1、w2、w3、w4、w5、w6、w7、w8、w9和w10这10台cephfuse_a客户端均连接于该cephfs_a集群;随后,prometheussever_x接着获取到a2节点服务器上的监控数据,通过对a2节点服务器上的监控数据的分析,确定出其中仅有w8、w9和w10这3台cephfuse_a客户端仍然连接于cephfs_a集群,而w1、w2、w3、w4、w5、w6和w7这7台cephfuse_a客户端已经从cephfs_a集群上离线。也即,与所述集群的连接状态发生变化的第一客户端分别为w1、w2、w3、w4、w5、w6和w7这7台cephfuse_a客户端。

对于cephfuse_a客户端出现的这种异常事件,则需要进一步判断w1、w2、w3、w4、w5、w6和w7这7台cephfuse_a客户端从cephfs_a集群上离线的原因,即在于cephfuse_a客户端是正常地从cephfs_a集群中卸载,还是由于cephfs_a集群自身的原因而导致的cephfuse_a客户端被动卸载。

运行于cephfs_a集群上的业务,出于业务需要的目的,会对连接于cephfs_a集群上的部分客户端进行日常的卸载工作。比如,出于业务需要的目的,业务人员会对cephfs_a集群中的w5、w6和w7这3台cephfuse_a客户端进行卸载。也即与所述集群的连接状态发生变化的第二客户端分别为w5、w6和w7这3台cephfuse_a客户端。

通过对第一客户端(分别有w1、w2、w3、w4、w5、w6和w7这7台cephfuse_a客户端)和第二客户端(w5、w6和w7这3台cephfuse_a客户端)的比较,可以发现w5、w6和w7这3台cephfuse_a客户端的卸载是属于cephfuse_a客户端的正常卸载事件,从而对于监控数据中的w5、w6和w7这3台cephfuse_a客户端的离线不需要上报至ims系统;而对于w1、w2、w3和w4这4台cephfuse_a客户端的卸载属于cephfuse_a客户端的异常卸载事件,则根据告警生成规则,生成客户端的告警信息。

作为一种可能实现的方式,所述告警规则还包括告警抑制规则;所述监控服务器确定所述集群的业务变化的变化时长;所述监控服务器设置所述客户端的告警信息的告警抑制规则,所述客户端的告警抑制规则用于将在所述变化时长内产生的所述客户端的告警信息不进行上报。

如前述的例子,设出于业务需要的目的,对连接于cephfs_a集群上的w5、w6和w7这3台cephfuse_a客户端进行正常的卸载操作,设卸载w5、w6和w7这3台cephfuse_a客户端所要求的时长为3h,则prometheussever_x在获取到a2节点服务器上的监控数据后的未来3h的整个时间段内,prometheussever_x并不会将连接于cephfs_a集群上的w5、w6和w7这3台cephfuse_a客户端的离线事件上报至ims系统。也即,prometheussever_x将w5、w6和w7这3台cephfuse_a客户端从cephfs_a集群上离线的事件写入了告警抑制规则中。

作为一种可能实现的方法,所述监控服务器根据所述集群自身的健康数据生成所述集群的mds组件的告警信息;所述监控服务器根据预设的告警规则,将所述告警信息上报至告警平台,包括:所述监控服务器确定所述mds组件的告警信息的告警级别高于所述客户端的告警信息,则将所述mds组件的告警信息上报至告警平台。

如前述的例子中,prometheussever_x对于cephfs_a集群的监控数据,包括cephfs_a集群自身的健康数据(如osd组件的运行状态、pg的状态数据),以及与cephfs_a集群相连的cephfuse_a客户端的状态数据(如cephfuse_a客户端是否接入cephfs_a集群)。设在t时刻,prometheussever_x获取到的有关于cephfs_a集群的监控数据,该条监控数据显示cephfs_a集群中的mds组件在运行时出现异常,同时与cephfs_a集群相连的w1这1台cephfuse_a客户端也出现异常卸载事件,则prometheussever_x将cephfs_a集群中的mds组件在运行时出现的异常事件的告警级别定义为高级别,将w1这1台cephfuse_a客户端出现的异常卸载事件的告警界别定义为低级别;随后prometheussever_x将高级别的告警事件上报至ims系统,也即prometheussever_x会将cephfs_a集群中的mds组件在运行时出现的异常事件上报至ims系统,而不会将w1这1台cephfuse_a客户端出现的异常卸载事件上报至ims系统。

需要说明的是,监控服务器之所以可以将集群中的mds组件的告警信息的告警级别设置的比所述客户端的告警信息的告警级别高,原因在于由于集群中的mds组件的异常会造成与集群相连的客户端的异常事件,因而在将集群中的mds组件的告警信息上报至ims系统、在运维人员进行运维排查后,不仅可以将mds组件恢复至正常的运行状态,同时可以让与集群相连的客户端也恢复至正常状态。

作为一种可能实现的方法,所述监控服务器获取所述各集群基于所述采集指令反馈的监控数据之后,还包括:所述监控服务器设置各监控数据对应的集群标识。

如前述的例子,参考图3,prometheussever_x向cephfs_a集群中的a1、a2和a4这三台节点服务器发送采集指令i,同时向cephfs_b集群中的b1、b3和b4这三台节点服务器发送采集指令i,以及同时向cephfs_c集群中的c1、c2和c4这三台节点服务器发送采集指令i;当采集指令i在上述cephfs_a集群、cephfs_b集群和cephfs_c集群这三个集群中被响应后,prometheussever_x会将获取上述各个集群的监控数据。其中,监控数据可以表现为集群的标识,比如prometheussever_x获取到的第一条是cephfs_a集群的a1节点服务器上的监控数据,第二条是cephfs_b集群的b3节点服务器上的监控数据,第三条是cephfs_c集群的c4节点服务器上的监控数据,等等。

作为一种可能实现的方法,所述告警规则还包括告警收敛规则;所述监控服务器根据预设的告警规则,将所述告警信息上报至告警平台,包括:所述监控服务器确定所述告警信息为所述集群中非首次出现的同一告警信息,则根据所述告警收敛规则中的告警级别与告警时延的对照关系,在设定时延后将所述告警信息上报至所述告警平台;其中,告警级别的级别越低,相应的告警时延的时延越长。

如前述的例子,设prometheussever_x获取到的第一条监控数据是来自于cephfs_a集群,根据预设的告警规则、对第一条监控数据进行分析后,确定第一条监控数据可以作为告警信息上报至ims系统,将根据第一条监控数据所生成的告警信息令为info_1,且将infro_1的告警级别为令为级别1;设prometheussever_x获取到的第六条监控数据仍然是有关于cephfs_a集群的,根据预设的告警规则、对第六条监控数据进行分析后,发现根据这第六条监控数据所生成的告警信息符合info_1,则prometheussever_x需要进一步的根据infro_1的告警级别来确定何时将这第六条监控数据上报至ims系统;设告警级别为级别1的告警信息所对应的告警时延为1h,则prometheussever_x在接下来的1h内并不会将第六条监控数据对应的infro_1上报至ims系统。

设prometheussever_x获取到的第二条监控数据是来自于cephfs_b集群,根据预设的告警规则、对第二条监控数据进行分析后,确定第二条监控数据可以作为告警信息上报至ims系统,将根据第二条监控数据所生成的告警信息令为info_2,且将infro_2的告警级别为令为级别2;设prometheussever_x获取到的第九条监控数据仍然是有关于cephfs_b集群的,根据预设的告警规则、对第九条监控数据进行分析后,发现根据这第九条监控数据所生成的告警信息符合info_2,则prometheussever_x需要进一步的根据infro_2的告警级别来确定何时将这第九条监控数据上报至ims系统;设告警级别为级别2的告警信息所对应的告警时延为2h,则prometheussever_x在接下来的2h内并不会将第九条监控数据对应的infro_2上报至ims系统。

设prometheussever_x获取到的第三条监控数据是来自于cephfs_c集群,根据预设的告警规则、对第三条监控数据进行分析后,确定第三条监控数据可以作为告警信息上报至ims系统,将根据第三条监控数据所生成的告警信息令为info_3,且将infro_3的告警级别为令为级别3;设prometheussever_x获取到的第十条监控数据仍然是有关于cephfs_c集群的,根据预设的告警规则、对第十条监控数据进行分析后,发现根据这第十条监控数据所生成的告警信息符合info_3,则prometheussever_x需要进一步的根据infro_3的告警级别来确定何时将这第十条监控数据上报至ims系统;设告警级别为级别3的告警信息所对应的告警时延为3h,则prometheussever_x在接下来的3h内并不会将第十条监控数据对应的infro_3上报至ims系统。

需要说明的是,上述例子中,随着级别1、级别2、级别3的告警级别的降低,相应的告警时延的时延越长,分别对应1h、2h、3h。

基于该方案,在监控服务器确定告警信息为某集群非首次出现的相同告警信息后,根据告警收敛规则、在设定时延后将非首次出现的相同告警上报至所述告警平台,可以有效防止该集群持续重复发出相同告警,而造成的资源浪费现象。

基于同样的构思,本发明实施例还提供一种监控分布式存储系统的装置,如图4所示,该装置包括:

发送单元401,用于向所述分布式存储系统中的各集群发送采集指令;

获取单元402,用于获取所述各集群基于所述采集指令反馈的监控数据,所述监控数据包括集群自身的健康数据以及与集群相连的客户端的状态数据;

确定单元403,针对至少一个集群,用于根据预设的告警规则,从所述集群的监控数据中确定告警信息并将所述告警信息上报至告警平台。

进一步地,对于所述装置,所述监控服务器为多台;任一集群中包括多台节点服务器,且连接有客户端的各节点服务器所连接的客户端均相同;针对任一台监控服务器,所述发送单元401,具体用于向任一集群中的至少两台节点服务器下发采集指令。

进一步地,对于所述装置,所述告警规则包括告警生成规则;所述确定单元403,具体用于从所述监控数据中确定出与所述集群的连接状态发生变化的第一客户端;根据所述集群的业务变化确定与所述集群的连接状态发生变化的第二客户端;根据包含在所述第一客户端中却不包含在所述第二客户端中的客户端及所述告警生成规则,生成客户端的告警信息。

进一步地,对于所述装置,所述告警规则还包括告警抑制规则;所述确定单元403,具体用于确定所述集群的业务变化的变化时长;设置所述客户端的告警信息的告警抑制规则,所述客户端的告警抑制规则用于将在所述变化时长内产生的所述客户端的告警信息不进行上报。

进一步地,对于所述装置,所述监控服务器根据所述集群自身的健康数据生成所述集群的mds组件的告警信息;所述确定单元403,具体用于确定所述mds组件的告警信息的告警级别高于所述客户端的告警信息,则将所述mds组件的告警信息上报至告警平台。

进一步地,对于所述装置,所述监控服务器获取所述各集群基于所述采集指令反馈的监控数据之后,所述确定单元403,还用于设置各监控数据对应的集群标识。

进一步地,对于所述装置,所述告警规则还包括告警收敛规则;所述确定单元403,具体用于确定所述告警信息为所述集群中非首次出现的同一告警信息,则根据所述告警收敛规则中的告警级别与告警时延的对照关系,在设定时延后将所述告警信息上报至所述告警平台;其中,告警级别的级别越低,相应的告警时延的时延越长。

本发明实施例提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)等。该计算设备可以包括中央处理器(centerprocessingunit,cpu)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。

存储器,可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储监控分布式存储系统的方法的程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行监控分布式存储系统的方法。

本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行监控分布式存储系统的方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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