掌桥专利:专业的专利平台
掌桥专利
首页

一种基于配置的告警路由系统和方法

文献发布时间:2023-06-19 10:24:22


一种基于配置的告警路由系统和方法

技术领域

本申请涉及数据库告警技术领域,特别是涉及一种基于配置的告警路由系 统和方法。

背景技术

随着数据存储方式的日渐丰富,业务场景中用到的数据库类型越来越多, 包括Mysql、ES、GP、Hive、postgreSQL等。对于监控系统而言,需要对这些 数据库中的数据按照特定业务场景的规则去做监控,并按照既定的规则完成告 警。

相关技术中,需要根据不同的数据库进行不同的告警操作,结构复杂且拓 展性不强。

目前针对相关技术中结构复杂且拓展性不强的问题,尚未提出有效的解决 方案。

发明内容

本申请实施例提供了一种基于配置的告警路由系统和方法,本发明提出的 系统是监控告警平台的告警子系统,跟据相关的路由配置完成从告警方式-告警 人-告警模板-告警路由的全流程系统,以至少解决相关技术中结构复杂及拓展 性不强的问题。

第一方面,本申请实施例提供了一种基于配置的告警路由系统,包括:

数据获取模块,基于一数据源创建指标数据采集任务,并将采集的所述指 标数据存储至一时序数据库中;

流程配置模块,根据所述数据源进行流程配置,所述流程配置包括告警规 则和告警路由的配置;

告警路由模块,接收所述指标数据基于所述告警规则判断是否发出告警信 号,并根据所述告警信号依据所述告警路由进行告警。

在其中一些实施例中还包括静默模块,所述静默模块发出信号至所述告警 路由模块,所述告警路由模块对应的一个或多个所述告警路由在一定时间内处 于静默状态。

在其中一些实施例中,所述规则还包括告警模板和告警方式的配置,其中:

所述告警模板设置为模板语言编写的模板,将所述告警信号写入所述告警 模板;

所述告警方式包括但不限于微信、邮箱、slack和webhook。

在其中一些实施例中,所述告警路由设置为树状结构,包括顶级路由和一 个或多个子路由。

在其中一些实施例中,所述告警规则包括触发条件;

所述子路由包括告警人、告警分组、分组等待时间、分组通知间隔和告警 重复间隔;

所述告警路由模块接收所述指标数据,当所述指标数据符合所述触发条件, 所述告警路由模块根据对应所述子路由采用预设的所述告警方式,将所述告警 模板发送给对应所述告警人。

在其中一些实施例中,所述告警规则设置为基于prometheus的查询语句, 所述告警规则与所述告警分组关联。

在其中一些实施例中,还包括数据源配置模块,与所述数据获取模块连接, 基于数据库类型配置对应所述数据源。

第二方面,本申请实施例提供了一种基于配置的告警路由方法,基于第一 方面所述的基于配置的告警路由系统,包括以下步骤:

数据获取步骤,基于一数据源创建指标数据采集任务,并将采集的所述指 标数据存储至一时序数据库中;

流程配置步骤,根据所述数据源进行流程配置,所述规则包括告警规则和 告警路由的配置;

告警路由步骤,接收所述指标数据基于所述告警规则判断是否发出告警信 号,并根据所述告警信号依据所述告警路由进行告警。

在其中一些实施例中,所述流程配置还包括告警方式和告警模板的配置, 其中:

所述告警模板设置为模板语言编写的模板,将所述告警信号写入所述告警 模板;

所述告警方式包括但不限于微信、邮箱、slack和webhook;

所述告警路由设置为树状结构,包括顶级路由和一个或多个子路由,所述 子路由包括告警人、告警分组、分组等待时间、分组通知间隔和告警重复间隔;

所述告警规则包括触发条件。

在其中一些实施例中,所述告警路由步骤具体包括:

所述告警路由模块将所述指标数据与所述告警规则进行对比输出告警信 号,将所述告警模板根据对应所述子路由采用所述告警方式发送给对应所述告 警人。

相比于相关技术,本申请实施例提供的基于配置的告警路由系统和方法, 通过配置告警路由,提出了完备的告警全链路系统,实现了解耦不同的告警方 式和规则,还可以无限扩展的告警方式和规则。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请 的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分, 本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限 定。在附图中:

图1是根据本申请实施例的基于配置的告警路由系统的结构框图;

图2是根据本申请实施例的基于配置的告警路由方法的流程图;

图3是根据本申请优选实施例的基于配置的告警路由方法的流程图;

图4是根据本申请实施例的告警管理模块的配置方法的流程图。

附图说明:

1、数据获取模块;2、流程配置模块;3、告警路由模块。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用 以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通 技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本 申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于 本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些 附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过 程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关 的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些 设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的 内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或 特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短 语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的 实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施 例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属 技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、 “一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复 数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形, 意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、 方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没 有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的 其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词 语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接 的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述 关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示: 单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前 后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、 “第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

