一种集群的告警方法、装置、设置及存储介质与流程

专利2022-06-29  81


本发明实施例涉及集群的技术,尤其涉及一种集群的告警方法、装置、设置及存储介质。



背景技术:

容器集群是部署有多个容器的计算机集群。在容器集群中的容器或微服务都可以接受管理并有序接入外部环境,从而实现调度、负载均衡以及分配等任务。

一般的,可以使用容器集群管理工具,对容器集群进行监控。该容器集群管理工具可以是kubernetes,该kubernetes简称k8s,是一个开源的、用于管理云平台中多个主机上的容器化的应用。容器集群管理工具主要的监控对象为集群中的容器单元(pod)、宿主机、虚拟机以及集群的核心进程,监控的指标则可以包括中央处理单元(centralprocessingunit,cpu)、内存、磁盘输入输出(inputandoutput,io)、网络标识号、核心进程的性能指标等。

集群中的用户可以包括运维人员、开发人员等,专门负责对集群进行不同维度的维护操作,如开发人员对集群中的代码进行维护,运维人员对集群的配置进行维护。

但是,对集群进行维护操作的维度不同,所使用的监控指标不同,分析方式也不同。若所有用户使用同一收集的监控指标进行分析,容易造成对集群的过度监控,占用了过多的集群运算资源、存储资源等,却无法使得用户有针对性的对集群进行相应维度的维护操作,导致集群的维护具有高延迟、针对性差的问题。



技术实现要素:

本发明提供一种集群的告警方法、装置、设置及存储介质,以实现增加对集群中各资源的运行故障进行维护操作的针对性,减少发现和修复运行故障的时间,增加集群正常运行的持续时间,减少集群宕机的频率。

第一方面,本发明实施例提供了一种集群的告警方法,该方法包括:

检测在集群中部署的各资源的、针对运行故障的事件信息;

基于预置的分发策略,确定所述事件信息所关联的目标用户;

将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

进一步的,所述检测在集群中部署的各资源的、针对运行故障的事件信息,包括:

确定部署在所述集群中的资源;

以预置的检测方式检测所述资源所发生的运行故障的类型;

生成与所述类型的运行故障相匹配的事件信息。

进一步的,所述检测方式包括:监听方式;

所述以预置的检测方式检测所述资源所发生的运行故障的类型,包括:

在监听方式下,监听关于所述资源的运行状态发生变更的变更事件;

响应于所述变更事件,以获取所述资源在运行状态发生变更时的状态数据;

基于所述状态数据,确定所述资源所发生的运行故障的类型。

进一步的,所述资源包括容器单元,所述容器单元的运行状态包括:所述容器单元处于崩溃状态、进程退出状态、待定状态;

所述基于所述状态数据,确定所述资源所发生的运行故障的类型,包括:

从所述状态数据中确定所述资源所处的运行状态;

当所述容器单元处于崩溃状态、进程退出状态、待定状态中的一个时,确定所述容器单元所发生的故障类型为运行崩溃故障、进程退出故障、待定故障中相对应的一个。

进一步的,所述资源包括容器单元,所述容器单元的运行状态包括:创建状态;

所述基于所述状态数据,确定所述资源所发生的运行故障的类型,还包括:

从所述状态数据中确定所述容器单元处于所述创建状态的持续时间;

当所述持续时间超过阈值的时间值时,确定所述容器单元所发生的运行故障的类型为创建超时故障。

进一步的,所述检测方式包括:拨测方式;所述以预置的检测方式检测所述资源所发生的运行故障的类型,包括:

在拨测方式下,确定所述资源所在的网际互连协议地址;

检测与所述网际互连协议地址的通信状态;

依据所述通信状态确定所述资源所发生的运行故障的类型。

进一步的,所述资源包括运行有容器或容器单元的节点;

所述依据所述通信状态确定所述资源所发生的运行故障的类型,包括:

从所述通信状态中确定与所述节点建立连接的延迟时间;

当所述延迟时间超过预置的延迟范围时,确定所述节点所发生的运行故障类型为网络链路故障。

