一种基于服务发现的集群资源监控系统转让专利

申请号 : CN202110000525.5

文献号 : CN112328456B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 文彬严凡

申请人 : 北京电信易通信息技术股份有限公司

摘要 :

本发明涉及一种基于服务发现的集群资源监控系统。该系统通过容器云平台可以查看主机和集群的全方位监控指标,并根据主机和集群的监控指标设置告警;告警组件可以将告警信息通过各种方式推送给用户,并可以在容器云平台中查看所有的告警历史信息,还可以针对告警信息进行操作,比如告警确认,告警恢复等等;本发明可以让容器云平台动态的感知容器集群和非容器集群新增或者删除主机的操作,不需要人工干预,可以自动安装或者卸载监控所必需的组件,减少系统运维人员的手工参与,及时的了解集群的运行状态,避免出现重大生产事故。

权利要求 :

1.一种基于服务发现的集群资源监控系统,其特征在于,包括:指标采集组件、服务发现组件、监控组件和容器云平台;

容器集群的每个主机和非容器集群的每个主机上均运行对应的所述指标采集组件;所述指标采集组件根据用户的选择进行部署或者卸载,用于采集对应的指标数据,所述指标数据包括主机指标、集群指标和自定义指标;

所述服务发现组件用于同步所述容器集群和所述非容器集群中的主机;当所述容器集群或所述非容器集群中新增主机时,所述服务发现组件将对应的指标采集组件一键式部署至新增的主机,并通知所述监控组件;当所述容器集群或所述非容器集群中删除主机时,所述服务发现组件将对应的指标采集组件从删除的主机上卸载,并通知所述监控组件;

所述监控组件是指由Prometheus、PushGateway和Alertmanage构成的组件集合,用于接收每个所述指标采集组件采集的指标数据,并将接收的指标数据在所述容器云平台上进行展示;

所述的基于服务发现的集群资源监控系统还包括:告警组件;所述监控组件还用于存储告警规则,所述告警组件用于根据所述监控组件的告警规则生成告警信息,并将所述告警信息在所述容器云平台上进行展示;所述容器云平台还用于根据已生成的告警信息进行相应的操作;

所述容器云平台包括:告警展示模块、监控展示模块和告警操作模块;

所述告警展示模块用于对告警信息进行展示、对历史告警信息进行统计以及对历史告警信息进行分类查看;

所述监控展示模块用于对监控组件接收的指标数据进行展示;

所述告警操作模块用于对生成的告警信息进行相应的操作。

2.根据权利要求1所述的基于服务发现的集群资源监控系统,其特征在于,所述容器云平台根据已生成的告警信息进行的相应的操作具体包括:所述容器云平台用于将所述告警信息推送至工作人员;

所述容器云平台还用于确认推送的所述告警信息,避免重复推送;

所述容器云平台还用于恢复告警状态,当告警状态恢复后所述告警信息仍然存在时,继续推送所述告警信息。

3.根据权利要求2所述的基于服务发现的集群资源监控系统,其特征在于,所述容器云平台推送所述告警信息的方式包括:短信、邮件、企业微信和钉钉。

4.根据权利要求1所述的基于服务发现的集群资源监控系统,其特征在于,所述主机指标包括主机性能指标和主机运行指标;所述主机性能指标包括:CPU、内存、磁盘、网络、负载和TCP连接;所述主机运行指标包括:状态、进程使用的资源、关键服务使用的资源和主机系统日志。

5.根据权利要求1所述的基于服务发现的集群资源监控系统,其特征在于,所述集群指标包括集群性能指标、集群组件指标和系统日志指标;所述集群性能指标包括:集群的吞吐量、占用资源、IO瓶颈和网络压力;所述集群组件指标包括:集群核心组件的运行状态和运行日志;所述系统日志指标包括:主机的系统日志、集群日志以及应用和服务的日志。