Prometheus是一个容器监控平台,prometheus根据配置定时去拉取各个节 点的数据,默认使用的拉取方式是pull,也可以使用pushgateway提供的push 方式获取各个监控节点的数据。将获取到的数据存入TSDB,一款时序型数据库。 此时prometheus已经获取到了监控数据,可以使用内置的PromQL进行查询。 它的告警功能使用Alertmanager提供,Alertmanager是prometheus的告警管 理和发送告警的一个组件。prometheus原生的图标功能过于简单,可将 prometheus数据接入grafana,由grafana进行统一管理。

prometheus采集到的监控数据均以metric(指标数据)形式保存在时序数 据库中(TSDB)每一条时间序列由metric和labels组成,每条时间序列按照 时间的先后顺序存储它的样本值。默认情况下各监控client向外暴露一个HTTP 服务,prometheus会通过pull方式获取client的数据。

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依 赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器 上,也可以实现虚拟化。

Kubernetes(k8s)是为容器服务而生的一个可移植容器的编排管理工具。

将对应的数据库容器化,采用Prometheus监控平台对对应的数据源进行监 控,并将获得的数据存储至Prom时序数据库,以供后续的告警检测。

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产 生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代 以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据 管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够 进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和 决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支 持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手 段。

目前有许多数据库产品,如Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro等产品各以自己特有的功能,在数 据库市场上占有一席之地。下面简要介绍几种常用的数据库管理系统。

①Oracle数据库系统:Oracle是一个最早商品化的关系型数据库管理系 统,也是应用广泛、功能强大的数据库管理系统。Oracle作为一个通用的数据 库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支 持各种分布式功能,特别是支持Internet应用。

②Sybase数据库系统:基于Client/Server体系结构的大型网络数据库系 统。采用单线程技术进行查询,开销小,利用率高,支持分布式处理。

③MySQL:是一种典型的关系型数据库管理系统,可以在许多操作系统上 运行。与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大 动力。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序 mysqld和很多不同的客户程序和库组成,具有可靠性、可伸缩性、可用性、可 管理性等特点,为用户提供完整的数据库解决方案。

④Microsoft Access:是在Windows环境下非常流行的桌面型数据库管理 系统。使用Microsoft Access无需编写任何代码,只需通过直观的可视化操作 就可以完成大部分数据管理任务。

下面将以MySQL数据库为例对本申请实施例进行说明,将数据库容器化, 将数据的镜像布置在Docker容器上。

本实施例提供了一种基于配置的告警路由系统,本系统是告警监控系统的子系统,是独立的一整套系统,目的旨在于实现完备的告警全链路系统。如以下所 使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/ 或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件, 或者软件和硬件的组合的实现也是可能并被构想的。

图1是根据本申请实施例的基于配置的告警路由系统的结构框图,如图1 所示,该装置包括:

数据获取模块1,基于一数据源创建指标数据采集任务,并将采集的指标数 据存储至一时序数据库中;

流程配置模块2,根据数据源进行流程配置,规则包括告警规则和告警路由 的配置;

告警路由模块3,接收指标数据基于告警规则判断是否发出告警信号,并根 据告警信息依据告警路由进行告警。

在实际的应用中,根据不同的采集规则,指标采集器能采集到多项指标数 据,例如:metric_user_min_age,这项指标采集的是数据库中user表的age 字段的最小值。在告警规则模块中,设定告警规则:当metric_user_min_age<18 时引发告警。采集的指标数据会源源不断地流入prom时序数据库,再流入告警 管理系统。当某个时刻采集的指标数据小于18时,就会触发告警。

在其中一些实施例中,还包括静默模块,静默模块发出信号至告警路由模 块3,告警路由模块3对应的一个或多个告警路由在一定时间内处于静默状态。

上述静默模块可以选择性的静默告警路由,阻止发送可预期的告警,便于 协调系统的工作量,区分优先级。

在其中一些实施例中,流程配置还包括告警模板和告警方式的配置,其中:

告警模板设置为模板语言编写的模板,将告警信号写入告警模板;

告警方式包括但不限于微信、邮箱、slack和webhook。

在实际应用中,告警模板是根据go-temp late模板语言编写的,支持html 和一般的文本,拓展性强。

在其中一些实施例中,告警路由设置为树状结构,包括顶级路由和一个或 多个子路由。

在实际的应用中,每一个告警都会从配置文件中顶级路由进入路由树,需 要注意的是顶级路由必须匹配所有告警,每一个路由都可以定义自己的告警人 以及告警规则。默认情况下,告警进入到顶级route后会遍历所有的子节点, 直到找到最深的匹配子路由,并将告警发送到该子路由定义的receiver中。但 如果route中设置continue的值为false,那么告警在匹配到第一个子节点之 后就直接停止。如果continue为true,报警则会继续进行后续子节点的匹配。 如果当前告警匹配不到任何的子节点,那该告警将会基于当前子路由节点的告 警方式进行处理。

在其中一些实施例中,告警规则包括触发条件;

子路由包括告警人、告警分组、分组等待时间、分组通知间隔和告警重复 间隔;

告警路由模块3接收指标数据,当指标数据符合触发条件,告警路由模块3 根据对应子路由采用预设的告警方式,将告警模板发送给对应告警人。

