基于nomad的告警自动修复系统及方法与流程

文档序号:32055778发布日期:2022-11-04 21:19阅读:93来源:国知局
基于nomad的告警自动修复系统及方法与流程

1.本发明涉及云计算技术领域,具体地说是基于nomad的告警自动修复系统及方法。


背景技术:

2.随着云计算、数字化转型的普及以及微服务作为软件设计首选的架构,一个成熟的系统通常包含的服务/微服务数量逐渐增多,相应地,系统中的监控告警平台会尽可能详尽地记录各个服务微服务的运行状态和告警数据。总体来说,告警数量达到一定程度或者告警短时间内集中爆发的场景,很难通过人工的方式快捷的排障,且人工运维存在大量成本高效率低重复性的情况。
3.如何自动化的实现告警自动修复,是需要解决的技术问题。


技术实现要素:

4.本发明的技术任务是针对以上不足,提供基于nomad的告警自动修复系统及方法,来解决如何自动化的实现告警自动修复的技术问题。
5.第一方面,本发明的一种基于nomad的告警自动修复系统,包括:
6.operator组件,所述operator组件提供有云原生方式的交互界面,用于支持用户编写告警处理逻辑;
7.中心server组件,所述中心server组件用于轮询告警信息,并将告警信息与告警处理逻辑匹配组装为nomad可执行的任务;
8.nomad,集群中每个节点均配置有nomad,集群中配置有nomad的master节点作为nomadserver节点,集群中配置有nomad的master节点和worker节点作为nomadagent节点,所述nomadserver节点用于通过nomad为中心server组件提供接口调用、并对中心server组件下发的任务进行调度,所述nomadserver节点用于通过nomad接收并执行任务,并通过nomad记录任务执行详情、形成任务执行结果并向中心server组件返回任务执行结果;
9.数据库,所述数据库与所述中心server组件交互,用于存储告警信息、任务执行详情以及任务执行结果。
10.作为优选,所述告警处理逻辑为能够固化的重复执行类告警修复逻辑;
11.所述告警处理逻辑包括如下调度规则:
12.随机规则,对于可由任意节点执行的任务,随机选择一个节点执行;
13.广播规则,对于需要所有节点同时执行且等待全部结束的任务,将对用的可执行任务广播至所有节点;
14.指定规则,对于需要指定节点执行的任务,通过类似label selector筛选匹配的节点。
15.作为优选,对于每个告警处理逻辑,所述中心server组件用于基于nomad中job单元规定的语法格式将告警处理逻辑和与其对应的脚本和参数值渲染为json格式的报文;
16.对于轮询到的告警信息,所述中心server组件用于为告警信息匹配对应的告警处
理逻辑,并基于对应的告警处理逻辑匹配对应的报文,将所述告警信息对应的报文以及参数值作为可执行的任务,调用由nomadserver节点提供的接口、并触发nomadserver节点通过nomad调度任务。
17.作为优选,对于所述json格式的报文,其中包含的脚本支持jav格式、shell格式、python以及exec格式。
18.更优的,还包括:
19.前端展示模块,所述前端展示模块与数据库交互,并通过前端页面与用户交互,用于通过任务执行列表的形式展示执行的任务,并用于支持查询和展示每个任务对应的告警信息、任务执行详情以及任务执行结果。
20.第二方面,本发明的一种基于nomad的告警自动修复方法,通过如第一方面任一项所述的基于nomad的告警自动修复系统进行告警自动修复,所述方法包括如下步骤:
21.集群中每个节点上均配置nomad,将集群中配置有nomad的master节点作为nomadserver节点,将集群中配置有nomad的master节点和worker节点作为nomadagent节点;
22.通过operator组件编写告警处理逻辑;
23.从集群中轮询告警信息,将告警信息与告警处理逻辑匹配组装为nomad可执行的任务;
24.对于所述任务,调用nomadserver节点提供的接口触发nomadserver节点调度任务,将任务下发至对应的nomadagent节点,对应的nomadagent节点通过nomad接收并执行任务,并通过nomad记录任务执行详情、形成任务执行结果,将任务执行详情以及任务执行结果存储至数据库并向中心server组件返回任务执行结果。
25.作为优选,所述告警处理逻辑为能够固化的重复执行类告警修复逻辑;
26.所述告警处理逻辑包括如下调度规则:
27.随机规则,对于可由任意节点执行的任务,随机选择一个节点执行;
28.广播规则,对于需要所有节点同时执行且等待全部结束的任务,将对用的可执行任务广播至所有节点;
29.指定规则,对于需要指定节点执行的任务,通过类似label selector筛选匹配的节点。
30.作为优选,对于每个告警处理逻辑,基于nomad中job单元规定的语法格式、通过中心server组件将告警处理逻辑和与其对应的脚本和参数值渲染为json格式的报文;
31.对于轮询到的告警信息,通过中心server组件为告警信息匹配对应的告警处理逻辑,并基于对应的告警处理逻辑匹配对应的报文,将所述告警信息对应的报文以及参数值作为可执行的任务,并调用由nomadserver节点提供的接口、触发nomadserver节点通过nomad调度任务。
32.作为优选,对于所述json格式的报文,其中包含的脚本支持jav格式、shell格式、python以及exec格式。
33.更优的,还包括如下步骤:
34.在前端页面通过任务执行列表的形式展示执行的任务,并通过前端页面对每个任务对应的告警信息、任务执行详情以及任务执行结果进行查询和展示。
35.本发明的基于nomad的告警自动修复系统及方法具有以下优点:
36.1、编写处理逻辑,将处理逻辑与脚本和参数值组装为nomad可执行的任务,借助namad的集群调度和管理功能,是分布式调度执行任务,实现了告警故障的自动修复;
37.2、对任务执行详情进行记录并将告警信息、任务执行详情以及任务执行结果存储于数据库中,可通过数据库查询指令对告警信息、任务执行详情以及任务执行结果进行查看;
38.3、通过前端页面对告警信息、任务执行详情以及任务执行结果进行查看,便于及时了解任务执行情况。
附图说明
39.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.下面结合附图对本发明进一步说明。
41.图1为实施例1基于nomad的告警自动修复系统的工作原理框图;
42.图2为实施例1基于nomad的告警自动修复方法的流程框图。
具体实施方式
43.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
44.本发明实施例提供基于nomad的告警自动修复系统及方法,用于解决如何自动化的实现告警自动修复的技术问题。
45.实施例1:
46.本发明一种基于nomad的告警自动修复系统,包括operator组件、中心server组件、nomad以及数据库。
47.operator组件提供有云原生方式的交互界面,用于支持用户编写告警处理逻辑。
48.告警修复逻辑可以大体分为两类,一类为能够固化的重复执行类,另一类为复杂的、需要人工判断分析后执行多个动作类。本实施例方法针对第一类,作为具体实施,用户按约定格式编写告警处理逻辑,除了标识具体告警的标识信息外,主体是服务方原先人工重复执行的这些脚本。
49.本实施例的告警处理逻辑中,对任务进行调度时,执行如下调度规则:
50.(1)随机规则,对于可由任意节点执行的任务,随机选择一个节点执行;
51.(2)广播规则,对于需要所有节点同时执行且等待全部结束的任务,将对用的可执行任务广播至所有节点;
52.(3)指定规则,对于需要指定节点执行的任务,通过类似label selector筛选匹配的节点。
53.中心server组件用于轮询告警信息,并将告警信息与告警处理逻辑匹配组装为
nomad可执行的任务。
54.作为具体实施,中心server组件轮询告警信息,匹配告警信息和编写的告警处理逻辑,根据nomadjob的语法格式要求,将处理逻辑、脚本以及参数值渲染成json格式的报文。
55.集群中每个节点均配置有nomad,集群中配置有nomad的master节点作为nomadserver节点,集群中配置有nomad的master节点和worker节点作为nomadagent节点,nomadserver节点用于通过nomad为中心server组件提供接口调用、并对中心server组件下发的任务进行调度,所述nomadserver节点用于通过nomad接收并执行任务,并通过nomad记录任务执行详情、形成任务执行结果并向中心server组件返回任务执行结果。
56.即中心server组件生成报文后,调用nomadserver节点提供的接口,触发nomadserver节点调度任务,将任务下发至对应的nomadagent节点,对应的nomadagent节点通过nomad接收任务并执行任务,将生成的任务执行结果返回中心server组件并存储值数据库,同时记录任务执行详情并将任务执行详情记录值数据库中。
57.数据库与所述中心server组件交互,用于存储告警信息、任务执行详情以及任务执行结果。
58.本实施例中nomad作为集群管理器和调度器,可调度多种任务类型,在定时调度和工作流调度中支持基于多语言的多种任务类型,包括如下类型:
59.(1)java:可以在用户进程中执行,也可以通过上传jar包动态加载。详情请参见java任务;
60.(2)shell:前端直接写shell脚本。详情请参见脚本任务。
61.(3)python:前端直接写python脚本,需要python环境。详情请参见脚本任务。
62.(4)自定义exec:可以自定义实现一个exec,部署在目标节点上即可。
63.同时,nomad具有如下优点:
64.支持分布式调度,提供简单、易用的分布式编程模型;
65.资源管理和任务优先级,可以控制job占用的cpu、内存等资源。
66.作为本实施例改进,该系统还包括前端展示模块,其与数据库交互,并通过前端页面与用户交互,用于通过任务执行列表的形式展示执行的任务,并用于支持查询和展示每个任务对应的告警信息、任务执行详情以及任务执行结果。
67.基于该前端页面,该系统提供如下服务:
68.(1)提供了job执行记录和执行列表,可以看到每个任务job详情、执行历史,并提供操作;
69.(2)查看日志:每次执行的调度任务都可以在详情中查看运行日志,提供执行结果,如果任务执行失败,可以查看任务实例详情;
70.(3)停止调度任务:job运行过程中,如果发现有误,可以停止正在运行的任务,甚至子任务。
71.本实施例的系统能够实现自动化的分布式的告警自动修复,故障自愈。相较于传统的人工运维,人工解除告警,能够极大地将运维人员从重复性的工作中解放出来,专心于沉淀知识库,将平时的运维经验固化下来,降低人工成本,提高运维效率。
72.实施例2:
73.本发明一种基于nomad的告警自动修复方法,通过实施例公开的告警自动修复系统进行告警自动修复,该方法包括如下步骤:
74.s100、集群中每个节点上均配置nomad,将集群中配置有nomad的master节点作为nomadserver节点,将集群中配置有nomad的master节点和worker节点作为nomadagent节点;
75.s200、通过operator组件编写告警处理逻辑;
76.s300、从集群中轮询告警信息,将告警信息与告警处理逻辑匹配组装为nomad可执行的任务;
77.s400、对于所述任务,调用nomadserver节点提供的接口触发nomadserver节点调度任务,将任务下发至对应的nomadagent节点,对应的nomadagent节点通过nomad接收并执行任务,并通过nomad记录任务执行详情、形成任务执行结果,将任务执行详情以及任务执行结果存储至数据库并向中心server组件返回任务执行结果。
78.告警修复逻辑可以大体分为两类,一类为能够固化的重复执行类,另一类为复杂的、需要人工判断分析后执行多个动作类。本实施例步骤s200编写的告警处理逻辑针对第一类,作为具体实施,用户按约定格式编写告警处理逻辑,除了标识具体告警的标识信息外,主体是服务方原先人工重复执行的这些脚本。
79.本实施例的告警处理逻辑中,对任务进行调度时,执行如下调度规则:
80.(1)随机规则,对于可由任意节点执行的任务,随机选择一个节点执行;
81.(2)广播规则,对于需要所有节点同时执行且等待全部结束的任务,将对用的可执行任务广播至所有节点;
82.(3)指定规则,对于需要指定节点执行的任务,通过类似label selector筛选匹配的节点。
83.步骤s300通过中心server组件轮询告警信息,匹配告警信息和编写的告警处理逻辑,根据nomadjob的语法格式要求,将处理逻辑、脚本以及参数值渲染成json格式的报文。
84.步骤s400中心server组件生成报文后,调用nomadserver节点提供的接口,触发nomadserver节点调度任务,将任务下发至对应的nomadagent节点,对应的nomadagent节点通过nomad接收任务并执行任务,将生成的任务执行结果返回中心server组件并存储值数据库,同时记录任务执行详情并将任务执行详情记录值数据库中。
85.本实施例中nomad作为集群管理器和调度器,可调度多种任务类型,在定时调度和工作流调度中支持基于多语言的多种任务类型,包括如下类型:
86.(1)java:可以在用户进程中执行,也可以通过上传jar包动态加载。详情请参见java任务;
87.(2)shell:前端直接写shell脚本。详情请参见脚本任务。
88.(3)python:前端直接写python脚本,需要python环境。详情请参见脚本任务。
89.(4)自定义exec:可以自定义实现一个exec,部署在目标节点上即可。
90.同时,nomad具有如下优点:
91.支持分布式调度,提供简单、易用的分布式编程模型;
92.资源管理和任务优先级,可以控制job占用的cpu、内存等资源。
93.作为本实施例改进,该方法还包括如下步骤:
94.s500、在前端页面通过任务执行列表的形式展示执行的任务,并通过前端页面对每个任务对应的告警信息、任务执行详情以及任务执行结果进行查询和展示。
95.基于该前端页面,该方法提供如下服务:
96.(1)提供了job执行记录和执行列表,可以看到每个任务job详情、执行历史,并提供操作;
97.(2)查看日志:每次执行的调度任务都可以在详情中查看运行日志,提供执行结果,如果任务执行失败,可以查看任务实例详情;
98.(3)停止调度任务:job运行过程中,如果发现有误,可以停止正在运行的任务,甚至子任务。
99.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1