进一步的,所述基于预置的分发策略,确定所述事件信息所关联的目标用户,包括:

从所述事件信息中读取关键字信息;

确定所述关键字信息对应的运行故障的类型;

将从预置的分发策略中确定的、与所述类型的运行故障具有关联关系的用户,作为目标用户。

第二方面,本发明实施例还提供了一种集群的告警装置,该装置包括:

事件信息检测模块,用于检测在集群中部署的各资源的、针对运行故障的事件信息;

目标用户确定模块,用于基于预置的分发策略,确定所述事件信息所关联的目标用户;

分发模块,用于将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

第三方面,本发明实施例还提供了一种集群的告警设备,该设备包括:存储器以及一个或多个处理器;

所述存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的集群的告警方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面中任一所述的集群的告警方法。

本发明实施例通过检测在集群中部署的各资源的、针对运行故障的事件信息;基于预置的分发策略,确定所述事件信息所关联的目标用户;将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作,解决因以分析同一监控指标来确定集群的监控状态所带来的过度监控、缺乏针对性的问题,实现增加对集群中各资源的运行故障进行维护操作的针对性,减少发现和修复运行故障的时间,增加集群正常运行的持续时间,减少集群宕机的频率。

附图说明

图1a为本发明实施例一提供的一种集群的告警方法的流程图;

图1b为本发明实施例一提供的一种集群的告警系统的结构示意图;

图2为本发明实施例二提供的一种集群的告警方法的流程图;

图3为本发明实施例三提供的一种集群的告警装置的结构示意图;

图4为本发明实施例四提供的一种集群的告警设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1a为本发明实施例一提供的一种集群的告警方法的流程图,图1b为本发明实施例一提供的一种集群的告警系统的结构示意图。本实施例可适用于对集群进行监控和告警的情况,该方法可以由集群的告警设备来执行。该集群的告警设备可以是集群中的节点(nodes),该节点可以是物联网设备、电脑、服务器和移动终端等。本实施例以集群的告警设备为服务器进行详细说明,该服务器可以是独立服务器或集群服务器。

参照图1a,该方法具体包括如下步骤:

s110、检测在集群中部署的各资源的、针对运行故障的事件信息。

本实施例中,集群的资源包括硬件资源和软件资源,其中,硬件资源包括节点(nodes)、集群(cluster)和持续卷(persistentvolumes)等。

1、节点

一个节点在kubernetes里是最小的硬件计算单位。它表示集群中的单台计算机。在大多数生产系统中,节点可能是数据中心中的物理机,也可能是托管在云提供商(如googlecloudplatform)上的虚拟机。

2、集群

集群可以由节点组成。即可以将节点的资源(如中央处理单元资源、运行内存资源和存储资源等)集中在一起以形成一个更强大的集群。将程序部署到集群时,集群会智能地将程序分配成工作到各个节点。如果添加或删除任何节点,群集将根据需要将转移工作到其他节点。

3、持续卷

持续卷可以用于永久存储数据。虽然所有节点的资源(如中央处理单元资源、运行内存资源和存储资源等)都由集群有效地汇集和管理,但持久性文件存储却不是。相反,本地或云驱动器可以作为持久卷附加到集群。这可以被认为是将外部硬盘插入集群。持续卷提供可以挂载到群集的文件系统,而不与任何特定节点关联。

软件资源可以包括:容器(container)、容器单元(pods)等。

1、容器

容器是运行在主机中,并与主机共享资源的独立进程。在容器中,运行应用程序所需的必要组件都打包为单个映像,可重复使用。将程序部署在容器中,可以使得所有程序可以直接运行在物理主机的操作系统之上,可以直接读写磁盘,而且应用之间通过计算、存储和网络资源的命名空间进行隔离,为每个程序形成一个逻辑上独立的“容器操作系统”。

2、容器单元

容器单元(pods)代表集群上正在运行的一个进程,包含了一个或多个容器。进一步的,服务单元中的共享资源可以包括存储、网络等各个容器共享的资源。

