一种基于应用容器部署的集群监控的方法及系统的制作方法

文档序号:10660673阅读:315来源:国知局
一种基于应用容器部署的集群监控的方法及系统的制作方法
【专利摘要】一种基于应用容器部署的集群监控的方法及系统,方法应用于应用管理系统中的宿主机,宿主机包括监控模块,方法包括:宿主机通过监控模块获取监控对象的监控状态,监控对象包括宿主机上运行的目标应用容器、宿主机上运行的目标系统服务组件、宿主机上运行的目标应用、以及宿主机中的至少一项;宿主机中的监控模块根据预设健康分析规则对监控状态进行健康分析,得到监控对象的健康参数;宿主机将监控状态和监控对象的健康参数同步至主控节点,以使主控节点在确定监控对象中的目标监控对象的健康参数低于第一阈值时,生成目标监控对象对应的警报信息,并将警报信息发送至云控制平台。
【专利说明】
一种基于应用容器部署的集群监控的方法及系统
技术领域
[0001] 本发明涉及云技术领域,尤其涉及一种基于应用容器部署的集群监控的方法及系 统。
【背景技术】
[0002] 基于应用容器部署应用时,每一个应用可能对应数量庞大的应用容器,且在容器 调度程序的影响下,安装应用容器的宿主机则是通过调度程序随机选择,即每个应用容器 所在的位置及网络地址为随机生成。故在对集群中部署的应用容器进行监控时,需要先对 各个应用容器的监控信息进行收集和汇总,然后对监控信息进行分析。特别是在集群内部 署了数量庞大的应用容器时,整个过程较为繁琐,给作为调度集群资源的主控宿主机或服 务器带来更大的工作量,导致主控宿主机或服务器工作负荷较大,无法在不改变现有系统 架构和增加设备成本的前提下,达到负载均衡的目的。
[0003] 为实现负载均衡,在应用容器部署完成后,需要额外在每台宿主机上安装监控代 理端,在开源监控代码基础上进行服务配置和服务调试,然后由监控代理端收集监控信息, 并定时向主控节点发送宿主机的监控信息,使得主控节点可以对监控信息进行汇总、分析、 判断是否需要告警等操作。但目前的监控代理端主要是对宿主机进行监控,而没有进行更 细粒度的监控,从而无法针对性的定位每个监控对象的监控状态,不便于对监控异常的监 控对象的维护。其次,后期的安装监控代理端增加应用部署人员的工作量。

【发明内容】

