CN118132395A - 基于k8s的Flink任务多集群监控告警方法及设备 - Google Patents

基于k8s的Flink任务多集群监控告警方法及设备 Download PDF

Info

Publication number
CN118132395A
CN118132395A CN202410212887.4A CN202410212887A CN118132395A CN 118132395 A CN118132395 A CN 118132395A CN 202410212887 A CN202410212887 A CN 202410212887A CN 118132395 A CN118132395 A CN 118132395A
Authority
CN
China
Prior art keywords
target
monitoring
cluster
task
configuration information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410212887.4A
Other languages
English (en)
Inventor
姜雨彤
穆纯进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd, Unicom Digital Technology Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202410212887.4A priority Critical patent/CN118132395A/zh
Publication of CN118132395A publication Critical patent/CN118132395A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种基于k8s的Flink任务多集群监控告警方法及设备。该方法包括:响应于管理员在前端页面输入的监控请求信息,从监控请求信息中获取Flink集群的集群标识和监控类型;根据集群标识获取管理配置信息,根据监控类型获取目标监控程序模板,并根据管理配置信息和目标监控程序模板,得到目标监控程序以及目标监控程序名称;根据目标监控程序名称编写目标执行文件,根据目标执行文件在k8s中部署目标监控程序;在目标监控程序运行后获取输出的目标任务列表,并基于任务指标向目标任务列表对应的用户终端发送预警信息。本申请的方法,通过在前端页面输入集群的标识和监控类型,无需修改监控程序的代码就能完成监控程序的部署,降低了监控部署的人工成本。

Description