示例性的,在kubernetes容器集群中,pod是kubernetes创建或部署的最小/最简单的基本单位,是kubernetes的基本调度单元,是kubernetes容器集群中的一个应用实例,总是部署在同一个节点node上。kubernetes中的每个pod都被分配一个唯一的(在容器集群内的)ip地址,这样就可以允许应用程序使用同一端口,而避免了发生冲突的问题。进一步的,pod还可以定义一个卷,例如本地磁盘目录或网络磁盘,并将其暴露在pod中的一个容器之中。

也就是说,集群(cluster)是由节点(nodes)组成,节点(nodes)中可以运行有至少一个容器单元(pods),每个容器单元(pods)中可以部署有至少一个容器(container)。

进一步的,可以对部署在集群中的硬件资源和软件资源进行检测,以确定该硬件资源和软件资源是否发生运行故障,并以事件信息的形式对运行故障进行表示。

本实施例中,针对不同的资源,具有不同的运行故障。如容器单元(pods)的运行故障可以是运行崩溃故障、进程退出故障、待定故障等。节点(nodes)的运行故障可以是节点网络故障、节点进程故障、节点本身系统故障等。进一步的,当集群中的资源发生运行故障时,可以认为集群发生运行故障。

本实施例中,可以使用集群的管理工具对集群进行检测,如获取集群的资源、资源的配置信息、资源的运行日志等。示例性的,当集群是使用kubernetes所构建时,可以使用kubernetes集群暴露的资源接口,对集群进行监控。

具体的,该资源接口可以用于获取集群的环境信息,该环境信息可以包括集群的资源、资源的配置信息、资源的运行日志、资源的运行状态等。如,可以完成如下的操作:

kubectlget-列出所有的资源

kubectldescribe-列出某个资源的详细信息

kubectllogs-输出pod中容器的日志

kubectlexec-在pod中的某个容器里面执行命令

本实施例中,可以根据检测到的集群的环境信息,确定各资源是否发生运行故障,并进一步的,生成针对该运行故障的事件信息。

示例性的,以资源为容器单元为例进行说明,所检测到的集群的环境信息中可以包括容器单元的运行状态,该容器单元的运行状态可以包括:容器单元处于崩溃状态、进程退出状态、待定状态、创建状态。进一步的,当容器单元处于崩溃状态、进程退出状态、待定状态中的一个时,确定容器单元所发生的故障类型为运行崩溃故障、进程退出故障、待定故障中相对应的一个。

本实施例中,所使用的环境信息,可以更好的确定的资源的运行故障,而不是在获取资源的诸如中央处理单元(centralprocessingunit,cpu)、内存、磁盘输入输出(inputandoutput,io)、网络标识号、核心进程的性能指标等监控指标,进一步分析得到资源的运行故障,减少了集群监控的技术门槛,降低了人工分析的成本。

s120、基于预置的分发策略,确定所述事件信息所关联的目标用户。

一般的,不同的运行故障,需要不同的目标用户进行维护。该目标用户可以包括运维人员、网络运维人员、开发人员等。

本实施例中,分发策略可以用于记录运行故障与目标用户的关联关系,与运行故障具有关联关系的目标用户,可以在资源发生运行故障时,即使获取告警,以便目标用户可以对该运行故障及时进行针对性的维护操作。

本实施例中,事件信息中可以是以关键字信息的形式对运行故障的类型进行记录。如,运行崩溃故障、进程退出故障、待定故障等运行故障可以对应于关键字信息“运行崩溃故障(如podcrash、crashloopbackoff等)”“进程退出故障(如podcompleted)”和“待定故障(如pending)”等。进一步的,可以从该事件信息中读取关键字信息;确定该关键字信息对应的运行故障的类型。

本实施例中,分发策略可以是以配置文件的形式存在,在使用时,对该配置文件进行读取,以确定运行故障与目标用户的关联关系,即确定针对该运行故障的事件信息与目标用户的关联关系。进一步的,可以将从预置的分发策略中确定的、与该类型的运行故障具有关联关系的用户,作为目标用户。