[0004] 本发明提供了一种基于应用容器部署的集群监控的方法及系统,能够解决现有技 术中无法进行细粒度的集群监控的问题。
[0005] 第一方面提供一种基于应用容器部署的集群监控的方法,方法应用于应用管理系 统中的宿主机,所述应用管理系统包括云控制平台、主控节点和集群,所述集群包括至少一 台宿主机,所述宿主机包括监控模块,所述方法包括:
[0006] 所述宿主机通过所述监控模块获取监控对象的监控状态,所述监控对象包括所述 宿主机上运行的目标应用容器、所述宿主机上运行的目标系统服务组件、所述宿主机上运 行的目标应用、以及所述宿主机中的至少一项;
[0007] 所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行健康 分析,得到所述监控对象的健康参数;
[0008] 所述宿主机将所述监控状态和所述监控对象的健康参数同步至所述主控节点,以 使所述主控节点在确定所述监控对象中的目标监控对象的健康参数低于第一阈值时,生成 所述目标监控对象对应的警报信息,并将所述警报信息发送至所述云控制平台。
[0009] 在一些可能的设计中,所述宿主机上还包括监控对象识别模块,所述宿主机获取 监控对象的监控状态之前,所述方法还包括:
[0010] 所述宿主机通过所述监控对象识别模块获取目标应用容器的属性信息、目标系统 服务组件的属性信息、目标应用的属性信息以及宿主机的属性信息中的至少一种属性信 息。
[0011] 在一些可能的设计中,所述宿主机通过所述监控模块获取监控对象的监控状态, 至少包括以下项之一:
[0012] 所述宿主机根据所述目标应用容器的属性信息获取宿主机的监控状态;
[0013] 或,
[0014] 所述宿主机根据所述目标系统服务组件的属性信息获取目标应用容器的监控状 态;
[0015] 或,
[0016] 所述宿主机根据所述目标应用的属性信息获取目标应用容器的监控状态;
[0017] 或,
[0018] 所述宿主机根据所述宿主机的属性信息获取目标系统服务组件的监控状态。
[0019] 在一些可能的设计中,所述宿主机中的所述监控模块根据预设健康分析规则对所 述监控状态进行健康分析,得到所述监控对象的健康参数至少包括以下项之一:
[0020] 所述宿主机对在第一时长内,监控对象的处理器使用率高于第二阈值且小于第三 阈值的监控对象的健康参数减少施;
[0021] 或,所述宿主机对在所述第一时长内,监控对象的处理器使用率高于所述第三阈 值的监控对象的健康参数减少M2;
[0022] 或,所述宿主机对在第二时长内,监控对象的内存使用率高于第四阈值且小于第 五阈值的监控对象的健康参数减少M3;
[0023] 或,所述宿主机对在所述第二时长内,监控对象的内存使用率高于所述第五阈值 的监控对象的健康参数减少M4 ;
[0024]或,所述宿主机对在第三时长内,监控对象的硬盘使用率高于第六阈值且小于第 七阈值的监控对象的健康参数减少M5;
[0025] 或,所述宿主机对在所述第三时长内,监控对象的硬盘使用率高于所述第七阈值 的监控对象的健康参数减少M6;
[0026] 或,所述宿主机对在第四时长内,监控对象的网络带宽占比高于第八阈值且小于 第九阈值的监控对象的健康参数减少M7 ;
[0027] 或,所述宿主机对在所述第四时长内,监控对象的网络带宽占比高于所述第九阈 值的监控对象的健康参数减少Ms;
[0028] 或,所述宿主机对运行异常的监控对象的健康参数设为0;
[0029] ]\11、]?2、]?3、]?4、]?5、]?6、]?7、]?8、]?9均为正整数。
[0030] 第二方面提供一种基于应用容器部署的集群监控的方法,所述方法应用于应用管 理系统中的主控节点,所述应用管理系统包括云控制平台、所述主控节点和集群,所述集群 包括至少一台宿主机,所述宿主机包括监控模块,所述方法包括:
[0031] 所述主控节点从所述宿主机获取监控对象的监控状态、以及所述监控对象的健康 参数,所述监控对象包括所述宿主机上运行的目标应用容器、所述宿主机上运行的目标系 统服务组件、所述宿主机上运行的目标应用、以及所述宿主机中的至少一项;所述健康参数 由所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行健康分析得 到;
[0032] 所述主控节点在确定所述监控对象中的目标监控对象的健康参数低于第一阈值 时,生成所述目标监控对象对应的警报信息,并将所述警报信息发送至所述云控制平台。
[0033] 在一些可能的设计中,所述主控节点在确定所述监控对象中的目标监控对象的健 康参数低于第一阈值时,生成所述目标监控对象对应的警报信息,包括:
[0034] 所述主控节点根据所述监控对象的健康参数的大小确定所述目标监控对象的告 警等级,并根据所述告警等级为所述告警信息进行等级标识,在预设时长内,若所述监控对 象的平均健康参数低于所述第一阈值,则所述主控节点生成对应所述目标监控对象的警报 信息。
[0035] 在一些可能的设计中,若告警等级为第一等级,则所述警报信息为用于指示对所 述目标监控对象进行预警的信息;
[0036] 若告警等级为第二等级,则所述警报信息为用于指示对所述目标监控对象进行告 警的信息;
[0037] 若告警等级为第三等级,则所述警报信息为用于指示对所述目标监控对象进行报 警的信息。
[0038] 在一些可能的设计中,所述方法还包括:
[0039] 所述主控节点将所述宿主机的监控状态和所述监控对象的健康参数通过查询端 口发送至所述云控制平台,以使所述云控制平台根据所述监控对象的健康参数的大小,图 形化展示宿主机的监控状态和所述监控对象的健康参数。
[0040] 本发明第三方面提供一种基于应用容器部署的集群监控系统,具有实现上述基于 应用容器部署的集群监控的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执 行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以 是软件和/或硬件。
[0041] -种可能的设计中,所述基于应用容器部署的集群监控系统包括集群和主控节 点,所述集群包括至少一台宿主机,所述宿主机包括监控模块;
[0042] 所述宿主机通过所述监控模块获取监控对象的监控状态,所述监控对象包括所述 宿主机上运行的目标应用容器、所述宿主机上运行的目标系统服务组件、所述宿主机上运 行的目标应用、以及所述宿主机中的至少一项;
[0043] 所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行健康 分析,得到所述监控对象的健康参数;
[0044] 所述宿主机将所述监控状态和所述监控对象的健康参数同步至所述主控节点;
[0045] 所述主控节点从所述宿主机获取监控对象的监控状态、以及所述监控对象的健康 参数,在确定所述监控对象中的目标监控对象的健康参数低于第一阈值时,生成所述目标 监控对象对应的警报信息,并将所述警报信息发送至所述云控制平台。
[0046] 在一些可能的设计中,所述宿主机上还包括监控对象识别模块,所述宿主机获取 监控对象的监控状态之前,所述宿主机通过所述监控对象识别模块获取目标应用容器的属 性信息、目标系统服务组件的属性信息、目标应用的属性信息以及宿主机的属性信息中的 至少一种属性信息。
[0047] 在一些可能的设计中,所述宿主机通过所述监控模块获取监控对象的监控状态, 至少包括以下项之一:
[0048] 所述宿主机根据所述目标应用容器的属性信息获取宿主机的监控状态;
[0049] 或,
[0050] 所述宿主机根据所述目标系统服务组件的属性信息获取目标应用容器的监控状 态;
[0051 ]或,
[0052] 所述宿主机根据所述目标应用的属性信息获取目标应用容器的监控状态;
[0053] 或,
[0054]所述宿主机根据所述宿主机的属性信息获取目标系统服务组件的监控状态。
[0055]在一些可能的设计中,所述宿主机中的所述监控模块根据预设健康分析规则对所 述监控状态进行健康分析,得到所述监控对象的健康参数至少包括以下项之一:
[0056]所述宿主机对在第一时长内,监控对象的处理器使用率高于第二阈值且小于第三 阈值的监控对象的健康参数减少施;
[0057]或,所述宿主机对在所述第一时长内,监控对象的处理器使用率高于所述第三阈 值的监控对象的健康参数减少M2;
[0058] 或,所述宿主机对在第二时长内,监控对象的内存使用率高于第四阈值且小于第 五阈值的监控对象的健康参数减少M3;
[0059] 或,所述宿主机对在所述第二时长内,监控对象的内存使用率高于所述第五阈值 的监控对象的健康参数减少M4 ;
[0060] 或,所述宿主机对在第三时长内,监控对象的硬盘使用率高于第六阈值且小于第 七阈值的监控对象的健康参数减少M5;
[0061] 或,所述宿主机对在所述第三时长内,监控对象的硬盘使用率高于所述第七阈值 的监控对象的健康参数减少M6;
[0062] 或,所述宿主机对在第四时长内,监控对象的网络带宽占比高于第八阈值且小于 第九阈值的监控对象的健康参数减少M7 ;
[0063] 或,所述宿主机对在所述第四时长内,监控对象的网络带宽占比高于所述第九阈 值的监控对象的健康参数减少Ms;
[0064] 或,所述宿主机对运行异常的监控对象的健康参数设为0;
[0065] ]\11、]?2、]?3、]?4、]?5、]?6、]?7、]?8、]?9均为正整数。
[0066] 在一些可能的设计中,所述主控节点具体用于:
[0067] 根据所述监控对象的健康参数的大小确定所述目标监控对象的告警等级,并根据 所述告警等级为所述告警信息进行等级标识,在预设时长内,若所述监控对象的平均健康 参数低于所述第一阈值,则生成对应所述目标监控对象的警报信息。
[0068] 相较于现有技术,本发明提供的方案中,通过基于应用容器部署的监控模块获取 目标应用容器、目标系统服务组件、目标应用以及宿主机中的至少一种监控对象的监控状 态,实现应用容器级别、应用级别以及宿主机级别的监控,提供更细粒度的监控状态。并且 根据预设健康分析规则对所述监控状态进行健康分析,能够为主控节点提供更详细和更准 确的监控状态和健康参数。
【附图说明】
[0069] 图1为本实施例中基于应用容器部署的集群监控的方法的一种流程示意图;
[0070] 图2为本实施例中基于应用容器部署的集群监控的方法的另一种流程示意图;
[0071] 图3为本实施例中基于应用容器部署的集群监控的方法的另一种流程示意图;
[0072] 图4为本实施例中监控状态和健康参数的一种展示示意图;
[0073] 图5为本实施例中监控状态和健康参数的另一种展示示意图;
[0074] 图6为本实施例中基于应用容器部署的集群监控的方法的一种流程示意图;
[0075] 图7为本实施例中基于应用容器部署的集群监控系统的一种流程示意图。
【具体实施方式】
[0076]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于 本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0077] 本发明的说明书和权利要求书及上述附图中的术语"第一"、"第二"等是用于区别 类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情 况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实 施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于覆盖不排他的包含,例如,包 含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或 模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或 模块,本文中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另 外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或 不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些 接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。 并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以 不是物理模块,或者可以分不到多个电路模块中,可以根据实际的需要选择其中的部分或 全部模块来实现本发明实施例方案的目的。
[0078] 本发明实施例提供了一种基于应用容器部署的集群监控的方法及系统,用于解决 现有技术中无法进行细粒度的集群监控的问题。以下进行详细说明。
[0079]本文中的应用管理系统包括:云控制平台、至少一个主控节点、至少一个集群,其 中,每个集群包含至少一台宿主机。
[0080]主控节点用于实现保存各个监控模块发来的监控状态和健康参数,为云控制平台 提供监控状态查询端口、为异常监控状态实现报警消息推送,主要包含以下功能节点:
[0081 ] (1)监控状态查询端口用于接收云控制平台的请求,从时序数据库中读取监控状 态,并将结果返回给云控制平台。
[0082] (2)监控报警模块以观察者模式从时序数据库中观察健康分值的变化情况,当宿 主机、系统服务组件、应用或应用容器的健康参数低于指定阈值时(各层次的阈值由云控制 平台预先设置,并保存在主控节点的配置文件中),则向消息队列发送报警消息。
[0083] (3)消息推送模块用于实时观察消息队列中的消息,当观察到消息队列中有报警 消息时,则从云控制平台的公共业务信息查询接口获取宿主机、系统服务组件、应用或应用 容器所属的用户信息、并将消息发送给该用户。
[0084] 其中,主控节点、至少一台宿主机和云控制平台可以组成一个基于应用容器部署 的集群监控系统,并且,安装于每台宿主机上的监控模块组成整个容器管理后台。
[0085]为解决上述技术问题,本发明实施例主要提供以下技术方案:
[0086] 1、在进行容器管理平台布局时所述宿主机预装宿主机守护程序,宿主机守护程序 包括监控模块,即将监控模块与应用容器集成发布,且在主控节点上安装监控主控服务,用 于对监控模块获取的各监控对象的监控状态以及监控对象的健康参数进行汇总,还可以根 据监控对象的健康参数判断是否需要对监控对象进行告警等。
[0087] 2、宿主机运行监控模块,对宿主机、宿主机上运行的应用容器、系统服务组件等进 行监控。
[0088] 通过以上技术方案,可以实现细粒度的集群监控,并且将集群监控、应用容器发布 集于一体,使得后期无需分别在每台宿主机上安装监控模块,有效减少应用部署人员的工 作量。
[0089] 请参照图1、图2及图3,以下对本发明提供一种基于应用容器部署的集群监控的方 法进行举例说明,本方法应用于应用管理系统中的宿主机,所述应用管理系统包括云控制 平台、主控节点和集群,所述集群包括至少一台宿主机,所述宿主机包括监控模块,所述监 控模块为在所述宿主机在出厂时预装的宿主机守护程序中的模块,故基于预装的宿主机守 护程序,本身请无需另外再安装第三方监控代理端,操作维护人员可以直接在云控制平台 上进行相关监控配置,即可实现下述实施例中描述的监控,本发明实施例包括:
[0090] 101、所述宿主机通过所述监控模块获取监控对象的监控状态。
[0091] 其中,监控模块上配置了采集参数,如服务名、健康检查路径、服务端口等。
[0092] 所述监控对象包括所述宿主机上运行的目标应用容器、所述宿主机上运行的目标 系统服务组件、所述宿主机上运行的目标应用、以及所述宿主机中的至少一项。即通过用户 在云控制平台预先配置的监控参数,并由主控节点推送至各宿主机,使得监控模块使用这 些监控参数至少对应用容器、应用、系统服务组件和宿主机进行监控状态的采集与分析。 [00 93]其中,系统服务组件包括高速缓存、接入服务(英文全称:Access Server)、Nginx 服务器、私有仓库(英文全称:Registry)等,具体包含内容不作限定。
[0094] 监控对象的监控状态如下所述:
[0095] a、对于宿主机,监控状态包括处理器(英文全称:Central Processing Unit,英文 简称:CPU)使用率、内存使用率、硬盘利用率、网络输入输出、磁盘空间的配额、网络带宽占 比、宿主机状态以及健康参数等。
[0096] b、对于应用容器,监控状态包括应用容器CPU使用率、容器内存利用率、容器磁盘 空间利用率、容器网络带宽占比、应用容器的健康参数等。
[0097] c、对于系统服务组件,监控状态包括系统服务组件的运行状态,系统服务组件所 属宿主机的CPU使用率、系统服务组件所属宿主机的内存利用率、系统服务组件所属宿主机 的磁盘空间利用率、系统服务组件所属宿主机的网络带宽占比、以及系统服务组件的健康 参数等。
[0098] d、对于应用,监控状态包括应用CPU使用率、应用内存利用率、应用磁盘空间利用 率、应用网络带宽占比、应用的健康参数等,应用的监控状态由相应的应用容器汇总,并进 行均值计算得到。
[0099] 对上述各监控对象监控时,各监控对象的监控参数的标准值根据硬件能力或实际 需求等条件设定,具体取值本文不作限定。
[0100] 可选的,所述宿主机上还包括监控对象识别模块,所述宿主机获取监控对象的监 控状态之前,所述宿主机通过所述监控对象识别模块获取各监控对象的属性信息,例如获 取目标应用容器的属性信息、目标系统服务组件的属性信息、以及宿主机的属性信息中的 至少一种属性信息,从而宿主机可以根据各监控对象的属性信息定位到对应的监控对象, 例如根据目标应用容器的属性信息定位到目标应用容器、根据目标系统服务组件的属性信 息定位到目标系统服务组件、以及根据目标应用的属性信息定位到目标应用等。其中,各监 控对象的属性信息可以包括监控对象的标识信息、监控对象的监控参数项等信息,具体本 文不作限定,只要能够达到实现定位到监控对象,实现细粒度的监控即可。
[0101] 进一步,所述宿主机通过所述监控模块获取监控对象的监控状态,至少包括以下 项之一:
[0102] 所述宿主机根据所述目标应用容器的属性信息获取宿主机的监控状态;
[0103] 或,
[0104] 所述宿主机根据所述目标系统服务组件的属性信息获取目标应用容器的监控状 态;
[0105] 或,
[0106] 所述宿主机根据所述目标应用的属性信息获取目标应用容器的监控状态;
[0107] 或,
[0108] 所述宿主机根据所述宿主机的属性信息获取目标系统服务组件的监控状态。
[0109] 102、所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行 健康分析,得到所述监控对象的健康参数。
[0110] 其中,预设健康分析规则由用户在云控制平台配置,保存至主控节点的配置文件 中,使得宿主机中的监控模块使用预设健康分析规则对获取到的监控状态进行分析和计 算。
[0111] 所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行健康 分析,得到所述监控对象的健康参数至少包括以下项之一:
[0112] 所述宿主机对在第一时长内,监控对象的处理器使用率高于第二阈值且小于第三 阈值的监控对象的健康参数减少施;
[0113]或,所述宿主机对在所述第一时长内,监控对象的处理器使用率高于所述第三阈 值的监控对象的健康参数减少M2;
[0114] 或,所述宿主机对在第二时长内,监控对象的内存使用率高于第四阈值且小于第 五阈值的监控对象的健康参数减少M3;
[0115] 或,所述宿主机对在所述第二时长内,监控对象的内存使用率高于所述第五阈值 的监控对象的健康参数减少M4 ;
[0116] 或,所述宿主机对在第三时长内,监控对象的硬盘使用率高于第六阈值且小于第 七阈值的监控对象的健康参数减少M5;
[0117] 或,所述宿主机对在所述第三时长内,监控对象的硬盘使用率高于所述第七阈值 的监控对象的健康参数减少M6;
[0118] 或,所述宿主机对在第四时长内,监控对象的网络带宽占比高于第八阈值且小于 第九阈值的监控对象的健康参数减少M7 ;
[0119] 或,所述宿主机对在所述第四时长内,监控对象的网络带宽占比高于所述第九阈 值的监控对象的健康参数减少Ms;
[0120] 或,所述宿主机对运行异常的监控对象的健康参数设为0;
[0121] 其中,]\11、]?2、]?3、]?4、]?5、]?6、]?7、]?8、]?9均为正整数。
[0122] 举例来说,监控对象为宿主机时,对宿主机的健康参数进行分析和计算的规则如 下表1所示:
[0125] 表1
[0126] 举例来说,监控对象为应用容器时,对应用容器的健康参数进行分析和计算的规 则如下表2所示:
[0129] 表2
[0130] 对系统服务组件的健康参数进行分析和计算的规则同理,不在赘述。
[0131] 103、所述宿主机将所述监控状态和所述监控对象的健康参数同步至所述主控节 点。
[0132] 在完成监控状态的分析和计算后,宿主机会将获取到各监控对象的监控状态,以 及监控对象对应的健康参数发送给主控节点,使得主控节点可以对监控对象的监控状态和 监控对象的健康参数进行汇总,并将汇总后的信息保存到时序数据库中。
[0133] 可以理解的是,监控对象的监控状态。以及监控对象的健康参数会存在波动,因此 宿主机会将实时动态监控得到的监控状态以及实时动态分析和计算得到的健康参数同步 给主控节点,使得主控节点可以动态更新监控对象的监控状态、以及监控对象的健康参数。
[0134] 104、所述主控节点在确定所述监控对象中的目标监控对象的健康参数低于第一 阈值时,生成所述目标监控对象对应的警报信息,并将所述警报信息发送至所述云控制平 台。
[0135] 其中,警报信息包含宿主机所属集群名称、宿主机名称或网络地址、服务名、应用 名、监控状态、健康参数等。
[0136] 具体来说,主控节点在从各宿主机获取到各监控对象的监控状态、以及监控对象 的健康参数后,会将各监控对象的监控状态、以及监控对象的健康参数保存到时序数据库 中,在通过查询端口接收到云控制平台的查询请求后,则从时许数据库中读取相应的各监 控对象的监控状态、以及监控对象的健康参数,然后将汇总的监控状态和健康参数通过查 询端口返回给云控制平台。
[0137] 主控节点中的监控报警模块则是以观察者模式,从时序数据库中观察各监控对象 的健康参数的变化情况,当宿主机、系统服务组件、应用或应用容器的健康参数低于指定阈 值时(警报阈值由云控制平台进行设置,并保存到主控节点的配置文件中),并向缓存消息 的消息队列发送警报信息。可以理解的是,监控对象的每种健康参数设定的警报阈值可以 相同,可以不同,具体根据实际应用需求或硬件能力等而定,本文不作限定。然后主控节点 中的消息推送模块根据消息的宿主机或应用服务名,查询该宿主机或应用所属的用户,并 查出其手机或微信号等绑定信息,并根据系统配置规则,将警报信息分别推送到云控制平 台、手机短信或微信消息中。
[0138] 可选的,主控节点可以在某个时刻的健康参数低于第一阈值时,进行警报,也可以 是对时序数据库中的监控对象的健康参数观察一段时间,若取平均值判断是否需要进行警 报,具体如下:
[0139] 所述主控节点根据所述监控对象的健康参数的大小确定所述目标监控对象的告 警等级,并根据所述告警等级为所述告警信息进行等级标识,在预设时长内,若所述监控对 象的平均健康参数低于所述第一阈值,则所述主控节点生成对应所述目标监控对象的警报 信息。
[0140] 可选的,针对健康参数的大小确定告警等级,根据告警等级的高低,可以生成不同 的警报信息,具体如下:
[0141 ]若告警等级为第一等级,则所述警报信息为用于指示对所述目标监控对象进行预 警的信息;
[0142] 若告警等级为第二等级,则所述警报信息为用于指示对所述目标监控对象进行告 警的信息;
[0143] 若告警等级为第三等级,则所述警报信息为用于指示对所述目标监控对象进行报 警的信息。
[0144] 如图4、图5所示,在所述主控节点将所述宿主机的监控状态和所述监控对象的健 康参数通过查询端口发送至所述云控制平台后,所述云控制平台可以根据所述监控对象的 健康参数的大小,图形化展示宿主机的监控状态和所述监控对象的健康参数,使得各监控 对象的运行状态一目了然,管理人员能够随时了解各监控对象的实时运行状态。具体的展 示方式本文不作限定。
[0145] 另外,如图6所示,云控制平台在接收到主控节点发送的警报信息后,可以以弹窗 及声音提醒等方式展示到用户浏览器中,例如,对于严重的警报信息(第三等级),云控制平 台还可以将警报信息以手机短信的方式进行消息组装,然后通过短信网关发送到用户绑定 的手机,还可以将警报信息以微信消息的方式进行消息组装,然后通过微信公众号推送到 用户绑定的微信中,使得绑定手机或微信公众号的用户能够及时的、有针对性的对服务异 常的组件进行处理与修复,提高监控效率。具体推送警报信息的方式本文不作限定。
[0146] 本发明实施例中,通过基于应用容器部署的监控模块获取目标应用容器、目标系 统服务组件、目标应用以及宿主机中的至少一种监控对象的监控状态,实现应用容器级别、 应用级别以及宿主机级别的监控,提供更细粒度的监控状态。并且根据预设健康分析规则 对所述监控状态进行健康分析,能够为主控节点提供更详细和更准确的监控状态和健康参 数。
[0147] 以上对本发明中一种基于应用容器部署的集群监控方法进行说明,以下对执行上 述基于应用容器部署的集群监控系统70进行描述。
[0148] 参照图7,对基于应用容器部署的集群监控系统70进行说明,基于应用容器部署的 集群监控系统70包括:
[0149] 集群和主控节点702,所述集群包括至少一台宿主机701,所述宿主机701包括监控 模块7011,所述监控模块7011为在所述宿主机701上部署应用容器时,与所述应用容器集成 安装的模块;
[0150] 所述宿主机701通过所述监控模块7011获取监控对象的监控状态,所述监控对象 包括所述宿主机701上运行的目标应用容器、所述宿主机701上运行的目标系统服务组件、 所述宿主机701上运行的目标应用、以及所述宿主机701中的至少一项;
[0151] 所述宿主机701中的所述监控模块7011根据预设健康分析规则对所述监控状态进 行健康分析,得到所述监控对象的健康参数;
[0152] 所述宿主机701将所述监控状态和所述监控对象的健康参数同步至所述主控节 占.
[0153] 所述主控节点702从所述宿主机701获取监控对象的监控状态、以及所述监控对象 的健康参数,在确定所述监控对象中的目标监控对象的健康参数低于第一阈值时,生成所 述目标监控对象对应的警报信息,并将所述警报信息发送至所述云控制平台。
[0154] 本发明实施例中,通过基于应用容器部署的监控模块7011获取目标应用容器、目 标系统服务组件、以及宿主机701中的至少一种监控对象的监控状态,实现应用容器级别、 应用级别以及宿主机级别的监控,提供更细粒度的监控状态。并且根据预设健康分析规则 对所述监控状态进行健康分析,能够为主控节点提供更详细和更准确的监控状态和健康参 数。
[0155] 可选的,在一些发明实施例中,所述宿主机701上还包括监控对象识别模块7012, 所述宿主机701获取监控对象的监控状态之前,所述宿主机701通过所述监控对象识别模块 7012获取目标应用容器的属性信息、目标系统服务组件的属性信息、目标应用的属性信息 以及宿主机701的属性信息中的至少一种属性信息。
[0156] 可选的,在一些发明实施例中,所述宿主机701通过所述监控模块7011获取监控对 象的监控状态,至少包括以下项之一:
[0157] 所述宿主机701根据所述目标应用容器的属性信息获取宿主机701的监控状态;
[0158] 或,
[0159] 所述宿主机701根据所述目标系统服务组件的属性信息获取目标应用容器的监控 状态;
[0160] 或,
[0161 ]所述宿主机根据所述目标应用的属性信息获取目标应用容器的监控状态;
[0162] 或,
[0163] 所述宿主机701根据所述宿主机的属性信息获取目标系统服务组件的监控状态。
[0164] 可选的,在一些发明实施例中,所述宿主机701中的所述监控模块7011根据预设健 康分析规则对所述监控状态进行健康分析,得到所述监控对象的健康参数至少包括以下项 之一:
[0165] 所述宿主机701对在第一时长内,监控对象的处理器使用率高于第二阈值且小于 第三阈值的监控对象的健康参数减少施;
[0166] 或,所述宿主机701对在所述第一时长内,监控对象的处理器使用率高于所述第三 阈值的监控对象的健康参数减少M2;
[0167] 或,所述宿主机701对在第二时长内,监控对象的内存使用率高于第四阈值且小于 第五阈值的监控对象的健康参数减少M3;
[0168] 或,所述宿主机701对在所述第二时长内,监控对象的内存使用率高于所述第五阈 值的监控对象的健康参数减少M4 ;
[0169] 或,所述宿主机701对在第三时长内,监控对象的硬盘使用率高于第六阈值且小于 第七阈值的监控对象的健康参数减少M5;
[0170] 或,所述宿主机701对在所述第三时长内,监控对象的硬盘使用率高于所述第七阈 值的监控对象的健康参数减少M6;
[0171] 或,所述宿主机701对在第四时长内,监控对象的网络带宽占比高于第八阈值且小 于第九阈值的监控对象的健康参数减少M7;
[0172] 或,所述宿主机701对在所述第四时长内,监控对象的网络带宽占比高于所述第九 阈值的监控对象的健康参数减少Ms;
[0173] 或,所述宿主机701对运行异常的监控对象的健康参数设为0;
[0174] ]\11、]?2、]?3、]?4、]?5、]?6、]?7、]?8、]?9均为正整数。
[0175] 可选的,在一些发明实施例中,所述主控节点702具体用于:
[0176] 根据所述监控对象的健康参数的大小确定所述目标监控对象的告警等级,并根据 所述告警等级为所述告警信息进行等级标识,在预设时长内,若所述监控对象的平均健康 参数低于所述第一阈值,则生成对应所述目标监控对象的警报信息。
[0177] 具体的整个监控、告警的流程如图6所示,此处不作赘述。
[0178] 以上描述中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可 以参见其他实施例的相关描述。
[0179] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统, 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0180] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或 讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦 合或通信连接,可以是电性,机械或其它的形式。
[0181] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0182] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0183] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全 部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程 序代码的介质。
[0184] 以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发 明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其 核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用 范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1. 一种基于应用容器部署的集群监控的方法,其特征在于,所述方法应用于应用管理 系统中的宿主机,所述应用管理系统包括云控制平台、主控节点和集群,所述集群包括至少 一台宿主机,所述宿主机包括监控模块,所述方法包括: 所述宿主机通过所述监控模块获取监控对象的监控状态,所述监控对象包括所述宿主 机上运行的目标应用容器、所述宿主机上运行的目标系统服务组件、所述宿主机上运行的 目标应用、以及所述宿主机中的至少一项; 所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行健康分析, 得到所述监控对象的健康参数; 所述宿主机将所述监控状态和所述监控对象的健康参数同步至所述主控节点,以使所 述主控节点在确定所述监控对象中的目标监控对象的健康参数低于第一阈值时,生成所述 目标监控对象对应的警报信息,并将所述警报信息发送至所述云控制平台。2. 根据权利要求1所述的方法,其特征在于,所述宿主机上还包括监控对象识别模块, 所述宿主机获取监控对象的监控状态之前,所述方法还包括: 所述宿主机通过所述监控对象识别模块获取目标应用容器的属性信息、目标系统服务 组件的属性信息、目标应用的属性信息以及宿主机的属性信息中的至少一种属性信息。3. 根据权利要求2所述的方法,其特征在于,所述宿主机通过所述监控模块获取监控对 象的监控状态,至少包括以下项之一: 所述宿主机根据所述目标应用容器的属性信息获取宿主机的监控状态; 或, 所述宿主机根据所述目标系统服务组件的属性信息获取目标应用容器的监控状态; 或, 所述宿主机根据所述目标应用的属性信息获取目标应用容器的监控状态; 或, 所述宿主机根据所述宿主机的属性信息获取目标系统服务组件的监控状态。4. 根据权利要求3所述的方法,其特征在于,所述宿主机中的所述监控模块根据预设健 康分析规则对所述监控状态进行健康分析,得到所述监控对象的健康参数至少包括以下项 之一: 所述宿主机对在第一时长内,监控对象的处理器使用率高于第二阈值且小于第三阈值 的监控对象的健康参数减少施; 或,所述宿主机对在所述第一时长内,监控对象的处理器使用率高于所述第三阈值的 监控对象的健康参数减少M2; 或,所述宿主机对在第二时长内,监控对象的内存使用率高于第四阈值且小于第五阈 值的监控对象的健康参数减少M3; 或,所述宿主机对在所述第二时长内,监控对象的内存使用率高于所述第五阈值的监 控对象的健康参数减少M4; 或,所述宿主机对在第三时长内,监控对象的硬盘使用率高于第六阈值且小于第七阈 值的监控对象的健康参数减少M5; 或,所述宿主机对在所述第三时长内,监控对象的硬盘使用率高于所述第七阈值的监 控对象的健康参数减少M6; 或,所述宿主机对在第四时长内,监控对象的网络带宽占比高于第八阈值且小于第九 阈值的监控对象的健康参数减少M7; 或,所述宿主机对在所述第四时长内,监控对象的网络带宽占比高于所述第九阈值的 监控对象的健康参数减少Ms; 或,所述宿主机对运行异常的监控对象的健康参数设为0; 皿1、]\12、]\13、]\14、]?5、]\1 6、]\17、]?8、]\19均为正整数。5. -种基于应用容器部署的集群监控的方法,其特征在于,所述方法应用于应用管理 系统中的主控节点,所述应用管理系统包括云控制平台、所述主控节点和集群,所述集群包 括至少一台宿主机,所述宿主机包括监控模块,所述方法包括: 所述主控节点从所述宿主机获取监控对象的监控状态、以及所述监控对象的健康参 数,所述监控对象包括所述宿主机上运行的目标应用容器、所述宿主机上运行的目标系统 服务组件、所述宿主机上运行的目标应用、以及所述宿主机中的至少一项;所述健康参数由 所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行健康分析得到; 所述主控节点在确定所述监控对象中的目标监控对象的健康参数低于第一阈值时,生 成所述目标监控对象对应的警报信息,并将所述警报信息发送至所述云控制平台。6. 根据权利要求5所述的方法,其特征在于,所述主控节点在确定所述监控对象中的目 标监控对象的健康参数低于第一阈值时,生成所述目标监控对象对应的警报信息,包括: 所述主控节点根据所述监控对象的健康参数的大小确定所述目标监控对象的告警等 级,并根据所述告警等级为所述告警信息进行等级标识,在预设时长内,若所述监控对象的 平均健康参数低于所述第一阈值,则所述主控节点生成对应所述目标监控对象的警报信 息。7. 根据权利要求6所述的方法,其特征在于,若告警等级为第一等级,则所述警报信息 为用于指示对所述目标监控对象进行预警的信息; 若告警等级为第二等级,则所述警报信息为用于指示对所述目标监控对象进行告警的 信息; 若告警等级为第三等级,则所述警报信息为用于指示对所述目标监控对象进行报警的 信息。8. 根据权利要求5或6所述的方法,其特征在于,所述方法还包括: 所述主控节点将所述宿主机的监控状态和所述监控对象的健康参数通过查询端口发 送至所述云控制平台,以使所述云控制平台根据所述监控对象的健康参数的大小,图形化 展示宿主机的监控状态和所述监控对象的健康参数。9. 一种基于应用容器部署的集群监控系统,其特征在于,所述集群监控系统包括集群 和主控节点,所述集群包括至少一台宿主机,所述宿主机包括监控模块; 所述宿主机通过所述监控模块获取监控对象的监控状态,所述监控对象包括所述宿主 机上运行的目标应用容器、所述宿主机上运行的目标系统服务组件、所述宿主机上运行的 目标应用、以及所述宿主机中的至少一项; 所述宿主机中的所述监控模块根据预设健康分析规则对所述监控状态进行健康分析, 得到所述监控对象的健康参数; 所述宿主机将所述监控状态和所述监控对象的健康参数同步至所述主控节点; 所述主控节点从所述宿主机获取监控对象的监控状态、以及所述监控对象的健康参 数,在确定所述监控对象中的目标监控对象的健康参数低于第一阈值时,生成所述目标监 控对象对应的警报信息,并将所述警报信息发送至所述云控制平台。10. 根据权利要求9所述的集群监控系统,其特征在于,所述宿主机上还包括监控对象 识别模块,所述宿主机获取监控对象的监控状态之前,所述宿主机通过所述监控对象识别 模块获取目标应用容器的属性信息、目标系统服务组件的属性信息、目标应用的属性信息 以及宿主机的属性信息中的至少一种属性信息。11. 根据权利要求10所述的集群监控系统,其特征在于,所述宿主机通过所述监控模块 获取监控对象的监控状态,至少包括以下项之一: 所述宿主机根据所述目标应用容器的属性信息获取宿主机的监控状态; 或, 所述宿主机根据所述目标系统服务组件的属性信息获取目标应用容器的监控状态; 或, 所述宿主机根据所述目标应用的属性信息获取目标应用容器的监控状态; 或, 所述宿主机根据所述宿主机的属性信息获取目标系统服务组件的监控状态。12. 根据权利要求11所述的集群监控系统,其特征在于,所述宿主机中的所述监控模块 根据预设健康分析规则对所述监控状态进行健康分析,得到所述监控对象的健康参数至少 包括以下项之一: 所述宿主机对在第一时长内,监控对象的处理器使用率高于第二阈值且小于第三阈值 的监控对象的健康参数减少施; 或,所述宿主机对在所述第一时长内,监控对象的处理器使用率高于所述第三阈值的 监控对象的健康参数减少M2; 或,所述宿主机对在第二时长内,监控对象的内存使用率高于第四阈值且小于第五阈 值的监控对象的健康参数减少M3; 或,所述宿主机对在所述第二时长内,监控对象的内存使用率高于所述第五阈值的监 控对象的健康参数减少M4; 或,所述宿主机对在第三时长内,监控对象的硬盘使用率高于第六阈值且小于第七阈 值的监控对象的健康参数减少M5; 或,所述宿主机对在所述第三时长内,监控对象的硬盘使用率高于所述第七阈值的监 控对象的健康参数减少M6; 或,所述宿主机对在第四时长内,监控对象的网络带宽占比高于第八阈值且小于第九 阈值的监控对象的健康参数减少M7 ; 或,所述宿主机对在所述第四时长内,监控对象的网络带宽占比高于所述第九阈值的 监控对象的健康参数减少Ms; 或,所述宿主机对运行异常的监控对象的健康参数设为0; 皿1、]\12、]\13、]\14、]?5、]\1 6、]\17、]?8、]\19均为正整数。13. 根据权利要求12所述的集群监控系统,其特征在于,所述主控节点具体用于: 根据所述监控对象的健康参数的大小确定所述目标监控对象的告警等级,并根据所述
【文档编号】H04L12/26GK106027328SQ201610321338
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】包琼林, 刘祥涛, 姚子建, 赵彦晖, 孙淏添
【申请人】深圳市中润四方信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1