基于k8s的Flink任务多集群监控告警方法及设备
技术领域
本申请涉及监控告警技术领域,尤其涉及一种基于k8s的Flink任务多集群监控告警方法及设备。
背景技术
随着Flink作业的成熟发展,随之出现了较为实用的流处理应用开发管理框架Stream Park,该开源项目弥补了没有针对Flink和Spark作业的部署管理平台的痛点。
然而,目前的Stream Park平台,只支持单集群作业管理,部署多个Stream Park平台,才能够支持多个集群作业的管理,在对Stream Park平台进行监控时,针对每一个Stream Park平台的监控,都需要修改监控程序的代码。
因此,在进行多集群监控时需要修改大量代码,成本较高。
发明内容
本申请提供一种基于k8s的Flink任务多集群监控告警方法及设备,减少了监控程序部署的成本。
第一方面,本申请提供一种基于k8s的Flink任务多集群监控告警方法方法,包括:
响应于管理员在前端页面输入的监控请求信息,从所述监控请求信息中获取Flink集群的集群标识和监控类型;
根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,所述管理配置信息包括用于管理所述Flink集群的Stream Park的配置信息,所述目标监控程序为监控所述Flink集群的程序,所述Stream Park用于配置并存储任务指标;
根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;
在所述k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,所述目标任务列表包括基于所述任务指标确定的需要预警的目标任务。
在一种可能的设计中,所述根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,包括:
根据所述集群标识从集群配置映射表中获取所述集群标识对应的管理配置信息,其中,所述管理配置信息包括所述Stream Park的配置信息和yarn模型的配置信息,所述Stream Park的配置信息包括Stream Park数据库的配置信息和Stream Park地址的配置信息,其中,所述Flink集群运行在所述yarn模型中,所述Stream Park的配置信息用于指向管理所述Flink集群的Stream Park;
根据所述监控类型从监控程序库中获取所述监控类型对应的目标监控程序模板;
根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序;
根据监控程序名称编写规则获取目标监控程序名称。
在一种可能的设计中,所述根据所述集群标识从集群配置映射表中获取所述集群标识对应的管理配置信息之后,所述方法还包括:
在Nacos配置中心获取所述监控类型所属的目标命名空间,在所述目标命名空间中为所述Flink集群新建一个组,将所述管理配置信息存储至新创建的组中,并获取新创建的组的组名;
所述根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序,包括:
根据所述集群标识、目标命名空间、组名和目标监控程序模板,得到目标监控程序。
在一种可能的设计中,所述根据所述目标监控程序名称编写目标执行文件,包括:
获取预存的执行文件模板,其中,所述执行文件模板包括yaml文件模板和dockerfile文件模板;
根据所述目标监控程序名称和yaml文件模板,得到目标yaml文件;
根据所述目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件;
根据所述目标yaml文件和所述目标dockerfile文件,获取目标执行文件,所述目标yaml文件用于在k8s中创建pod,所述目标dockerfile文件用于在所述pod中运行目标监控程序。
在一种可能的设计中,所述根据所述目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件,包括:
随机生成预设位数的号码,将所述号码作为端口号;
将所述端口号、集群标识和监控类型存储至端口服务映射表;
根据所述端口号、目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件。
在一种可能的设计中,所述根据所述端口号、目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件之后,所述方法还包括:
获取需要监控的Flink集群的集群标识和监控类型;
根据所述集群标识和监控类型,在所述端口服务映射表中筛选目标端口;
根据目标端口启动目标端口对应的目标监控程序。
在一种可能的设计中,所述目标监控程序用于:基于所述监控类型监控Flink集群的任务,并基于从所述Stream Park获取的第一任务指标,确定需要预警的目标任务,并生成目标任务列表;其中,所述第一任务指标用于指示进行预警的阈值信息;
根据所述目标任务列表,从所述Stream Park获取目标任务对应的指标列表,其中,指标列表中存储目标任务对应的第二任务指标,所述第二任务指标包括任务名称、任务类型、上一次任务执行人、任务执行人所属团队、任务所属类型、作业标识中的至少一项;
根据所述第二任务指标和告警配置规则,获取所述目标任务列表的预警信息,其中,所述预警信息包括预警内容和目标用户终端。
第一方面,本申请提供一种基于k8s的Flink任务多集群监控告警设备,包括:
获取模块,用于响应于管理员在前端页面输入的监控请求信息,从所述监控请求信息中获取Flink集群的集群标识和监控类型;
监控程序编写模块,用于根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,所述管理配置信息包括用于管理所述Flink集群的Stream Park的配置信息,所述目标监控程序为监控所述Flink集群的程序,所述StreamPark用于配置并存储任务指标;
执行文件编写模块,用于根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;
预警模块,用于在所述k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,所述目标任务列表包括基于所述任务指标确定的需要预警的目标任务。
在一种可能的设计中,所述监控程序编写模块具体用于:
根据所述集群标识从集群配置映射表中获取所述集群标识对应的管理配置信息,其中,所述管理配置信息包括所述Stream Park的配置信息和yarn模型的配置信息,所述Stream Park的配置信息包括Stream Park数据库的配置信息和Stream Park地址的配置信息,其中,所述Flink集群运行在所述yarn模型中,所述Stream Park的配置信息用于指向管理所述Flink集群的Stream Park;
根据所述监控类型从监控程序库中获取所述监控类型对应的目标监控程序模板;
根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序;
根据监控程序名称编写规则获取目标监控程序名称。
在一种可能的设计中,所述监控程序编写模块还具体用于:
在Nacos配置中心获取所述监控类型所属的目标命名空间,在所述目标命名空间中为所述Flink集群新建一个组,将所述管理配置信息存储至新创建的组中,并获取新创建的组的组名;
所述根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序,包括:
根据所述集群标识、目标命名空间、组名和目标监控程序模板,得到目标监控程序。
在一种可能的设计中,所述执行文件编写模块具体用于:
获取预存的执行文件模板,其中,所述执行文件模板包括yaml文件模板和dockerfile文件模板;
根据所述目标监控程序名称和yaml文件模板,得到目标yaml文件;
根据所述目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件;
根据所述目标yaml文件和所述目标dockerfile文件,获取目标执行文件,所述目标yaml文件用于在k8s中创建pod,所述目标dockerfile文件用于在所述pod中运行目标监控程序。
在一种可能的设计中,所述执行文件编写模块还具体用于:
随机生成预设位数的号码,将所述号码作为端口号;
将所述端口号、集群标识和监控类型存储至端口服务映射表;
根据所述端口号、目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件。
在一种可能的设计中,所述程序启动模块用于:
获取需要监控的Flink集群的集群标识和监控类型;
根据所述集群标识和监控类型,在所述端口服务映射表中筛选目标端口;
根据目标端口启动目标端口对应的目标监控程序。
在一种可能的设计中,所述目标监控程序用于:基于所述监控类型监控Flink集群的任务,并基于从所述Stream Park获取的第一任务指标,确定需要预警的目标任务,并生成目标任务列表;其中,所述第一任务指标用于指示进行预警的阈值信息;
根据所述目标任务列表,从所述Stream Park获取目标任务对应的指标列表,其中,指标列表中存储目标任务对应的第二任务指标,所述第二任务指标包括任务名称、任务类型、上一次任务执行人、任务执行人所属团队、任务所属类型、作业标识中的至少一项;
根据所述第二任务指标和告警配置规则,获取所述目标任务列表的预警信息,其中,所述预警信息包括预警内容和目标用户终端。
第三方面,本发明实施例提供一种基于k8s的Flink任务多集群监控告警设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的Flink任务多集群监控告警方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的Flink任务多集群监控告警方法。
本申请提供的基于k8s的Flink任务多集群监控告警方法及设备,响应于管理员在前端页面输入的监控请求信息,从监控请求信息中获取Flink集群的集群标识和监控类型;根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称;根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;本实施例提供的方法,通过在前端页面输入待监控集群的标识和监控类型,无需修改监控程序的代码,即可完成监控程序的部署,降低了监控部署的人工成本。在k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,完成待监控集群中异常flink任务的预警。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法的架构示意图;
图2为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图一;
图3为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图二;
图4为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图三;
图5为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图四;
图6为本发明实施例提供的基于k8s的Flink任务多集群监控告警设备的结构示意图一;
图7为本发明实施例提供的基于k8s的Flink任务多集群监控告警设备的结构示意图二;
图8为本发明实施例提供的基于k8s的Flink任务多集群监控告警设备的硬件示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先对本申请所涉及的名词进行解释:
Stream Park,是一种流处理应用开发框架和操作管理平台,Stream Park提供专业的作业管理平台,包括不限于作业开发、调试交互查询、部署、操作和运维。基于StreamPark,开发者可以轻松构建和管理流处理应用程序,更好地使用Flink编写流处理应用程序的开发框架。
K8s(全称Kubernetes),是一个用于自动部署、扩展和管理容器化应用程序的开源平台。Kubernetes为容器化应用程序提供了一种标准的、统一的管理和编排机制,从而使应用程序的部署和管理变得更加简单和可靠。K8s核心组件包括:API Server:Kubernetes的中心控制器,负责管理和操作整个系统中的资源对象。etcd:一个高可用的键值存储系统,用于存储Kubernetes的配置信息和状态信息。Controller Manager:负责管理控制器对象,如副本集、部署和服务。Scheduler:负责将新的Pod分配给可用的Node,并根据资源需求和调度策略进行调度。kubelet:负责在每个Node上运行容器,并与API Server交互以确保容器的状态和健康状况。kube-proxy:负责在Kubernetes集群中实现服务发现和负载均衡。通过Kubernetes,用户可以轻松地管理和扩展容器化应用程序,快速构建高可用性、可伸缩性和弹性的分布式系统。同时,Kubernetes还提供了丰富的API和插件机制,允许用户根据自己的需求进行扩展和定制。
Yarn,是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)。ResourceManager负责所有资源的监控、分配和管理;ApplicationMaster负责每一个具体应用程序的调度和协调。NodeManager负责每一个节点的维护。对于所有的applications,RM拥有绝对的控制权和对资源的分配权。而每个AM则会和RM协商资源,同时和NodeManager通信来执行和监控Flink任务。
Nacos,是Dynamic Naming and Configuration Service的首字母简称,Nacos是个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
随着Flink作业的成熟发展,随之出现了较为实用的流处理应用开发管理框架Stream Park,该开源项目弥补了没有针对Flink和Spark作业的部署管理平台的痛点。Stream Park提供专业的作业管理平台,包括不限于作业开发、调试交互查询、部署、操作、运维等。基于Stream Park,开发者可以轻松构建和管理流处理应用程序,更好地使用Apache Flink编写流处理应用程序的开发框架。
然而,目前的Stream Park平台,只支持单集群作业管理,部署多个Stream Park平台,才能够支持多个集群作业管理。而目前,业务越来越复杂,Flink作业在不同的集群中运行十分重要,目前已有的采集任务状态并告警的监控程序同样只支持指定配置的StreamPark平台。针对每一个Stream Park平台的监控,都需要修改监控程序的代码,在进行多集群监控时需要修改大量代码,成本较高。
针对上述问题,本发明设计了一种基于k8s的Flink任务多集群监控告警方法,该方法通过统一的监控管理平台,根据待监控的Flink集群标识以及监控类型自动生成对应的监控程序,减少了人工修改监控程序代码的时间成本,进而在k8s中部署监控程序,以完成对Flink任务的监控告警。
图1为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法的架构示意图,如图1所示,本实施例提供的架构示意图包括Flink集群、Stream Park、k8s和监控管理平台,其中,Stream Park提供专业的作业管理平台,包括作业开发、调试交互查询、部署、操作、运维等,在本实施例中,由Stream Park平台对Flink集群进行管理,在Stream Park配置任务指标,监控管理平台获取管理员的监控请求后,由监控管理平台在k8s中部署相应的监控程序,针对每一个Flink集群对应的监控项目,在k8s中创建一个pod,并在pod中运行监控程序,监控程序具体用于获取Stream Park关于被监控集群的任务指标,并根据任务指标确定需要告警的目标任务。
图2为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图一,本实施例的方法流程可由图1实施例中的监控管理平台执行,如图2所示,该方法包括:
S201、响应于管理员在前端页面输入的监控请求信息,从所述监控请求信息中获取Flink集群的集群标识和监控类型;
在本申请实施例中,监控类型包括失活监控类型和/或重启监控类型,在管理员有对Flink集群的监控需求后,通过在监控管理平台的前端页面发起监控请求信息,监控管理平台响应于管理员的监控请求信息,从监控请求信息中获取待监控的Flink集群的集群标识和需要监控的类型。
S202、根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,所述管理配置信息包括用于管理所述Flink集群的Stream Park的配置信息,所述目标监控程序为监控所述Flink集群的程序,所述Stream Park用于配置并存储任务指标;
管理配置信息包括用于管理待监控Flink集群的Stream Park平台的配置信息,通过管理配置信息,可以在运行监控程序时获取Stream Park平台上关于对应Flink集群的任务指标。目标监控程序模板用于编写目标监控程序,目标监控程序为监控Flink集群的程序,Stream Park用于配置并存储对应Flink集群的任务指标。在具体实现过程中,通过集群标识获取对应的管理配置信息,并根据管理员输入的监控类型获取对应的目标监控程序模板,然后根据管理配置信息和目标监控程序模板,得到目标监控程序和监控程序的名称。
S203、根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;
k8s(Kubernetes)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。若要在Kubernetes中部署监控程序,需要先编写执行文件,然后通过运行执行文件中的命令来部署对应的应用程序。在本实施例中,通过目标监控程序名称编写目标执行文件之后,执行目标执行文件中的指令以将目标监控程序部署在k8s中。
S204、在所述k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,所述目标任务列表包括基于所述任务指标确定的需要预警的目标任务。
在具体实现过程中,在目标监控程序部署完成的情况下,响应于用户启动目标监控程序的请求,部署在k8s中的目标监控程序开始运行。进一步,获取目标监控程序输出的目标任务列表,目标任务列表中存储有目标监控程序根据获取到的任务指标确定的需要预警的目标任务,根据目标任务和任务指标生成预警信息,然后获取目标任务对应的用户终端,将预警信息发送至目标任务对应的用户终端。
本实施例提供的基于k8s的Flink任务多集群监控告警方法,响应于管理员在前端页面输入的监控请求信息,从监控请求信息中获取Flink集群的集群标识和监控类型;根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称;根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;本实施例提供的方法,通过在前端页面输入待监控集群的标识和监控类型,无需修改监控程序的代码,即可完成监控程序的部署,降低了监控部署的人工成本。在k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,完成待监控集群中异常flink任务的预警。
图3为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图二,如图3所示,本实施例在上述在图2实施例的基础上,对Flink任务多集群监控告警方法进行详细说明,该方法包括:
S301、根据所述集群标识从集群配置映射表中获取所述集群标识对应的管理配置信息;
如图1实施例所示,Flink集群由Stream Park平台进行作业管理,监控程序需要获取Stream Park的配置信息才能获取Stream Park平台上关于Flink集群的各项任务指标,另外,Flink集群运行在yarn模型上,监控程序需要获取集群对应的yarn模型的配置信息才能获取集群运行状态方面的指标。因此,在部署监控程序之前,需要先获取集群标识对应的管理配置信息,其中,管理配置信息包括,Stream Park的配置信息和yarn模型的配置信息,Stream Park的配置信息包括Stream Park数据库的配置信息和Stream Park地址的配置信息。在具体实现过程中,可以根据集群标识从集群配置映射表中获取集群标识对应的管理配置信息。
S302、在Nacos配置中心获取所述监控类型所属的目标命名空间,在所述目标命名空间中为所述Flink集群新建一个组,将所述管理配置信息存储至新创建的组中,并获取新创建的组的组名;
在本实施例中,为方便管理集群标识对应的管理配置信息,可以将管理配置信息以键值对的形式存储在Nacos配置中心。示例性的,根据监控类型在Nacos所属的目标命名空间中新建一个组,并将管理配置信息的键值对存储至新创建的组中,并获取新创建的组的组名。
S303、根据所述监控类型从监控程序库中获取所述监控类型对应的目标监控程序模板;
S304、根据所述集群标识、目标命名空间、组名和目标监控程序模板,得到目标监控程序。
具体的,监控程序库中存储对Flink集群的各种监控程序,根据管理员输入的监控类型从监控程序库中获取监控类型对应的目标程序模板。进一步,根据集群标识、管理配置信息和目标监控程序模板,获取目标监控程序。在本实施例中,管理配置信息存储在Nacos的配置中心,可以根据集群标识、目标命名空间、组名和目标监控程序模板得到目标监控程序。
S305、根据监控程序名称编写规则获取目标监控程序名称。
进一步,根据监控程序名称编写规则获取目标监控程序名称,例如,监控程序名称编写规则可以为“集群标识_监控类型”。
本实施例提供的基于k8s的Flink任务多集群监控告警方法,根据集群标识从集群配置映射表中获取集群标识对应的管理配置信息,将管理配置信息存储至Nacos中,以便于对管理配置信息的管理;并根据集群标识、目标命名空间、组名和目标监控程序模板,得到目标监控程序,降低了修改监控程序需要付出的人工成本,提高了监控部署效率。
图4为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图三,如图4所示,本实施例在上述在图2实施例的基础上,对目标执行文件的编写流程进行详细说明,该方法包括:
S401、获取预存的执行文件模板,其中,所述执行文件模板包括yaml文件模板和dockerfile文件模板;
S402、根据所述目标监控程序名称和yaml文件模板,得到目标yaml文件;
执行文件模板用于编写目标监控程序对应的执行文件,通过执行文件,可以在k8s中部署目标监控程序。具体的,执行文件模板包括yaml文件模板和dockerfile文件模板,其中,在使用k8s创建pod时,可以使用yaml文件进行定义和配置,在本实施例中,可以通过目标监控程序名称和yaml文件模板得到目标yaml文件,以在k8s中创建执行目标监控程序的pod。示例性的,yaml文件模板如下:
Kind:Deployment
apiVersion:apps/v1
metadata:
name:“目标监控程序名称”
labels:
app:“目标监控程序名称”
……
在具体实现过程中,将目标监控程序名称填充至yaml文件的对应位置中以得到目标yaml文件。
S403、随机生成预设位数的号码,将所述号码作为端口号;
S404、将所述端口号、集群标识和监控类型存储至端口服务映射表;
S405、根据所述端口号、目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件。
在本实施例中,dockerfile文件需要设置端口号,通过随机生成预设位数的号码作为目标监控程序的端口号,并将端口号、集群标识和监控类型存储至端口服务映射表。通过端口号、目标监控程序名称和dockerfile文件模板生成目标dockerfile文件。示例性的,dockerfile文件模板中包括EXPOSE指令,通过EXPOSE指令使该pod中的监控程序与对应端口进行交互;或者,通过ADD指令,将目标监控程序名称对应的目标监控程序复制到pod中以部署目标监控程序。
S406、根据所述目标yaml文件和所述目标dockerfile文件,获取目标执行文件,所述目标yaml文件用于在k8s中创建pod,所述目标dockerfile文件用于在所述pod中运行目标监控程序。
根据目标yaml文件和目标dockerfile文件获取目标执行文件,具体的,目标yaml文件用于在k8s中创建一个pod,目标dockerfile文件用于在该pod中运行目标监控程序。
本实施例提供的基于k8s的Flink任务多集群监控告警方法,通过执行文件模板以及目标监控程序名称自动生成目标执行文件,通过目标执行文件在k8s中部署目标监控程序,减少了管理员进行人工部署监控程序的成本,提高了部署效率。另一方面,本实施例将监控程序部署在k8s中,可以在k8s中为每个pod指定所需的资源和限制,有效避免了资源的浪费。
图5为本发明实施例提供的基于k8s的Flink任务多集群监控告警方法流程图四,本实施例是在监控程序部署完成之后,对监控程序的启动流程进行详细说明,如图5所示,该方法包括:
S501、获取需要监控的Flink集群的集群标识和监控类型;
S502、根据所述集群标识和监控类型,在所述端口服务映射表中筛选目标端口;
在启动监控程序时,用户可以在监控管理平台输入需要监控的Flink集群的集群标识和监控类型,进一步,通过集群标识和监控类型在端口服务映射表中筛选对应的目标端口。
S503、根据目标端口启动目标端口对应的目标监控程序。
目标端口用于标识需要监控的Flink集群的集群标识和监控类型对应的目标监控程序,通过目标端口即可启动目标端口对应的目标监控程序,实现了通过启动不同的端口号启动不同的监控程序。
在一种可能的设计中,所述目标监控程序用于:基于所述监控类型监控Flink集群的任务,并基于从所述Stream Park获取的第一任务指标,确定需要预警的目标任务,并生成目标任务列表;其中,所述第一任务指标用于指示进行预警的阈值信息;
根据所述目标任务列表,从所述Stream Park获取目标任务对应的指标列表,其中,指标列表中存储目标任务对应的第二任务指标,所述第二任务指标包括任务名称、任务类型、上一次任务执行人、任务执行人所属团队、任务所属类型、作业标识中的至少一项;
根据所述第二任务指标和告警配置规则,获取所述目标任务列表的预警信息,其中,所述预警信息包括预警内容和目标用户终端。
具体的,目标监控程序根据监控类型监控Flink集群的任务,并根据Stream Park获取到的第一任务指标确定需要预警的目标任务,其中,第一任务指标用于指示进行预警的阈值信息,当获取到的第一任务指标属于需要预警的阈值范围时,对应的Flink任务需要进行预警,并生成目标任务列表。
进一步,根据目标任务列表上的目标任务,从Stream Park管理平台获取目标任务对应的第二任务指标,其中,第二任务指标包括任务名称、任务类型、上一次任务执行人、任务执行人所属团队、任务所属类型、作业标识中的至少一项;
进一步,根据第二任务指标和告警配置规则生成目标任务列表对应的预警信息。具体的,预警信息包括预警内容和目标用户终端。示例性的,告警配置规则包括指定告警人员和告警频次等信息,并生成告警短信。告警内容包括:Flink任务名称【集群1】【任务类型】【执行人XXX】当前状态Killed。
图6为本发明实施例提供的基于k8s的Flink任务多集群监控告警设备的结构示意图一。如图6所示,该Flink任务多集群监控告警设备60包括:获取模块601、监控程序编写模块602、执行文件编写模块603和预警模块604。
获取模块601,用于响应于管理员在前端页面输入的监控请求信息,从所述监控请求信息中获取Flink集群的集群标识和监控类型;
监控程序编写模块602,用于根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,所述管理配置信息包括用于管理所述Flink集群的Stream Park的配置信息,所述目标监控程序为监控所述Flink集群的程序,所述StreamPark用于配置并存储任务指标;
执行文件编写模块603,用于根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;
预警模块604,用于在所述k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,所述目标任务列表包括基于所述任务指标确定的需要预警的目标任务。
在一种可能的设计中,所述监控程序编写模块602具体用于:
根据所述集群标识从集群配置映射表中获取所述集群标识对应的管理配置信息,其中,所述管理配置信息包括所述Stream Park的配置信息和yarn模型的配置信息,所述Stream Park的配置信息包括Stream Park数据库的配置信息和Stream Park地址的配置信息,其中,所述Flink集群运行在所述yarn模型中,所述Stream Park的配置信息用于指向管理所述Flink集群的Stream Park;
根据所述监控类型从监控程序库中获取所述监控类型对应的目标监控程序模板;
根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序;
根据监控程序名称编写规则获取目标监控程序名称。
在一种可能的设计中,所述监控程序编写模块602还具体用于:
在Nacos配置中心获取所述监控类型所属的目标命名空间,在所述目标命名空间中为所述Flink集群新建一个组,将所述管理配置信息存储至新创建的组中,并获取新创建的组的组名;
所述根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序,包括:
根据所述集群标识、目标命名空间、组名和目标监控程序模板,得到目标监控程序。
在一种可能的设计中,所述执行文件编写模块603具体用于:
获取预存的执行文件模板,其中,所述执行文件模板包括yaml文件模板和dockerfile文件模板;
根据所述目标监控程序名称和yaml文件模板,得到目标yaml文件;
根据所述目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件;
根据所述目标yaml文件和所述目标dockerfile文件,获取目标执行文件,所述目标yaml文件用于在k8s中创建pod,所述目标dockerfile文件用于在所述pod中运行目标监控程序。
在一种可能的设计中,所述执行文件编写模块603还具体用于:
随机生成预设位数的号码,将所述号码作为端口号;
将所述端口号、集群标识和监控类型存储至端口服务映射表;
根据所述端口号、目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件。
本实施例提供的设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图7为本发明实施例提供的基于k8s的Flink任务多集群监控告警设备的结构示意图二。如图7所示,本实施例在图6实施例的基础上,还包括:程序启动模块605。
在一种可能的设计中,所述程序启动模块605用于:
获取需要监控的Flink集群的集群标识和监控类型;
根据所述集群标识和监控类型,在所述端口服务映射表中筛选目标端口;
根据目标端口启动目标端口对应的目标监控程序。
在一种可能的设计中,所述目标监控程序用于:基于所述监控类型监控Flink集群的任务,并基于从所述Stream Park获取的第一任务指标,确定需要预警的目标任务,并生成目标任务列表;其中,所述第一任务指标用于指示进行预警的阈值信息;
根据所述目标任务列表,从所述Stream Park获取目标任务对应的指标列表,其中,指标列表中存储目标任务对应的第二任务指标,所述第二任务指标包括任务名称、任务类型、上一次任务执行人、任务执行人所属团队、任务所属类型、作业标识中的至少一项;
根据所述第二任务指标和告警配置规则,获取所述目标任务列表的预警信息,其中,所述预警信息包括预警内容和目标用户终端。
本实施例提供的设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图8为本发明实施例提供的基于k8s的Flink任务多集群监控告警设备的硬件示意图。如图8所示,本实施例提供的基于k8s的Flink任务多集群监控告警设备80包括:至少一个处理器801和存储器802。该设备80还包括通信部件803。其中,处理器801、存储器802以及通信部件803通过总线804连接。
在具体实现过程中,至少一个处理器801执行所述存储器802存储的计算机执行指令,使得至少一个处理器801执行如上基于k8s的Flink任务多集群监控告警方法。
处理器801的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图8所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上基于k8s的Flink任务多集群监控告警方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备80中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于k8s的Flink任务多集群监控告警方法,其特征在于,所述方法包括:
响应于管理员在前端页面输入的监控请求信息,从所述监控请求信息中获取Flink集群的集群标识和监控类型;
根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,所述管理配置信息包括用于管理所述Flink集群的Stream Park的配置信息,所述目标监控程序为监控所述Flink集群的程序,所述Stream Park用于配置并存储任务指标;
根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;
在所述k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,所述目标任务列表包括基于所述任务指标确定的需要预警的目标任务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,包括:
根据所述集群标识从集群配置映射表中获取所述集群标识对应的管理配置信息,其中,所述管理配置信息包括所述Stream Park的配置信息和yarn模型的配置信息,所述Stream Park的配置信息包括Stream Park数据库的配置信息和Stream Park地址的配置信息,其中,所述Flink集群运行在所述yarn模型中,所述Stream Park的配置信息用于指向管理所述Flink集群的Stream Park;
根据所述监控类型从监控程序库中获取所述监控类型对应的目标监控程序模板;
根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序;
根据监控程序名称编写规则获取目标监控程序名称。
3.根据权利要求2所述的方法,其特征在于,所述根据所述集群标识从集群配置映射表中获取所述集群标识对应的管理配置信息之后,所述方法还包括:
在Nacos配置中心获取所述监控类型所属的目标命名空间,在所述目标命名空间中为所述Flink集群新建一个组,将所述管理配置信息存储至新创建的组中,并获取新创建的组的组名;
所述根据所述集群标识、所述管理配置信息和所述目标监控程序模板,得到目标监控程序,包括:
根据所述集群标识、目标命名空间、组名和目标监控程序模板,得到目标监控程序。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标监控程序名称编写目标执行文件,包括:
获取预存的执行文件模板,其中,所述执行文件模板包括yaml文件模板和dockerfile文件模板;
根据所述目标监控程序名称和yaml文件模板,得到目标yaml文件;
根据所述目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件;
根据所述目标yaml文件和所述目标dockerfile文件,获取目标执行文件,所述目标yaml文件用于在k8s中创建pod,所述目标dockerfile文件用于在所述pod中运行目标监控程序。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件,包括:
随机生成预设位数的号码,将所述号码作为端口号;
将所述端口号、集群标识和监控类型存储至端口服务映射表;
根据所述端口号、目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件。
6.根据权利要求5所述的方法,其特征在于,所述根据所述端口号、目标监控程序名称和dockerfile文件模板,得到目标dockerfile文件之后,所述方法还包括:
获取需要监控的Flink集群的集群标识和监控类型;
根据所述集群标识和监控类型,在所述端口服务映射表中筛选目标端口;
根据目标端口启动目标端口对应的目标监控程序。
7.根据权利要求1所述的方法,其特征在于,所述目标监控程序用于:基于所述监控类型监控Flink集群的任务,并基于从所述Stream Park获取的第一任务指标,确定需要预警的目标任务,并生成目标任务列表;其中,所述第一任务指标用于指示进行预警的阈值信息;
根据所述目标任务列表,从所述Stream Park获取目标任务对应的指标列表,其中,指标列表中存储目标任务对应的第二任务指标,所述第二任务指标包括任务名称、任务类型、上一次任务执行人、任务执行人所属团队、任务所属类型、作业标识中的至少一项;
根据所述第二任务指标和告警配置规则,获取所述目标任务列表的预警信息,其中,所述预警信息包括预警内容和目标用户终端。
8.一种基于k8s的Flink任务多集群监控告警设备,其特征在于,包括:
获取模块,用于响应于管理员在前端页面输入的监控请求信息,从所述监控请求信息中获取Flink集群的集群标识和监控类型;
监控程序编写模块,用于根据所述集群标识获取管理配置信息,根据所述监控类型获取目标监控程序模板,并根据所述管理配置信息和所述目标监控程序模板,得到目标监控程序以及目标监控程序名称,所述管理配置信息包括用于管理所述Flink集群的StreamPark的配置信息,所述目标监控程序为监控所述Flink集群的程序,所述Stream Park用于配置并存储任务指标;
执行文件编写模块,用于根据所述目标监控程序名称编写目标执行文件,根据所述目标执行文件在k8s中部署所述目标监控程序;
预警模块,用于在所述k8s中的目标监控程序运行后,获取所述目标监控程序输出的目标任务列表,并基于所述任务指标向所述目标任务列表对应的用户终端发送预警信息,所述目标任务列表包括基于所述任务指标确定的需要预警的目标任务。
9.一种基于k8s的Flink任务多集群监控告警设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的基于k8s的Flink任务多集群监控告警方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的基于k8s的Flink任务多集群监控告警方法。
CN202410212887.4A 2024-02-27 2024-02-27 基于k8s的Flink任务多集群监控告警方法及设备 Pending CN118132395A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410212887.4A CN118132395A (zh) 2024-02-27 2024-02-27 基于k8s的Flink任务多集群监控告警方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410212887.4A CN118132395A (zh) 2024-02-27 2024-02-27 基于k8s的Flink任务多集群监控告警方法及设备