具体的,各类型的目标用户可以用关键字信息进行表示,如以“ops”开头的关键字信息,对应于运维人员,以“dev”开头的关键字信息,对应于开发人员。进一步的,运行故障与目标用户的关联关系,可以使用关键字信息的组合进行表示,如“pendingops”所表示的分发策略为将针对待定故障的事件信息分发至身份为运维人员的目标用户。

在一实施例中,在增加分发策略或者删除分发策略时,可以对记录分发策略的配置文件进行修改。

s130、将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

本实施例中,目标用户可以更有针对性地对集群中各资源的运行故障进行维护操作,减少发现和修复运行故障的时间,增加集群正常运行的持续时间,减少集群宕机的频率。

在一具体的实施例中,参照图1b所示的集群的告警系统,该系统包括:集群10、探测组件20、过滤组件30。该集群10可以由多个节点(如节点1、节点2、节点3和节点4等)组成,节点中可以运行有至少一个容器单元(pods),每个容器单元(pods)中可以部署有至少一个容器(container)。一般的,设置各节点之间、各容器之间均可以网络互通,进一步的,探测组件20和过滤组件30可以运行在任何节点、容器内,并通过网络访问其他节点或者容器。

在该系统应用上述的告警方法时,可以使用探测组件20执行步骤s110,使用过滤组件30执行步骤s120和s130,可以用于对集群10进行监控,并将监控得到的事件信息分发至目标用户(如目标用户1、目标用户2、目标用户3和目标用户4等)进行告警,且具体的实施细节可以与上述各步骤的说明一致。

本实施例的技术方案,通过检测在集群中部署的各资源的、针对运行故障的事件信息;基于预置的分发策略,确定所述事件信息所关联的目标用户;将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作,解决因以分析同一监控指标来确定集群的监控状态所带来的过度监控、缺乏针对性的问题,一方面,仅对集群中的监控指标进行收集,还需要用户对该监控指标进一步分析,才可以确定容器单元(pod)、节点(node)、集群等的健康状态,增加了维护集群的技术门槛和人工成本。另一方面,实现增加对集群中各资源的运行故障进行维护操作的针对性,减少发现和修复运行故障的时间,增加集群正常运行的持续时间,减少集群宕机的频率。

实施例二

图2为本发明实施例二提供的一种集群的告警方法的流程图。

本实施例在上述实施例的基础上进一步细化,具体的,至少包括:对运行故障的检测方式的说明。

参照图2,该方法具体包括如下的步骤:

s210、确定部署在所述集群中的资源。

在一实施例中,可以使用集群的管理工具对集群进行检测。示例性的,当集群是使用kubernetes所构建时,可以使用kubernetes集群暴露的资源接口,对集群进行监控。

具体的,该资源接口可以用于获取部署在集群中的程序的相关信息和该程序所运行的环境信息,该环境信息可以包括集群中各资源的运行状态。如,可以使用kubectlget的资源接口,列出所有部署在集群中的资源。进一步的,还可以使用kubectldescribe的资源接口,列出某个资源的详细信息。

在又一实施例中,可以获取集群对于资源的配置文件,从该配置文件中读取所有部署在集群中的资源。

s220、以预置的检测方式检测所述资源所发生的运行故障的类型。

本实施例中,检测方式可以包括:监听方式、拨测方式等。

一、监听方式

本实施例中,监听方式是通过与资源建立长连接,以持续监听资源的运行故障。具体的,在监听方式下,可以监听关于该资源的运行状态发生变更的变更事件;响应于该变更事件,以获取该资源在运行状态发生变更时的状态数据;基于该状态数据,确定该资源所发生的运行故障的类型。

在具体的实施例中,以集群是使用kubernetes所构建为例进行说明,可以使用kubernetes中的list-watch资源接口实现监听方式。

具体的,list-watch有两部分组成,分别是list和watch。

其中,list就是调用资源的listapi,以罗列资源,可以基于http短连接实现,也就是步骤s210也可以使用listapi实现。