上述告警人指的是一组被通知的人或物,告警分组指的是对告警通知进行 分组,将多条告警合合并为一个通知。可以使用group_by来定义分组规则。基 于告警中包含的标签,如果满足group_by中定义标签名称,那么这些告警将会 合并为一个通知发送给接收器。

分组等待时间,用于有时为了能够一次性收集和发送更多的相关信息时, 可以通过group_wait参数设置等待时间,如果在等待时间内当前group接收到 了新的告警,这些告警将会合并为一个通知向receiver发送。

分组通知间隔用于定义相同的Group之间发送告警通知的时间间隔。

需要说明的是,在本系统中,告警规则、告警方式、告警人是可以独立配 置的,并且可以配置多套,以满足不同类型或级别的告警。告警路由根据不同 告警规则的规则表达式来选择不同的告警方式、告警人和告警模板。

在实际应用中,告警规则还包括规则展示名、规则名称、规则组、评估等 待时间和附加信息设置,

将告警规则和告警分组进行关联是为了同类告警的聚合,帮助运维排查问 题;通过告警方式的合并,减少告警数量;通过分组合并,能帮助运维降低告 警数量,同时能有效聚合告警信息,帮助问题分析。

在其中一些实施例中,告警规则设置为基于prometheus的查询语句,告警 规则与告警分组关联。

通过上述将告警规则和告警分组相关联,便于将对应的告警信息分发到特 定的告警人上。

在其中一些实施例中,还包括数据源配置模块,与数据获取模块1连接, 基于数据库类型配置对应数据源。

在实际应用中,配置数据源是采集指标数据的前置条件。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以 通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言, 上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合 的形式分别位于不同的处理器中。

本实施例还提供了一种基于配置的告警路由方法。该方法应用于实现上述 实施例及优选实施方式,已经进行过说明的不再赘述。图2是根据本申请实施 例的一种基于配置的告警路由方法的流程图,如图2所示,该流程包括如下步 骤:

数据获取步骤S1,基于一数据源创建指标数据采集任务,并将采集的指标 数据存储至一时序数据库中;

流程配置步骤S2,根据数据源进行流程配置,流程配置包括告警规则和告 警路由的配置;

告警路由步骤S3,接收指标数据基于告警规则判断是否发出告警信号,并 根据告警信号依据告警路由进行告警。

在实际的应用中,首先配置数据源(如:mysql数据库连接信息),该项配 置是能采集指标数据的前置条件;基于某一数据源创建指标数据采集任务;数 据采集任务开始,每个时刻采集到的数据会流入prom时序数据库进行存储;配 置告警规则、告警方式、告警模板、告警组、告警路由等信息;采集到的指标 数据流经告警路由系统,当某项指标数据达到了告警规则设定的阈值,则触发 告警。告警路由系统会根据告警路由配置确定该告警的告警方式,并将告警模 板配置的内容发送给指定的告警组,完成告警。

通过上述步骤,通过独立配置一套或多套告警规则和告警方式,解耦不同 的告警方式和规则,同时,告警路由根据不同的告警规则的规则表达式来选择 不同的告警方式、告警人和告警模板,可以无限扩展的告警方式和规则

本申请实施例提出的基于配置的告警路由方法,还包括静默步骤,可以选 择性的静默告警路由。

在其中一些实施例中,流程配置还包括告警方式和告警模板的配置,其中:

告警模板设置为模板语言编写的模板,将告警信号写入告警模板;

告警方式包括但不限于微信、邮箱、slack和webhook;

告警路由设置为树状结构,包括顶级路由和一个或多个子路由,子路由包 括告警人、告警分组、分组等待时间、分组通知间隔和告警重复间隔;

告警规则包括触发条件。

在其中一些实施例中,告警路由步骤具体包括:

告警路由模块将指标数据与告警规则进行对比输出告警信号,将告警模板 根据对应子路由采用告警方式发送给对应告警人。

下面通过优选实施例对本申请实施例进行描述和说明。

图3是根据本申请优选实施例的基于配置的告警路由方法的流程图。

S301,进行数据源的配置和采集规则的配置,

S302,基于上述配置,指标采集器录入任务开始采集指标数据,并将采集 的指标数据存储至prom时序数据库;

S303,告警管理模块分别进行告警人、告警规则、告警路由的配置后,从 prom时序数据库读取指标数据,并基于告警规则进行判断,当满足条件时,依 据预先设置的告警人和告警路由进行告警。

图4是根据本申请实施例的告警管理模块的配置方法的流程图,如图4所 示,该方法包括如下步骤:

S401,告警流程配置,

S4011,当配置了至少一条告警规则时,进行告警路由配置,并存储至 postgres数据库;

S4012,当未配置告警规则时,结束流程;

S402,告警方式配置;

S403,告警信息模板配置;

S404,将告警规则、告警方式、告警信息模板存入postgres数据库。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如 一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻 辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步 骤。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对 上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技 术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的 普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改 进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权 利要求为准。

相关技术
  • 一种基于配置的告警路由系统和方法
  • 一种路由器网络配置、智能终端配置路由器的方法及系统
技术分类

06120112533544