本发明涉及云平台日志告警技术,具体涉及到elasticsearch、shell、elastalert等技术领域,具体的说是一种基于elastalert的可视化日志告警系统和方法。
背景技术
elasticsearch是一个基于lucene的全文搜索服务,它提供了一个分布式多用户能力的全文搜索引擎,基于restfulweb接口。elasticsearch是用java开发的,并作为apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎;设计用于云计算中,能够达到实时搜索,稳定可靠快速,安装使用方便,是一款非常优秀的全文搜索服务。
elasticsearch使用lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的api即可,并不需要了解其背后复杂的lucene的运行原理。当然elasticsearch并不仅仅是lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索;实时分析的分布式搜索引擎;可以扩展到上百台服务器,处理pb级别的结构化或非结构化数据。这么多的功能被集成到一台服务器上,可以轻松地通过客户端或者任何程序语言与es(elasticsearch)的restfulapi进行交流。
技术实现要素:
本发明针对目前技术发展的需求和不足之处,提供一种基于elastalert的可视化日志告警系统和方法。
本发明所述一种基于elastalert的可视化日志告警系统,解决上述技术问题采用的技术方案如下:所述基于elastalert的可视化日志告警系统,其系统架构包括:
日志告警设置模块,用于云平台在可视化日志告警界面设置日志告警模板;
监控模块,用于云平台启动日志告警的事件监控队列;
告警文件生成模块,负责当监控到已设置日志告警的服务实例被创建时,云平台的worker节点生成该实例对应的日志告警文件;
告警模块,负责监控es中的日志信息,当满足告警策略时,产生日志告警,并回调平台监控,完成日志告警提示。
进一步,所述日志告警设置模块,可视化日志告警页面通过javascript技术实现。
进一步,所述基于elastalert的可视化日志告警系统,还包括拷贝模块,负责通过shell脚本将日志告警文件远程拷贝到elastalert所在虚拟机。
进一步,所述基于elastalert的可视化日志告警系统,还包括启动模块,负责读取将日志告警文件远程拷贝到elastalert所在虚拟机时的配置文件,并启动elastalert进程。
本发明提出一种基于elastalert的可视化日志告警方法,其实现流程包括:
步骤1、云平台在可视化日志告警页面设置日志告警模板;
步骤2、云平台启动日志告警的事件监控队列;
步骤3、当监控到已设置日志告警的服务实例被创建时,云平台的worker节点生成该实例对应的日志告警文件;
步骤4、监控es中的日志信息,当满足告警策略时,产生日志告警,并回调平台监控,完成日志告警提示。
进一步,所述步骤1,可视化日志告警页面通过javascript技术实现。
进一步,所述基于elastalert的可视化日志告警方法,还包括将日志告警文件拷贝到elastalert所在虚拟机的步骤,
通过shell脚本将日志告警文件远程拷贝到elastalert所在虚拟机。
进一步,所述基于elastalert的可视化日志告警方法,还包括读取将日志告警文件远程拷贝到elastalert所在虚拟机时的配置文件,启动elastalert进程的步骤。
本发明所述一种基于elastalert的可视化日志告警系统和方法,与现有技术相比具有的有益效果是:本发明能很好的接入并兼容市面上各类云平台及采用es技术进行日志采集的系统,对日志信息自动化监控,实现云平台可视化的日志告警,解决平台日志告警模式的缺失;
通过可视化的配置方式,将复杂的elastalert配置自动化,简单化,可视化,且不用担心yml文件最容易出现的格式不正确等问题,大大节省了云平台开发运维成本、人员成本,缩短了开发的周期,操作简单,易用性,通用性都得到保证,极具推广价值。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术内容,下面对本发明实施例或现有技术中所需要的附图做简单介绍。显而易见的,下面所描述附图仅仅是本发明的一部分实施例,对于本领域技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,但均在本发明的保护范围之内。
附图1为实施例1基于elastalert的可视化日志告警系统的示意图;
附图2为实施例1基于elastalert的可视化日志告警方法的流程图;
附图3为实施例2基于elastalert的可视化日志告警方法的流程图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清查、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下获得的所有实施例,都在本发明的保护范围之内。
目前,云平台缺少日志告警机制,通用于市面上各类云平台的日志采集系统更是稀缺。鉴于此,本发明提出了一种基于elastalert的可视化日志告警方案,用来解决云平台日志告警模式的缺失。其中,elastalert是yelp公司开源的一套用python写的报警框架,可以通过es的查询语言,完成对es中索引数据的告警,方便应用于日志采集系统;可以很好的完成对索引数据的监控,告警操作。
实施例1:
本实施例提出一种基于elastalert的可视化日志告警系统,附图1为实施例1基于elastalert的可视化日志告警系统的示意图,如附图1所示,其系统架构包括:
日志告警设置模块,用于云平台通过elastalert技术,在可视化日志告警界面设置通用于各类云平台的日志告警模板;可视化日志告警页面可以通过javascript等技术实现。
监控模块,用于云平台在rabbitmq中启动日志告警的事件监控队列;
告警文件生成模块,负责当监控到已设置日志告警的服务实例被创建时,云平台的worker节点生成该实例对应的日志告警文件;
告警模块,负责监控es(elasticsearch)中的日志信息,当满足告警策略时,产生日志告警,并回调平台监控,完成日志告警提示;
该可视化日志告警系统的实施过程,如附图1所示:通过日志告警设置模块设置可视化日志告警模板,然后通过监控模块启动日志告警的时间监控队列;当监控到设置日志告警的服务实例被创建后,云平台的worker节点通过告警文件生成模块生成该实例对应的日志告警文件;并监控es中的日志信息当满足告警策略时,通过告警模块产生日志告警,并回调平台监控完成日志告警提示。
本实施例基于elastalert的可视化日志告警系统,通过elastalert技术,采用可视化的日志告警方案设计,完成通用于市面上各类云平台的日志告警系统;能很好的接入并兼容市面上各类云平台及采用es技术进行日志采集的系统,对日志信息自动化监控,实现云平台的日志告警,解决了平台日志告警模式的缺失。
本实施例还提出一种基于elastalert的可视化日志告警方法,其技术方案可以与实施例1基于elastalert的可视化日志告警系统相互参考,如附图2所示,主要包含以下步骤:
步骤1、云平台通过elastalert技术,在可视化日志告警页面设置通用于各类云平台的日志告警模板;可视化日志告警页面可以通过javascript等技术实现。
步骤2、云平台在rabbitmq中启动日志告警的事件监控队列;
步骤3、当监控到已设置日志告警的服务实例被创建时,云平台的worker节点生成该实例对应的日志告警文件;
步骤4、监控es中的日志信息,当满足告警策略时,产生日志告警,并回调平台监控,完成日志告警提示。
本实施例基于elastalert的可视化日志告警方法,通过elastalert技术,按照上述方法步骤,通过可视化的日志告警方案设计,实现通用于各类云平台的日志告警;能很好的接入并兼容市面上各类云平台及采用es技术进行日志采集的系统,解决平台日志告警模式的缺失。
实施例2:
本实施例提出的一种基于elastalert的可视化日志告警系统,在实施例1基于elastalert的可视化日志告警系统的基础上,还包括拷贝模块和启动模块,将繁琐复杂的elastalert配置文件,抽象成简单易用的且具备友好交互的可视化页面,大大节约了开发成本,缩短了开发部署的周期。
本实施例基于elastalert的可视化日志告警系统,其系统架构包括:
日志告警设置模块:通过云平台,完成可视化的日志告警模板设置;
监控模块:用于云平台在rabbitmq中启动事件监控队列;
告警文件生成模块:当监控到已设置日志告警的服务实例被创建时,云平台的worker节点生成该实例对应的日志告警文件;
拷贝模块,负责通过shell脚本将日志告警文件远程拷贝到elastalert所在虚拟机;
启动模块,负责读取将日志告警文件远程拷贝到elastalert所在虚拟机时的配置文件(elastalert配置文件),并启动elastalert进程;
告警模块,负责监控es中的日志信息,当满足告警策略时,产生日志告警,并回调平台监控,完成日志告警提示。
本实施例还提出一种基于elastalert的可视化日志告警方法,其技术方案可以与实施例2基于elastalert的可视化日志告警系统相互参考,增加了将日志告警文件拷贝到elastalert所在虚拟机,以及读取elastalert配置文件,启动elastalert进程的步骤。
附图3为实施例2基于elastalert的可视化日志告警方法的流程图,下面将本实施例的具体实现过程(如附图3所示),以及实现过程中的部分关键代码介绍如下:
步骤1、云平台通过elastalert技术,在可视化的日志告警页面设置通用于各类云平台的日志告警模板;
步骤2、云平台在rabbitmq中启动日志告警的事件监控队列;
关键代码如下:
步骤3、当监控到已设置日志告警的服务实例被创建时,云平台的worker节点生成该实例对应的日志告警文件;
步骤4、通过shell脚本将日志告警文件远程拷贝到elastalert所在虚机;
关键代码如下:
步骤5、读取步骤四(将日志告警文件远程拷贝到elastalert所在虚拟机时)的elastalert配置文件,启动elastalert进程;
步骤6、监控es中的日志信息,当满足告警策略时,产生日志告警,并回调平台监控,完成日志告警提示。
本实施例基于elastalert的可视化日志告警方法,通过elastalert技术,采用可视化的日志告警设计,实现通用于市面上各类云平台的日志告警;能很好的接入并兼容市面上各类云平台及采用es技术进行日志采集的系统,对日志信息自动化监控,实现可视化的日志告警,解决平台日志告警模式的缺失;将复杂的elastalert配置自动化,简单化,可视化,且不用担心yml文件最容易出现的格式不正确等问题,大大节约了开发运维成本、人员成本,缩短了开发部署的周期。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容,并不用于限制本发明的保护范围,本发明的技术方案不限制于上述具体实施方式内。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。