其中,watch则是调用资源的watchapi监听资源的变更事件,基于http长连接实现。

在一实施例中,以资源为容器单元(pods)为例进行说明,该容器单元的运行状态可以包括:容器单元处于崩溃状态、进程退出状态、待定状态、创建状态等。当检测到容器单元从一运行状态转入另一运行状态时,可以确定容器单元的运行状态发生变更。资源在运行状态发生变更时的状态数据可以用于确定该容器单元当前所处的运行状态。

在具体的实施例中,以容器单元(pods)为例进行说明,对应的listapi和watchapi可以分别为:

listapi,返回值为podlist,即一组容器单元,如执行“get/api/v1/pods”的请求。

watchapi,往往带上watch=true,表示采用http长连接持续监听容器单元(pods)的相关事件,且每当有事件来临,返回一个监听事件(watchevent),如执行“get/api/v1/watch/pods”的请求。

进一步的,可以从该状态数据中确定该资源所处的运行状态;当该容器单元处于崩溃状态、进程退出状态、待定状态中的一个时,确定该容器单元所发生的故障类型为运行崩溃故障、进程退出故障、待定故障中相对应的一个。

1、运行崩溃故障或进程退出故障

当容器单元(pods)处于崩溃(crashing)状态或者进程退出(completed)状态时,可以确定该容器单元所发生的故障类型为运行崩溃故障或进程退出故障。可以生成包括“运行崩溃故障”、“进程退出故障”等关键字信息的事件信息。

进一步的,由于产生运行崩溃故障的原因在于,用户配置不当造成容器启动失败。因此,在分配策略中可以用于配置当出现运行崩溃故障或进程退出故障,可以获取容器单元(pods)的配置信息中带有的“creator”的字段,该“creator”的字段中的信息用于确定创建该容器单元(pods)的用户,为目标用户。

进一步的,可以在将事件信息直接发给该“creator”的字段对应的用户,也就是创建该容器单元(pods)的用户。用户收到针对运行崩溃故障或进程退出故障的事件信息后,可以及时执行查看并修改所创建的容器单元(pods)的配置信息的维护操作。

需要注意的是,这类告警无需发给开发、运维等人员,避免造成告警污染;

2、待定故障

当容器单元(pods)处于待定(pending)状态时,可以确定该容器单元所发生的故障类型为待定故障。可以生成包括“待定故障”或“pending”等关键字信息的事件信息。

进一步的,由于产生待定故障的原因一般在于,集群中的节点资源((如中央处理单元资源、运行内存资源和存储资源等))不足,新创建的容器单元(pods)无法分配到节点。

进一步的,可以为针对待定故障的事件信息配置告警级别为优先,在分配策略的配置文件中配置将针对待定故障的事件信息直接分发给身份为运维人员的目标用户。

运维人员针对待定故障的事件信息,可以对线上集群的节点进行横向或者纵向扩容,如删除容器单元(pods)、调整资源请求或者增加节点。

需要注意的是,除了可以使用该容器单元当前所处的运行状态来确定容器单元所发生的运行故障的类型之外,还可以使用从该状态数据中确定该容器单元处于当前的运行状态的运行数据,进行运行故障类型的确定。

在一具体的实施例中,以容器单元中的创建超时故障为例进行说明,可以从该状态数据中确定该容器单元处于该创建状态的持续时间;当该持续时间超过阈值的时间值时,确定该容器单元所发生的运行故障的类型为创建超时故障。

进一步的,容器单元产生创建超时故障的原因在于,挂载卷失败、或获取容器ip地址失败等集群代码及配置层面的问题。因此,在分配策略中可以用于配置当容器单元中发生创建超时故障时,可以将针对创建超时故障的事件信息及时分发至身份为研发人员和运维人员的目标用户。

进一步的,当容器单元中发生创建超时故障时,还可以将针对创建超时故障的事件信息写入持续卷中,用于定期做周报、月报等。同时,还可以是以定时任务的方式,每天固定发送针对容器单元发生创建超时故障的事件信息,给研发人员和运维人员,以用于分析集群的性能瓶颈。