Publications (1)

Publication Number Publication Date
CN118132395A true CN118132395A (zh) 2024-06-04

Family

ID=91245227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410212887.4A Pending CN118132395A (zh) 2024-02-27 2024-02-27 基于k8s的Flink任务多集群监控告警方法及设备

Country Status (1)

Country Link
CN (1) CN118132395A (zh)

Similar Documents

Publication Publication Date Title
RU2429529C2 (ru) Динамическое конфигурирование, выделение и развертывание вычислительных систем
US10505830B2 (en) Container monitoring configuration deployment
US9851989B2 (en) Methods and apparatus to manage virtual machines
US8117641B2 (en) Control device and control method for information system
WO2020253079A1 (zh) 基于Jmeter的分布式性能测试方法、装置、设备及存储介质
US9880827B2 (en) Managing software version upgrades in a multiple computer system environment
CN113296792B (zh) 存储方法、装置、设备、存储介质和系统
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN113037794B (zh) 计算资源配置调度方法、装置及系统
US20170322826A1 (en) Setting support program, setting support method, and setting support device
CN112416581B (zh) 定时任务的分布式调用系统
US20170123777A1 (en) Deploying applications on application platforms
CN109788068B (zh) 心跳状态信息上报方法、装置和设备及计算机存储介质
CN111343219B (zh) 计算服务云平台
CN113448837B (zh) 开发及测试环境部署方法、系统、电子设备及介质
CN113204353B (zh) 一种大数据平台组件部署方法及装置
CN113448686B (zh) 一种资源部署方法、装置、电子设备及存储介质
CN111831567B (zh) 应用的测试环境配置方法、装置、系统和介质
CN110971439A (zh) 策略决策方法及装置、系统、存储介质、策略决策单元及集群
CN114253459A (zh) 创建持久数据卷的方法、装置和服务器
CN118132395A (zh) 基于k8s的Flink任务多集群监控告警方法及设备
CN116107694A (zh) k8s子集群的部署方法、装置及存储介质
CN115632944A (zh) 一种节点配置方法、装置、设备、可读存储介质及服务器
CN115080309A (zh) 数据备份系统、方法、存储介质以及电子设备
CN114662102A (zh) 一种文件处理方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination