全面兼容扩展的智能问诊告警系统、方法及介质与流程

文档序号:29263524发布日期:2022-03-16 12:59阅读:142来源:国知局
全面兼容扩展的智能问诊告警系统、方法及介质与流程

1.本发明涉及通信技术领域,具体地,涉及一种全面兼容扩展的智能问诊告警系统、方法及介质。


背景技术:

2.未来技术中台建设数字化运维服务场景越来越复杂,不仅仅来自于prometheus告警,还有调用链告警、日志告警,未来可能会有更多接入告警的场景。不同来源的告警从处理手段上有相似点更有不同点,因此提供一套全面具有统一标准的告警中心十分有必要。
3.公开号为cn109218097a的发明专利,公开了一种云平台可配置告警规则的告警系统及告警方法,设置有告警转发api接口、告警处理模块和云平台,告警源具有统一的告警转发api接口,各告警源调用所述告警转发api接口传入告警对象,告警转发api接口将接收到的告警对象转为统一格式的告警消息,并转发给告警来源消息队列,转发失败的告警消息由api接口暂存;告警处理模块监听告警来源消息队列,获取告警消息,同时轮询暂存的告警消息;告警处理模块根据前台配置的告警规则对告警消息进行处理。
4.告警中心不仅要解决告警来源不同,产生的告警报文难以统一的问题,因此要实现告警适配层。还要解决在我们提供的全局告警模板基础上,用户期望根据自身场景做个性化配置导致的重复告警的问题。告警中心还要具备将专业性的指标汇聚成一目了然的告警诊断结论。就像看病,病人不需要知道体温多高,哪里有炎症,医生只要最终给出感冒发烧的结论,然后对症下药就好。
5.目前,现有技术中存在以下缺陷:1、告警功能单一,现有技术仅聚焦于某一技术领域的告警。本系统针对上述问题,兼容扩展了业内主流的各个领域的监控告警能力,对告警进行集中统一管控。2、大规模部署企业级监控场景下,传统方式为在部署节点修改配置的方式实现告警规则更新,告警配置管理难度会随部署复杂度直线上升。本系统针对上述问题,进行了集中管控,通过友好的配置页面,高效的路由策略,将配置规则动态下发至对应的计算节点,解决了运维难题,痛点。3、目前业内的告警不够智能,仅能根据告警严重等级保留最严重的告警,却难以从复杂场景中识别同一等级下阈值更高的告警。本系统将告警规则生成指纹(告警规则语句复杂难以比对,指纹作为告警规则语句的唯一表示,自身是简单的字符串利于比较),对指纹进行语义拆分解析,比较同一指纹下的阈值高低,保留最高阈值。进而根据指纹比对去除低阈值的告警。


技术实现要素:

6.针对现有技术中的缺陷,本发明提供一种全面兼容扩展的智能问诊告警系统、方法及介质。
7.根据本发明提供的一种全面兼容扩展的智能问诊告警系统、方法及介质,所述方案如下:
8.第一方面,提供了一种全面兼容扩展的智能问诊告警系统,所述系统包括:
9.配置管理模块、告警分组管理模块、历史告警查询模块、告警通知模块、告警文件共享盘、告警适配模块、alertmanager模块、预警代理模块以及配置文件中心;
10.其中,配置管理模块:承担告警规则动态配置,借助配置中心的能力将告警规则下发至对应的告警计算组件;
11.告警分组管理模块:承担业务系统和告警负责人以及通知渠道的绑定;
12.历史告警查询模块:统一展示各种来源告警;
13.告警通知模块:承担告警屏蔽,重复告警过滤以及进行邮件在内的相关通知功能;
14.告警文件共享盘:部署一台与数据中心可用性监控平台网络互通的服务器,挂载磁盘,磁盘卷的访问权限包含本系统负责人和数据中心相关运维人员。将告警消息以文件形式在服务器中落盘,供其他系统使用;
15.告警适配模块:实现不同格式的告警报文转换为告警中心标准的报文格式;
16.alertmanager模块:负责收集各个告警计算节点触发的告警消息,去除重复告警,对告警进行抑制合并,达到防范告警风暴的目的;
17.预警代理模块:实现从配置文件中心拉取配置文件并在本地目录替换配置文件,实现热加载;
18.配置文件中心:承担配置文件集中管控能力,实现配置文件上传与持久化,发布配置和回滚配置的能力。
19.优选的,所述告警分组管理模块具体包括:添加告警分组时从平台已录入的系统进行筛选,一个分组关联一个系统;
20.接着从企业用户平台筛选联系人,一个分组包含n个联系人;
21.然后选择触达方式,一个分组包含一种触达方式;
22.最后选择触发告警关联的告警规则,一个分组包含n条告警规则,作为扩展一个系统包含n条告警抑制规则。
23.优选的,所述历史告警查询模块具体包括:历史告警消息通过服务接口收集alertmanager发送的告警报文,对其告警报文进行丰富优化。
24.优选的,所述告警适配模块和alertmanager模块提供api接口用于接收告警报文,且告警适配模块和alertmanager模块均部署在云原生同一个pod中,申请不同的域名和端口对外提供服务。
25.第二方面,提供了一种全面兼容扩展的智能问诊告警方法,所述方法包括:
26.步骤s1:配置管理模块在文件树中将配置保存成文件,传输至配置文件中心,并通知预警代理模块获取配置文件的地址;
27.步骤s2:所述配置文件中心获取更新预警代理模块中的配置文件;
28.步骤s3:预警代理模块再更新本地模块的配置文件、调用相应接口更新配置;
29.步骤s4:若发现异常现象,对应的告警计算节点上报告警信息依次至alertmanager模块、告警通知模块,其中告警通知模块将告警消息保存成数据中心规定的告警文件,传至告警文件共享盘;
30.步骤s5:最后,由数据中心读取告警文件。
31.第三方面,提供了一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述方法中的步骤。
32.与现有技术相比,本发明具有如下的有益效果:
33.1、通过兼容扩展业内主流的各个领域的监控告警能力,取得了对告警进行集中统一管控的效果;
34.2、通过友好的配置页面,对告警配置集中管控;实现高效的路由策略,将配置规则动态下发至对应的计算节点,取得了解决运维难题、痛点的效果;
35.3、通过将告警规则生成指纹,对指纹进行语义拆分解析,比较同一指纹下的阈值高低,保留最高阈值。提高了告警精确度,取得了智能告警、智能运维的效果。
附图说明
36.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
37.图1为本发明告警中心技术架构示意图;
38.图2为告警分组管理模块中相应的功能e-r图;
39.图3为历史告警存储展示效果e-r。
具体实施方式
40.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
41.本发明实施例提供了一种全面兼容扩展的智能问诊告警系统,告警中心不限于接入监控告警、调用链告警、日志告警、云原生告警、各类中间件告警和mysql云平台告警,整合全行需要的告警信息。告警中心实现可灵活配置告警,可集中查看,可统一通知的能力。参照图1所示,该系统采用了分布式部署架构,附图最上方是告警管理中心,能力如下:
42.1.配置管理模块承担了告警规则配置管理与下发职责,本模块与配置文件中心进行通信,通过网关路由下发配置文件至对应的告警计算节点prometheus、skywalking或者elastalert(prometheus是cncf基金会开源项目,依托自主开发的时序数据库、灵活的查询语言构建的监控系统,skywalking是国内开源爱好者开源并提交到apache孵化器的产品,是一款优秀的调用链监控产品,elastalert是yelp公司开源的报警框架,用于检索日志实现告警分析)或者是告警通知处理节点alertmanager(alertmanager是cncf基金会开源项目,用于接收prometheus等客户端发来的告警,通过分组、去重等处理,将告警通过路由发送给正确的接收者)。告警计算节点所在的虚机和云原生pod(pod是kubernetes中能够创建和部署的最小单元,是kubernetes集群中的一个应用实例,pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。kubernetes是开源的用于管理云平台中多个主机上的容器化的应用,目标是让部署容器化的应用简单并且高效)中部署了预警代理模块,预警代理模块负责从配置文件中心拉取配置文件并在本地目录替换和热加载。实现了告警计算节点和告警通知处理节点动态生效告警规则的能力;
43.2.告警分组管理模块将平台中录入的系统与告警接收人、通知模板等进行绑定,实现权限隔离,保障系统负责人仅能接收自身系统的告警通知,可以通过邮件、短信等方式
接收告警;
44.3.历史告警查询模块用于告警的集中展示,根据需要进行筛选;并对已经处理过的或者不希望接收的告警进行屏蔽处理;
45.4.alertmanager模块负责收集各个告警计算节点触发的告警消息,去除重复告警,对告警进行抑制合并,达到防范告警风暴的目的;
46.5.告警通知模块是底层告警消息的路由转发模块,其职责是接收来自于alertmanager的告警消息,过滤用户期望屏蔽的告警,从告警分组模块查询告警触达的目的地并进行消息通知落地。同时与数据中心可用性监控平台协同,将告警通过文件的形式与可用性监控平台共享;
47.6.适配模块用于让alertmanager兼容不同的告警计算节点上报的告警消息报文不统一的问题,具备友好兼容未知类型的告警报文的能力。prometheus负责收集业务系统主机资源以及业务层面的监控指标,并依据下发的告警规则实时计算是否触发告警,一旦触发告警上报至适配模块。skywalking负责收集业务系统调用链方面的监控指标并计算告警;elastalert则是收集日志数据,根据日志告警规则计算告警。本系统同时扩展了其他平台的告警能力,例如云原生平台和基础技术支撑(paas)平台产生的告警。
48.图1为告警中心技术架构,该系统具体包括配置管理模块、告警分组管理模块、历史告警查询模块、告警通知模块、告警文件共享盘、告警适配模块、alertmanager模块、预警代理模块以及配置文件中心。
49.其中,配置管理模块:承担告警规则动态配置,借助配置中心的能力将告警规则下发至对应的告警计算组件;本模块与配置中心进行通信,通过网关路由下发配置文件至对应的prometheus、skywalking、elastalert或者alertmanager。告警计算节点所在的虚机和云原生pod中部署了预警代理模块,预警代理模块负责从配置文件中心拉取配置文件并在本地目录替换和热加载。实现了告警计算节点和告警通知处理节点动态生效告警规则的能力;
50.告警分组管理模块:承担业务系统和告警负责人以及通知渠道的绑定;告警分组管理模块具体地:参照图2所示,添加告警分组时从平台已录入的系统进行筛选,一个分组关联一个系统。接着从企业用户平台筛选联系人,一个分组包含n个联系人。然后选择触达方式,邮件短信等等,一个分组包含一种触达方式。最后选择触发告警关联的告警规则,一个分组包含n条告警规则。作为扩展一个系统包含n条告警抑制规则。
51.历史告警查询模块:统一展示各种来源告警;历史告警查询模块具体地:参照图3所示,历史告警消息通过服务接口收集alertmanager发送的告警报文,对其报文进行丰富优化。由于历史告警堆积量大,考虑查询性能,因此做了表的拆分,实时告警表和历史告警表。具体逻辑为涉及改动的仅在实时告警表中完成,告警处理完成则拷贝至历史告警表,仅用于查询使用。
52.告警通知模块:承担告警屏蔽,重复告警过滤(主要解决复杂场景下如何智能地保留阈值最高的告警,过滤低阈值告警的问题)以及进行邮件在内的相关通知功能;底层告警消息的路由转发模块,其职责是接收来自于alertmanager告警消息,过滤用户期望屏蔽的告警,从告警分组模块查询告警触达的目的地并进行消息通知落地。同时与数据中心可用性监控平台协同,将告警通过文件的形式与可用性监控平台共享;
53.告警文件共享盘:部署一台与数据中心可用性监控平台网络互通的服务器,挂载磁盘,磁盘卷的访问权限包含本系统负责人和数据中心相关运维人员。将告警消息以文件形式在服务器中落盘,供其他系统使用。
54.告警适配模块:实现不同格式的告警报文转换为告警中心标准的报文格式;让alertmanager兼容不同的告警计算节点上报的告警消息报文,解决了报文格式不统一的问题,友好兼容其他未知类型的告警报文。
55.alertmanager模块:负责收集各个告警计算节点触发的告警消息,去除重复告警,对告警进行抑制合并,达到防范告警风暴的目的;
56.预警代理模块:告警计算节点所在的虚机和云原生pod中部署了预警代理模块,预警代理模块负责从配置文件中心拉取配置文件并在本地目录替换和热加载。实现了告警计算节点和告警通知处理节点动态生效告警规则的能力;实现从配置文件中心拉取配置文件并在本地目录替换配置文件,实现热加载;
57.配置文件中心:承担配置文件集中管控能力,实现配置文件上传持久化,发布配置和回滚配置的能力;
58.告警适配模块和alertmanager模块提供api接口用于接收告警报文,且告警适配模块和alertmanager模块均部署在云原生同一个pod中,申请不同的域名和端口对外提供服务。本实施例中pod是kubernetes中能够创建和部署的最小单元,是kubernetes集群中的一个应用实例,总是部署在同一个节点node上,且pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。告警适配模块代码实现轻量,只负责将不同来源的报文转换为统一的形式,并且来源易于扩展。
59.本发明还提供了一种全面兼容扩展的智能问诊告警方法,该方法包括:
60.步骤s1:配置管理模块在文件树中将配置保存成文件,与配置文件中心进行通信,通过网关路由获取下发配置文件的目标地址,路由至对应的告警计算节点prometheus、skywalking、elastalert)或者是告警通知处理节点alertmanager;
61.步骤s2:所述配置文件中心存储了告警配置管理模块上传的配置文件,对配置文件实现发布和回滚操作,更新预警代理模块中的配置文件;
62.步骤s3:预警代理模块监听配置文件中心的文件变更通知,拉取配置文件,再更新替换本地模块对应目录下的配置文件、调用相应接口进行热加载,并监控各级应用的数据上报;
63.步骤s4:若发现异常现象,适配模块上报告警信息依次至alertmanager模块、告警通知模块,适配模块让alertmanager兼容不同的告警计算节点上报的告警消息报文,实现了告警报文的转换扩展。alertmanager模块负责收集各个告警计算节点触发的告警消息,去除重复告警,对告警进行抑制合并。其中告警通知模块过滤用户期望屏蔽的告警;从告警分组模块查询告警触达的目的地并进行消息通知落地;通过生成的告警规则指纹,智能语义分析指纹达到过滤低阈值告警的目的;将告警消息保存成数据中心规定的告警文件,传至告警文件共享盘,共享盘所在的服务器与数据中心网络互通;
64.步骤s5:最后,由数据中心读取告警文件,并在自身可用性监控平台中运用。
65.接下来,对本发明进行更为具体的说明。
66.自定义告警规则提供全局的模板规则和系统私有的告警规则,如果不加以限制会
出现同一个指标配置了一个全局的阈值和多个系统私有的阈值。从用户体验的角度出发,用户只希望收到指标最大阈值的告警。解决这个问题的方法有两种,具体如下:
67.(1)当用户创建新的规则,或者认为全局规则的阈值不满足需要,对阈值进行修改时,将全局规则复制一份另存为系统私有的规则。全局规则携带global标签,私有规则携带系统编号标签,告警中心识别系统是否另存为私有规则,通过标签进行告警过滤。
68.(2)为每一个告警规则生成指纹,告警阈值通过固定占位符替换。由于告警规则可以组合与或逻辑,并且创建规则时可以是a&b,也可以是b&a,因此告警规则在生成指纹前遇到或逻辑则拆分为两条规则,与逻辑不拆分。比如用户设置了一条规则c&a&b||d,a、b、c和d均为不可拆分的告警规则最小单元,例如cpu占用率》80%。拆分后的规则,可能的简化表示形式为c&a&b,指标应该按照一种自然语言顺序进行排序,最终排列为a&b&c。最后将a&b&c和d生成两个指纹,为c&a&b||d这条规则打上两个指纹的标签。需要说明的是b&a&c,a&b&c和c&a&b代表了同一种含义,三者生成的指纹相同。告警中心借助生成的指纹将相同的规则筛选出来,再对相同的规则进行阈值比较,仅保留阈值最高的告警。
69.关于清晰的告警诊断结论功能,需要在告警中心全面上线后,从实际运维,从全部项目中长期积累有价值有意义的有代表性的规则,将具有经验性指导意义的聚合指标规则归纳总结成规则库。最后将规则库进行语义分析,一组指标最终反映为一个简短的结论,让用户拿到上述结论,立刻明白系统出了什么问题,应该怎么应对解决。
70.实施原理:
71.本系统从搭建prometheus监控体系、skywalking调用链监控系统和日志采集分析系统开始,以各类数据包括但不限于主机资源、中间件资源、业务系统指标、应用jvm指标、调用链路指标、error级别日志、日志关键字检索数据为抓手,着力构造监控数据之上的告警体系。
72.首先解决的是告警规则制定的问题,通过大量调研和实践经验,初步总结了一套告警规则模板,并写死在上述三个监控体系衍生的告警计算节点中,用于触发告警,打通告警通知的完整闭环渠道。在告警通知闭环方面,由于来源有三个地方,并且考虑到后续来源可扩展,设计了一个适配模块进行告警的适配转换。告警消息入口统一之后,需要解决告警风暴的问题,因此梳理了可能产生告警风暴的风险点,包括重复告警、同一告警规则出现多个阈值告警和多个严重等级告警的问题。针对上述问题,alertmanager解决了重复告警和多个严重等级告警的问题,自主设计了解决同一告警规则出现多个阈值告警的告警指纹语义分析引擎。告警消息到达的先后顺序依次是告警计算节点-》适配模块-》alertmanager-》告警指纹语义分析引擎。过滤后的告警需要通知到相关负责人,因此开发了告警分组模块,用于维护系统、告警规则和联系人间的关系,供后续告警通知和与数据中心对接使用。这样告警通知链路单向开发完成,考虑到用户使用体验,存在人为干预忽略告警的情况,因此提供了告警屏蔽能力补充告警通知反向闭环,即指定时间范围,忽略指定的告警。
73.告警通知链路实施完成后,接下来是解决运维的痛点,就是实现集中动态下发告警规则配置的能力,因此开发了告警配置管理模块,对各类告警规则统一进行页面配置。接着解决关于配置如何在告警计算节点动态生效的问题,因为计算节点都是加载配置文件的形式实现告警规则的读取和计算。因此本阶段的重要工作是实现文件的分布式下发和本地更新。实施过程改造了配置中心下发配置的功能,实现了文件的下发。配置中心服务端发布
配置文件,客户端监听配置变更,拉取配置文件进行本地替换,这就是预警代理模块的职责。
74.最后整套系统开发完成,意味着运维朝着智能告警的迈进的开始。这一阶段主要任务是积累总结告警的实战经验,形成专家规则库,达到智能问诊的目的。
75.本发明实施例提供了一种全面兼容扩展的智能问诊告警系统、方法及介质,该发明提供了全面标准统一的告警消息展示管理入口;且告警规则灵活配置,实时动态生效;告警具有完善的去重,抑制过滤能力,避免了告警风暴,用户收到的消息优化更友好。在长期积累经验的过程中,告警中心具有总结分析输出简短结论的能力,用户不需要再理解底层含义,通过阅读友好的结论快速响应处理问题。
76.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
77.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1