二、拨测方式

本实施例中,在拨测方式下,可以确定该资源所在的网际互连协议地址;检测与该网际互连协议地址的通信状态;依据该通信状态确定该资源所发生的运行故障的类型。

具体的,拨测可以支持http/https,tcp,ping,udp,smtp,pop3,ftp等协议对集群中的资源进行探测。

在拨测方式下,还可以设置不同的拨测周期。拨测周期越短,相同时间内拨测的次数就越多,其数据精度就越高,同时也能提供更及时的告警。同时随着拨测的频率和拨测点(集群中的资源数量)增加,访问集群的频率也随之增加,集群的资源损耗也增加,可根据实际情况进行选择。

进一步的,还可以设置拨测分组。拨测点分组主要为了方便拨测点自由搭配组合,将一个或者多个拨测点设定为一个分组。在创建不同的拨测任务的情况下,可以快捷地选取同样的一批拨测点。

资源所发生的运行故障的类型常见的有dns解析失败、连接超时、响应超时、连接失败、连接被断开、ping超时等。

在一实施例中,可以从该通信状态中确定与该节点建立连接的延迟时间;当该延迟时间超过预置的延迟范围时,确定该节点所发生的运行故障类型为网络链路故障。网络链路故障一般是丢包抖动等造成的。可以将针对网络链路故障的事件信息分发至身份为网络运维人员的目标用户。

s230、生成与所述类型的运行故障相匹配的事件信息。

本实施例中,事件信息中可以是以关键字信息的形式对运行故障的类型进行记录。如,运行崩溃故障、进程退出故障、待定故障等运行故障可以对应于关键字信息“运行崩溃故障(如podcrash、crashloopbackoff等)”“进程退出故障(如podcompleted)”和“待定故障(如pending)”等。进一步的,可以从该事件信息中读取关键字信息;确定该关键字信息对应的运行故障的类型。

s240、基于预置的分发策略,确定所述事件信息所关联的目标用户。

s250、将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

本实施例的技术方案,通过确定部署在所述集群中的资源;以预置的检测方式检测所述资源所发生的运行故障的类型,该检测方式可以包括监听方式和拨测方式等;生成与所述类型的运行故障相匹配的事件信息;基于预置的分发策略,确定所述事件信息所关联的目标用户;将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作,解决因以分析同一监控指标来确定集群的监控状态所带来的过度监控、缺乏针对性的问题,实现增加对集群中各资源的运行故障进行维护操作的针对性,减少发现和修复运行故障的时间,增加集群正常运行的持续时间,减少集群宕机的频率。

实施例三

图3为本发明实施例三提供的一种集群的告警装置的结构示意图。本实施例可适用于对集群进行监控和告警的情况,该装置可以集成于集群的告警设备中。该集群的告警设备可以是集群中的节点(nodes),该节点可以是物联网设备、电脑、服务器和移动终端等。本实施例以集群的告警设备为服务器进行详细说明,该服务器可以是独立服务器或集群服务器。

参照图3,该装置具体包括如下结构:事件信息检测模块310、目标用户确定模块320和分发模块330。

事件信息检测模块310,用于检测在集群中部署的各资源的、针对运行故障的事件信息;

目标用户确定模块320,用于基于预置的分发策略,确定所述事件信息所关联的目标用户;

分发模块330,用于将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

本实施例的技术方案,通过检测在集群中部署的各资源的、针对运行故障的事件信息;基于预置的分发策略,确定所述事件信息所关联的目标用户;将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作,解决因以分析同一监控指标来确定集群的监控状态所带来的过度监控、缺乏针对性的问题,实现增加对集群中各资源的运行故障进行维护操作的针对性,减少发现和修复运行故障的时间,增加集群正常运行的持续时间,减少集群宕机的频率。

在上述技术方案的基础上,所述事件信息检测模块310,包括:

资源确定单元,用于确定部署在所述集群中的资源。

故障类型确定单元,用于以预置的检测方式检测所述资源所发生的运行故障的类型。