6.根据权利要求1所述的基于服务发现的集群资源监控系统,其特征在于,所述自定义指标包括:用户应用的性能指标和运行状态。

7.根据权利要求1所述的基于服务发现的集群资源监控系统,其特征在于,所述服务发现组件还用于根据容器集群以及非容器集群中主机的变化,更新抓取目标的配置文件;所述配置文件用于更新主机的信息、更新用户自定义的抓取信息以及更新开源的exporter信息。

说明书 :

一种基于服务发现的集群资源监控系统

技术领域

[0001] 本发明涉及集群资源监控领域,特别是涉及一种基于服务发现的集群资源监控系统。

背景技术

[0002] 近年来,随着云原生以及微服务的普及,Kubernetes作为可以管理容器化工作负载的开源平台,已然成为行业内的标杆。传统的应用部署方式是通过插件或脚本来安装应
用,这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做
并不利于应用的升级、更新、回滚等操作,或者可以通过创建虚拟机的方式来实现某些功
能,但是虚拟机非常重,可移植性差;而在Kubernetes生态中通过容器方式部署,每个容器
之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资
源;相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能
在不同云、不同版本操作系统间进行迁移。
[0003] Kubernetes可以管理跨多个主机的容器,提供基本的部署,维护以及应用伸缩,Kubernetes给应用的生命周期带来各种优势的同时,也带来了集群监控运维的各种挑战。
对于Kubernetes集群内的新增或者删除的主机,监控组件可以自动的实现服务发现以应对
主机的变化,监控组件可以无缝对接的对新增或者删除的主机,进行指标的采集和告警,但
是对于非Kubernetes集群中的新增或者删除主机,现有技术中监控组件无法发现这些变
化,需要运维人员手工参与,导致维护效率低。

发明内容

[0004] 本发明的目的是提供一种基于服务发现的集群资源监控系统,以实现集群资源的自动监控,提高维护效率。
[0005] 为实现上述目的,本发明提供了如下方案:
[0006] 一种基于服务发现的集群资源监控系统,包括:指标采集组件、服务发现组件、监控组件和容器云平台;
[0007] 容器集群的每个主机和非容器集群的每个主机上均运行对应的所述指标采集组件;所述指标采集组件用于采集对应的指标数据,所述指标数据包括主机指标、集群指标和
自定义指标;
[0008] 所述服务发现组件用于同步所述容器集群和所述非容器集群中的主机;当所述容器集群或所述非容器集群中新增主机时,所述服务发现组件将对应的指标采集组件一键式
部署至新增的主机,并通知所述监控组件;当所述容器集群或所述非容器集群中删除主机
时,所述服务发现组件将对应的指标采集组件从删除的主机上卸载,并通知所述监控组件;
[0009] 所述监控组件用于接收每个所述指标采集组件采集的指标数据,并将接收的指标数据在所述容器云平台上进行展示。
[0010] 可选的,还包括:告警组件;所述监控组件还用于存储告警规则,所述告警组件用于根据所述监控组件的告警规则生成告警信息,并将所述告警信息在所述容器云平台上进
行展示;所述容器云平台还用于根据已生成的告警信息进行相应的操作。
[0011] 可选的,所述容器云平台根据已生成的告警信息进行的相应的操作具体包括:
[0012] 所述容器云平台用于将所述告警信息推送至工作人员;
[0013] 所述容器云平台还用于确认推送的所述告警信息,避免重复推送;
[0014] 所述容器云平台还用于恢复告警状态,当告警状态恢复后所述告警信息仍然存在时,继续推送所述告警信息。
[0015] 可选的,所述容器云平台推送所述告警信息的方式包括:短信、邮件、企业微信和钉钉。
[0016] 可选的,所述主机指标包括主机性能指标和主机运行指标;所述主机性能指标包括:CPU、内存、磁盘、网络、负载和TCP连接;所述主机运行指标包括:状态、进程使用的资源、
关键服务使用的资源和主机系统日志。
[0017] 可选的,所述集群指标包括集群性能指标、集群组件指标和系统日志指标;所述集群性能指标包括:集群的吞吐量、占用资源、IO瓶颈和网络压力;所述集群组件指标包括:集
群核心组件的运行状态和运行日志;所述系统日志指标包括:主机的系统日志、集群日志以
及应用和服务的日志。
[0018] 可选的,所述自定义指标包括:用户应用的性能指标和运行状态。
[0019] 可选的,所述容器云平台包括:告警展示模块、监控展示模块和告警操作模块;
[0020] 所述告警展示模块用于对告警信息进行展示、对历史告警信息进行统计以及对历史告警信息进行分类查看;
[0021] 所述监控展示模块用于对监控组件接收的指标数据进行展示;
[0022] 所述告警操作模块用于对生成的告警信息进行相应的操作。
[0023] 可选的,所述服务发现组件还用于根据容器集群以及非容器集群中主机的变化,更新抓取目标的配置文件;所述配置文件用于更新主机的信息、更新用户自定义的抓取信
息以及更新开源的exporter信息。
[0024] 根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0025] 本发明通过服务发现组件,能动态的感知容器集群和非容器集群主机的增加和删除变化,及时的通知监控组件;并且还可以一键安装指标采集组件,减少人工的干预;监控
组件得知集群的动态变化之后就可以从指标采集组件中拉取指标数据,并进行存储;容器
云平台进行监控指标的展示,查看告警历史,推送通知告警信息并可以进行告警的确认和
恢复,进而可以更大程度上缓解容器集群和非容器集群的运维压力,及时的了解集群的运
行状态,实现对容器集群和非容器集群进行监控,提高监控效率。

