一种云平台日志告警方法及系统
文献发布时间:2024-04-18 19:44:28
技术领域
本发明涉及云计算技术领域,具体为一种云平台日志告警方法及系统。
背景技术
随着信息技术和云计算的发展,应用服务器越来越多,越来越复杂。
现有技术中,云平台分布式日志中,日志管理主要采用在每个应用服务中开启日志收集服务,配置相关收集规则,将实时日志文件传送到存储器(elasticsearch)中。运维过程中,采用日志的方式将故障信息告诉运维人员是常用的方式。
但是,上述方法需要运维人员主动的去查看日志文件,以致于工作效率不高,工作量较大。通过不易操作的可视化工具查看异常日志,很难第一时间得知应用服务发生异常,而且云平台应用众多,面对不同格式不同类型的日志,没有一个统一的告警通知方法。
发明内容
本发明的目的在于提供一种云平台日志告警方法及系统,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种云平台日志告警方法,所述方法包括以下步骤:
alert-operator告警管理;
telegraf告警日志解析;
数据库服务为告警数据表的存储提供持久化能力;
告警评估引擎。
优选的,alert-operator告警管理具体包括:
alert-operator中的告警管理模块开放日志告警管理配置接口,将从web界面配置的日志告警关键词解析成telegraf的elasticsearch_query插件格式,同时通知telegrafreload配置文件。
优选的,alert-operator告警管理还包括:
alert-operator中的告警管理模块开放告警管理接口,接收解析规则以及告警规则增删改的api请求并处理,将处理后的结果同步到数据库、采集器以及告警引擎服务。
优选的,telegraf告警日志解析具体包括:
telegraf启动执行初始化操作,通过elasticsearch_query插件,实时匹配elasticsearch中的各个服务日志,生成日志告警指标。
优选的,telegraf告警日志解析具体还包括:
通过告警管理模块,根据需求增删改日志告警指标告警规则。
优选的,告警评估引擎具体包括:
告警评估引擎服务组件,加载并执行告警功能,接收并同步加载alert-operator管理的告警实例,完成告警定义的评估功能。
一种云平台日志告警系统,所述系统包括集群基础组件、日志告警管理组件以及告警组件;
集群基础组件包括日志存储的elasticsearch服务和用于数据持久化的数据库服务;
日志告警管理组件包括log-manager-web、alert-operator、telegraf;
告警组件包括prometheus、alertmanager。
优选的,alert-operator接收到日志关键词数据并处理,并将处理结果同步持久化到数据库;alert-operator将日志关键词处理日志匹配规则,并格式化成telegraf采集配置,并通知telegraf加载配置;telegraf通过elasticsearch_query模块,依据日志匹配规则,通过elasticsearch实时查询日志,当有满足规则的日志时,生成告警指标。
优选的,告警引擎开放告警接口接收alert-operator的增删改请求实现对告警规则以及解析规则的加载管理。
与现有技术相比,本发明的有益效果是:
本发明提出的云平台日志告警方法及系统,根据不同的使用需求和场景定制对应的日志解析以及告警策略。云平台开发者可以站在组件本身的初始化所需的日志告警策略,实现平台底层架构的灵活告警定制,在此基础之上,运维人员和其他用户可以通过规则管理接口满足不同场景下的日志告警定制需求;满足灵活的日志告警定制化需求,根据实际需求,通过管理界面的途径定制和修改日志告警,能满足在实际交付运维过程洪轻松定制告警的需求;支持适配多种日志格式的良好扩展性,通过对不同服务的各种格式的日志,可支持各种类型日志告警的创建。
附图说明
图1为本发明告警管理系统部署图;
图2为本发明规则接口管理功能模块图。
具体实施方式
为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明提供一种技术方案:一种云平台日志告警方法,所述方法包括以下步骤:
alert-operator告警管理;alert-operator中的告警管理模块开放日志告警管理配置接口,将从web界面配置的日志告警关键词解析成telegraf的elasticsearch_query插件格式,同时通知telegrafreload配置文件;alert-operator中的告警管理模块开放告警管理接口,接收解析规则以及告警规则增删改的api请求并处理,将处理后的结果同步到数据库、采集器以及告警引擎服务;
telegraf告警日志解析;telegraf启动执行初始化操作,通过elasticsearch_query插件,实时匹配elasticsearch中的各个服务日志,生成日志告警指标;通过告警管理模块,根据需求增删改日志告警指标告警规则;
数据库服务为告警数据表的存储提供持久化能力;
告警评估引擎;告警评估引擎服务组件,加载并执行告警功能,接收并同步加载alert-operator管理的告警实例,完成告警定义的评估功能。
实施例二
在实施例一的基础上,提出了一种云平台日志告警系统,所述系统包括集群基础组件、日志告警管理组件以及告警组件;
集群基础组件包括日志存储的elasticsearch服务和用于数据持久化的数据库服务;
日志告警管理组件包括log-manager-web、alert-operator、telegraf;
告警组件包括prometheus、alertmanager;
alert-operator接收到日志关键词数据并处理,并将处理结果同步持久化到数据库;alert-operator将日志关键词处理日志匹配规则,并格式化成telegraf采集配置,并通知telegraf加载配置;telegraf通过elasticsearch_query模块,依据日志匹配规则,通过elasticsearch实时查询日志,当有满足规则的日志时,生成告警指标;告警引擎开放告警接口接收alert-operator的增删改请求实现对告警规则以及解析规则的加载管理。
实施例三
利用Kubernetes用户自定义关键字匹配实现一种云平台日志告警管理的方法和系统。该方法通过通过提取不同应用服务的异常日志关键词,使得用户可以根据需求创建、更新、删除对应告警规则;通过提供的管理界面,系统管理员通过管理界面可以实现对平台日志告警的运维管理;通过监控采集组件实现异常日志信息的获取,并生成日志告警指标;通过开放告警管理api实现调用接口对告警的可定制管理,并将告警规则同步到告警引擎;通过告警引擎第一时间将故障信息推送给运维人员,实现故障的快速通知与定位。
如图一所示。为了实现上述功能,本文提供了一种日志告警管理方法,该方法实现的系统包括三类组件。集群基础组件包括日志存储的elasticsearch服务和用于数据持久化的数据库服务;日志告警管理组件包括log-manager-web、alert-operator、telegraf;告警组件包括prometheus、alertmanager等。该方法包括以下模块:
1)alert-operator告警管理
Step1:alert-operator中的告警管理模块会开放日志告警管理配置接口,将从web界面配置的日志告警关键词解析成telegraf的elasticsearch_query插件格式,同时通知telegrafreload配置文件。
如如二所示。
Step2:alert-operator中的告警管理模块会开放告警管理接口,接收解析规则以及告警规则增删改的api请求并处理,将处理后的结果同步到数据库、采集器以及告警引擎服务。如图二所示。
2)telegraf告警日志解析
Step1:telegraf启动执行初始化操作,通过elasticsearch_query插件,实时匹配elasticsearch中的各个服务日志,生成日志告警指标。Step2:通过告警管理模块,根据需求增删改日志告警指标告警规则。
3)数据库
Step1:数据库服务提供告警数据表的存储持久化能力。alert-operator处理后的解析规则以及告警规则持久化到数据库中。
4)告警评估引擎
Step1:告警评估引擎服务组件,加载并执行告警功能,它接收并同步加载alert-operator管理的告警实例,完成告警定义的评估功能。
告警资源模型及具体实施步骤:
1、告警资源模型及示例
模型:
```
[[inputs.elasticsearch_query.aggregation]]
measurement_name="string"
index="string"
date_field="string"
query_period="string"
filter_query="string"
tags=["string"]
```
示例:
```
[[inputs.elasticsearch_query.aggregation]]
measurement_name="alert_error_log"
index="alert"
date_field="timestamp"
query_period="2m"
filter_query="Payload:\"alert error\"AND Service:alert"
tags=["alert_name.keyword","alert_host.keyword"]
```
2、具体实施步骤
日志告警解析规则配置:
1)Step1监听前端接口返回数据,alert-operator接收到日志关键词数据并处理,并将处理结果同步持久化到数据库,之后执行Step2。
2)Step2 alert-operator将日志关键词处理日志匹配规则,并格式化成telegraf采集配置,并通知telegraf加载该配置,执行step3。
3)step3 telegraf通过elasticsearch_query模块,依据日志匹配规则,通过elasticsearch实时查询日志,当有满足规则的日志时,生成告警指标。
告警管理(通过开放的接口管理实现):
1)Step1接口接收请求,路由到对应的处理模块,并将处理结果同步持久化到数据库,之后执行Step2。
2)Step2告警同步到告警引擎。将告警变更内容封装成消息发同步送到告警引擎端。
规则同步和告警引擎加载告警:
Step1告警引擎开放告警接口接收alert-operator的增删改请求实现对告警规则以及解析规则的加载管理。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。