事件信息生成单元,用于生成与所述类型的运行故障相匹配的事件信息。

在上述技术方案的基础上,所述检测方式包括:监听方式;故障类型确定单元,包括:

变更事件监听子单元,用于在监听方式下,监听关于所述资源的运行状态发生变更的变更事件。

变更事件响应子单元,用于响应于所述变更事件,以获取所述资源在运行状态发生变更时的状态数据。

故障类型确定子单元,用于基于所述状态数据,确定所述资源所发生的运行故障的类型。

在上述技术方案的基础上,所述资源包括容器单元,所述容器单元的运行状态包括:所述容器单元处于崩溃状态、进程退出状态、待定状态;故障类型确定子单元,具体用于从所述状态数据中确定所述资源所处的运行状态;当所述容器单元处于崩溃状态、进程退出状态、待定状态中的一个时,确定所述容器单元所发生的故障类型为运行崩溃故障、进程退出故障、待定故障中相对应的一个。

在上述技术方案的基础上,所述资源包括容器单元,所述容器单元的运行状态包括:创建状态;故障类型确定子单元,还具体用于:从所述状态数据中确定所述容器单元处于所述创建状态的持续时间;当所述持续时间超过阈值的时间值时,确定所述容器单元所发生的运行故障的类型为创建超时故障。

在上述技术方案的基础上,所述检测方式包括:拨测方式;故障类型确定单元,包括:

地址确定子单元,用于在拨测方式下,确定所述资源所在的网际互连协议地址。

通信状态检测子单元,用于检测与所述网际互连协议地址的通信状态。

运行故障确定子单元,用于依据所述通信状态确定所述资源所发生的运行故障的类型。

在上述技术方案的基础上,所述资源包括运行有容器或容器单元的节点;

所述运行故障确定子单元,具体用于:从所述通信状态中确定与所述节点建立连接的延迟时间;当所述延迟时间超过预置的延迟范围时,确定所述节点所发生的运行故障类型为网络链路故障。

在上述技术方案的基础上,所述目标用户确定模块320,包括:

关键字读取单元,用于从所述事件信息中读取关键字信息;

运行故障确定单元,用于确定所述关键字信息对应的运行故障的类型;

目标用户确定单元,用于将从预置的分发策略中确定的、与所述类型的运行故障具有关联关系的用户,作为目标用户。

上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4为本发明实施例四提供的一种集群的告警设备的结构示意图。如图4所示,该集群的告警设备包括:处理器40、存储器41、输入装置42以及输出装置43。该集群的告警设备中处理器40的数量可以是一个或者多个,图4中以一个处理器40为例。该集群的告警设备中存储器41的数量可以是一个或者多个,图4中以一个存储器41为例。该集群的告警设备的处理器40、存储器41、输入装置42以及输出装置43可以通过总线或者其他方式连接,图4中以通过总线连接为例。该集群的告警设备可以是电脑和服务器等。本实施例以集群的告警设备为服务器进行详细说明,该服务器可以是独立服务器或集群服务器。

存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的集群的告警方法对应的程序指令/模块(例如,集群的告警装置中的事件信息检测模块310、目标用户确定模块320和分发模块330)。存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置42可用于接收输入的数字或者字符信息,以及产生与集群的告警设备的观众用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置43可以包括扬声器等音频设备。需要说明的是,输入装置42和输出装置43的具体组成可以根据实际情况设定。

处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的集群的告警方法。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种集群的告警方法,包括:

检测在集群中部署的各资源的、针对运行故障的事件信息;

基于预置的分发策略,确定所述事件信息所关联的目标用户;

将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的集群的告警方法操作,还可以执行本发明任意实施例所提供的集群的告警方法中的相关操作,且具备相应的功能和有益效果。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的集群的告警方法。

值得注意的是,上述集群的告警装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“在一实施例中”、“在又一实施例中”、“示例性的”或“在具体的实施例中”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。


技术特征:

1.一种集群的告警方法,其特征在于,包括:

检测在集群中部署的各资源的、针对运行故障的事件信息;