附图说明

[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图
获得其他的附图。
[0027] 图1为本发明基于服务发现的集群资源监控系统的结构示意图;
[0028] 图2为本发明服务发现组件的处理流程示意图。

具体实施方式

[0029] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0030] 对于Kubernetes集群内的新增或者删除的主机,监控组件可以自动的实现服务发现以应对主机的变化,监控组件可以无缝对接的对新增或者删除的主机,进行指标的采集
和告警,但是对于非Kubernetes集群中的新增或者删除主机,如何让监控组件能动态的发
现这些变化,不需要运维人员手工参与,这是本发明要解决的问题。
[0031] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0032] 图1为本发明基于服务发现的集群资源监控系统的结构示意图,如图1所示,本发明基于服务发现的集群资源监控系统包括:指标采集组件1、服务发现组件2、监控组件3和
容器云平台4。
[0033] 容器集群5的每个主机和非容器集群6的每个主机上均运行对应的所述指标采集组件1。容器集群是指由管理角色的主机以及工作角色的主机组成的Kubernetes集群;非容
器集群是指不是用Kubernetes管理的集群,比如大数据集群、中间件集群、消息集群等等。
指标采集组件1根据用户的选择进行部署或者卸载,包括:主机采集组件、各类集群性能采
集组件、自定义采集组件等,可以满足各类监控场景。所述指标采集组件1用于采集对应的
指标数据,包括主机指标、集群指标和自定义指标。主机指标包括主机性能指标和主机运行
指标;所述主机性能指标包括:CPU、内存、磁盘、网络、负载和TCP连接等;所述主机运行指标
包括:状态、进程使用的资源、关键服务使用的资源和主机系统日志等。集群指标包括集群
性能指标、集群组件指标和系统日志指标;所述集群性能指标包括:集群的吞吐量、占用资
源、IO瓶颈和网络压力;所述集群组件指标包括:集群核心组件的运行状态和运行日志等;
所述系统日志指标包括:主机的系统日志、集群日志以及应用和服务的日志等。自定义指标
包括:用户应用的性能指标和运行状态等。
[0034] 所述服务发现组件2负责动态发现容器集群和非容器集群新增或者删除的主机变化,并同步所述容器集群和所述非容器集群中的主机。当所述容器集群或所述非容器集群
中新增主机时,所述服务发现组件2将对应的指标采集组件1一键式部署至新增的主机,并
通知所述监控组件3;当所述容器集群或所述非容器集群中删除主机时,所述服务发现组件
2将对应的指标采集组件1从删除的主机上卸载以节省主机资源,并通知所述监控组件3。
[0035] 结合图2所示,当集群(容器集群和非容器集群)中的主机动态的增加或者删除时,通知服务发现组件2,服务发现组件2主要做2件事:(1)根据集群中动态变化,更新抓取目标
的配置文件,配置文件不仅可以更新主机的信息,而且用户自定义的抓取信息以及一些开
源的exporter的信息都可以更新到配置文件中;(2)根据集群的需要,一键部署或者卸载指
标采集组件1,并通知监控组件3热启动。
[0036] 所述监控组件3是指由Prometheus、PushGateway(用于上报自定义exporter的指标数据)、Alertmanager(用于告警)构成的组件集合,用于从指标采集组件1中拉取采集的
指标数据,进行存储,并将接收的指标数据在所述容器云平台4上进行展示。
[0037] 容器云平台4从监控组件3中读取采集的指标数据进行展示。
[0038] 此外,本发明基于服务发现的集群资源监控系统还包括:告警组件7和数据库8。此时,容器云平台4可以根据不同的监控条件设置告警规则,监控组件3存储该告警规则,告警
组件根据所述监控组件3的告警规则生成告警信息,并将所述告警信息存储至数据库8,同
时在所述容器云平台4上进行展示。生成告警信息后,所述容器云平台4还用于根据已生成
的告警信息进行相应的操作,具体包括以下操作:
[0039] 将所述告警信息推送至相关运维人员,推送方式包括短信、邮件、企业微信、钉钉等,方便运维人员及时了解集群的运行情况,及时的处理异常信息,比如增加主机资源,定
位问题等。
[0040] 确认推送的告警信息,避免重复推送。
[0041] 恢复告警状态,当告警状态恢复后所述告警信息仍然存在的时,可以继续推送所述告警信息。
[0042] 本发明的容器云平台4具体包括:告警展示模块、监控展示模块和告警操作模块。所述告警展示模块用于对告警信息进行展示、对历史告警信息进行统计以及对历史告警信
息进行分类查看;所述监控展示模块用于对监控组件3接收的指标数据进行展示;所述告警
操作模块用于对生成的告警信息进行相应的操作。
[0043] 本发明通过容器云平台可以查看主机和集群的全方位监控指标,并根据主机和集群的监控指标设置告警;告警组件可以将告警信息通过各种方式推送给用户,并可以在容
器云平台中查看所有的告警历史信息,还可以针对告警信息进行操作,比如告警确认,告警
恢复等等;本发明可以让容器云平台动态的感知容器集群和非容器集群新增或者删除主机
的操作,不需要人工干预,可以自动安装或者卸载监控所必需的组件,减少系统运维人员的
手工参与,及时的了解集群的运行状态,及时让运维人员发现集群问题,避免出现重大事
故,进一步保障了集群的健康运行。
[0044] 通过本发明的基于服务发现的集群资源监控系统,可以对Kubernetes集群和非Kubernetes集群的主机进行指标采集、指标监控、设置告警、告警通知,并提供统一的容器
云平台门户进行展示,为集群的运维人员提供了极大的便利,减少运营成本。通过容器云平
台可以对Kubernetes集群中的主机、集群中容器化运行的应用和服务、Kubernetes中的资
源对象进行指标采集和监控;对非Kubernetes集群中的主机、集群的性能指标(比如大数据
集群的性能指标、关系型数据库的性能指标、消息集群的性能指标等等)、自定义的指标进
行采集和监控。
[0045] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0046] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据
本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不
应理解为对本发明的限制。