基于预置的分发策略,确定所述事件信息所关联的目标用户;

将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

2.根据权利要求1所述的方法,其特征在于,所述检测在集群中部署的各资源的、针对运行故障的事件信息,包括:

确定部署在所述集群中的资源;

以预置的检测方式检测所述资源所发生的运行故障的类型;

生成与所述类型的运行故障相匹配的事件信息。

3.根据权利要求2所述的方法,其特征在于,所述检测方式包括:监听方式;

所述以预置的检测方式检测所述资源所发生的运行故障的类型,包括:

在监听方式下,监听关于所述资源的运行状态发生变更的变更事件;

响应于所述变更事件,以获取所述资源在运行状态发生变更时的状态数据;

基于所述状态数据,确定所述资源所发生的运行故障的类型。

4.根据权利要求3所述的方法,其特征在于,所述资源包括容器单元,所述容器单元的运行状态包括:所述容器单元处于崩溃状态、进程退出状态、待定状态;

所述基于所述状态数据,确定所述资源所发生的运行故障的类型,包括:

从所述状态数据中确定所述资源所处的运行状态;

当所述容器单元处于崩溃状态、进程退出状态、待定状态中的一个时,确定所述容器单元所发生的故障类型为运行崩溃故障、进程退出故障、待定故障中相对应的一个。

5.根据权利要求4所述的方法,其特征在于,所述资源包括容器单元,所述容器单元的运行状态包括:创建状态;

所述基于所述状态数据,确定所述资源所发生的运行故障的类型,还包括:

从所述状态数据中确定所述容器单元处于所述创建状态的持续时间;

当所述持续时间超过阈值的时间值时,确定所述容器单元所发生的运行故障的类型为创建超时故障。

6.根据权利要求2所述的方法,其特征在于,所述检测方式包括:拨测方式;

所述以预置的检测方式检测所述资源所发生的运行故障的类型,包括:

在拨测方式下,确定所述资源所在的网际互连协议地址;

检测与所述网际互连协议地址的通信状态;

依据所述通信状态确定所述资源所发生的运行故障的类型。

7.根据权利要求6所述的方法,其特征在于,所述资源包括运行有容器或容器单元的节点;

所述依据所述通信状态确定所述资源所发生的运行故障的类型,包括:

从所述通信状态中确定与所述节点建立连接的延迟时间;

当所述延迟时间超过预置的延迟范围时,确定所述节点所发生的运行故障类型为网络链路故障。

8.根据权利要求1-7任一所述的方法,其特征在于,所述基于预置的分发策略,确定所述事件信息所关联的目标用户,包括:

从所述事件信息中读取关键字信息;

确定所述关键字信息对应的运行故障的类型;

将从预置的分发策略中确定的、与所述类型的运行故障具有关联关系的用户,作为目标用户。

9.一种集群的告警装置,其特征在于,包括:

事件信息检测模块,用于检测在集群中部署的各资源的、针对运行故障的事件信息;

目标用户确定模块,用于基于预置的分发策略,确定所述事件信息所关联的目标用户;

分发模块,用于将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作。

10.一种集群的告警设备,其特征在于,包括:存储器以及一个或多个处理器;

所述存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的集群的告警方法。

11.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-8中任一所述的集群的告警方法。

技术总结
本发明实施例公开了一种集群的告警方法、装置、设置及存储介质。该方法通过检测在集群中部署的各资源的、针对运行故障的事件信息;基于预置的分发策略,确定所述事件信息所关联的目标用户;将所述事件信息分发至所述目标用户,以对所述资源进行针对所述运行故障的维护操作,解决因以分析同一监控指标来确定集群的监控状态所带来的过度监控、缺乏针对性的问题,实现增加对集群中各资源的运行故障进行维护操作的针对性,减少发现和修复运行故障的时间,增加集群正常运行的持续时间,减少集群宕机的频率。

技术研发人员:王玉君;毛茂德;王华夏;王兴刚
受保护的技术使用者:广州虎牙科技有限公司
技术研发日:2020.01.14
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26963.html

最新回复(0)