日志数据处理方法、系统、设备及存储介质与流程

文档序号:17537464发布日期:2019-04-29 14:08阅读:591来源:国知局
日志数据处理方法、系统、设备及存储介质与流程

本发明涉及信息处理技术领域,尤其涉及一种日志数据处理方法、系统、设备及存储介质。



背景技术:

elk平台,一般被称作为日志分析平台,其中,e、l、k分别是三款开源产品(elasticsearch、logstash以及kibana)名称的首字母集合。elasticserach是一个基于开源检索引擎之上实现的一个分布式搜索引擎,同时还提供了数据存储功能;logstash主要用于日志数据的过滤、修改以及收集,同时支持各类不同的数据获取方式;kibana主要用于将上述两者通过超文本传输(hypertexttransferprotocol,http)协议良好的展示给用户,以便用户使用。现有的elk平台对外部系统的数据库或应用日志等数据源进行数据采集和分析时,往往只针对与应用报错相关的数据进行采集、处理和分析,覆盖面较低,且无法支持大规模数据。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供了一种日志数据处理方法、系统、设备及存储介质,旨在解决现有的日志分析平台对日志数据进行采集分析时,覆盖面较低且无法支持大规模数据的技术问题。

为实现上述目的,本发明提供了一种日志数据处理方法,所述方法包括以下步骤:

数据传输组件根据接收到的数据采集请求确定本次数据采集对应的目标数据源和所述目标数据源中所保存数据的数据类型;

所述数据传输组件根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集,对采集到的日志数据进行初始化处理获得初始化日志数据,并将所述初始化日志数据发送至预设消息集群;

所述预设消息集群根据接收到的所述初始化日志数据生成消息队列,在接收到所述数据传输组件发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件;

所述数据传输组件根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群中存放的日志数据进行消费,并将消费后的日志数据发送至数据搜索组件进行保存。

优选地,所述数据传输组件根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集,对采集到的日志数据进行初始化处理获得初始化日志数据,并将所述初始化日志数据发送至预设消息集群的步骤,包括:

所述数据传输组件根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集;

所述数据传输组件获取预先定义的过滤规则,并根据所述过滤规则对采集到的日志数据进行过滤;

所述数据传输组件将过滤后的日志数据转换成预设格式的初始化日志数据,并将所述初始化日志数据发送至预设消息集群。

优选地,所述数据传输组件根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集的步骤,包括:

所述数据传输组件在确定出所述数据类型为数据库数据或应用日志时,调用预设的监听脚本对所述目标数据源进行数据采集。

优选地,所述数据传输组件根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集,对采集到的日志数据进行初始化处理获得初始化日志数据,并将所述初始化日志数据发送至预设消息集群的步骤,包括:

所述数据传输组件在确定出所述数据类型为访问日志时,调用预置脚本对所述目标数据源进行数据采集,获取用户访问日志;

所述数据传输组件根据预先配置的安全策略的对所述用户访问日志进行信息过滤获得初始化日志数据,将所述初始化日志数据发送至预设消息集群。

优选地,所述预设消息集群根据接收到的所述初始化日志数据生成消息队列,在接收到所述数据传输组件发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件的步骤,包括:

所述预设消息集群接收所述初始化日志数据,确定所述初始化日志数据所属的消息类别;

所述预设消息集群根据确定出的消息类别对所述初始化日志数据进行分类存储,并根据存储结果生成包含有所述消费顺序的消息队列;

所述预设消息集群在接收到所述数据传输组件发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件。

优选地,所述数据传输组件根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群中存放的日志数据进行消费,并将消费后的日志数据发送至数据搜索组件进行保存的步骤,包括:

所述数据传输组件根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群中存放的日志数据进行消费;

所述数据传输组件在获取到数据搜索组件发送的数据获取指令时,确定所述数据搜索组件发送所述数据获取指令的发送时间参数;

所述数据传输组件调用预置插件提取所述初始化日志数据中包含的原始时间参数,根据所述原始时间参数对所述发送时间参数进行参数重定义;

所述数据传输组件在完成所述参数重定义时,将消费后的日志数据发送至所述数据搜索组件进行保存。

优选地,所述数据传输组件调用预置插件提取所述初始化日志数据中包含的原始时间参数,根据所述原始时间参数对所述发送时间参数进行参数重定义的步骤,包括:

所述数据传输组件调用预置插件提取所述初始化日志数据中包含的原始时间参数,对所述原始时间参数进行格式化获得目标格式的日期字段;

所述数据传输组件根据所述日期字段对所述发送时间参数中的日期字段进行替换,以实现对所述发送时间参数的重定义。

此外,为实现上述目的,本发明还提出一种日志数据处理系统,所述系统包括:数据传输组件、数据搜索组件和预设消息集群;

其中,所述数据传输组件,用于根据接收到的数据采集请求确定本次数据采集对应的目标数据源和所述目标数据源中所保存数据的数据类型;

所述数据传输组件,还用于根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集,对采集到的日志数据进行初始化处理获得初始化日志数据,并将所述初始化日志数据发送至所述预设消息集群;

所述预设消息集群,用于根据接收到的所述初始化日志数据生成消息队列,在接收到所述数据传输组件发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件;

所述数据传输组件,还用于根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群中存放的日志数据进行消费,并将消费后的日志数据发送至所述数据搜索组件进行保存。

此外,为实现上述目的,本发明还提出一种日志数据处理设备,所述日志数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的日志数据处理程序,所述日志数据处理程序配置为实现如上文所述的日志数据处理方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有日志数据处理程序,所述日志数据处理程序被处理器执行时实现如上文所述的日志数据处理方法的步骤。

本发明数据传输组件根据接收到的数据采集请求确定本次数据采集对应的目标数据源和目标数据源中所保存数据的数据类型,根据数据类型调用对应的预置脚本对目标数据源进行数据采集,然后对采集到的日志数据进行初始化处理获得初始化日志数据,并将初始化日志数据发送至预设消息集群;预设消息集群根据接收到的初始化日志数据生成消息队列,在接收到数据传输组件发送的消息拉取请求时,将消息队列发送至所述数据传输组件;数据传输组件根据消息队列确定消费顺序,按消费顺序对预设消息集群中存放的日志数据进行消费,并将消费后的日志数据发送至数据搜索组件进行保存,由于是通过数据传输组件先确定目标数据源,再根据目标数据源所保存数据的数据类型来调用相应的脚本对日志数据进行采集,从而能够增大数据采集的覆盖面,实现对日志数据的多样化采集,同时通过预设消息集群来接收初始化日志数据并生成消息队列,从而为实现大规模日志数据的采集提供了有效途径。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的日志数据处理设备的结构示意图;

图2为本发明日志数据处理方法第一实施例的流程示意图;

图3为本发明日志数据处理方法第二实施例的流程示意图;

图4为本发明日志数据处理方法第三实施例的流程示意图;

图5为本发明日志数据处理方法第四实施例的流程示意图;

图6为本发明日志数据处理系统第一实施例的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的日志数据处理设备结构示意图。

如图1所示,该日志数据处理设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对日志数据处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及日志数据处理程序。

在图1所示的日志数据处理设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明日志数据处理设备中的处理器1001、存储器1005可以设置在日志数据处理设备中,所述日志数据处理设备通过处理器1001调用存储器1005中存储的日志数据处理程序,并执行本发明实施例提供的日志数据处理方法。

本发明实施例提供了一种日志数据处理方法,参照图2,图2为本发明日志数据处理方法第一实施例的流程示意图。

本实施例中,所述日志数据处理方法包括以下步骤:

步骤s10:数据传输组件根据接收到的数据采集请求确定本次数据采集对应的目标数据源和所述目标数据源中所保存数据的数据类型;

需要说明的是,本实施例日志数据处理方法是基于elk日志分析平台实现的,所述elk日志分析平台(以下简称elk平台)是由elasticsearch,logstash,kibana三种开源工具搭建而成的日志分析系统,其中elasticsearch是一个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能;logstash则主要是用于日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式;kibana可以为logstash和elasticsearch提供的日志分析友好的web界面,可以帮助汇总、分析和搜索重要日志数据。本实施例及下述各实施例中,所述数据传输组件即所述logstash工具,所述数据搜索组件即所述elasticsearch工具。

应理解的是,所述数据采集请求可以是用户通过手机、平板电脑或个人电脑等终端设备发送的数据采集指令,该数据采集指令也可以由所述终端设备内预先设定的定时任务触发而生成。所述目标数据源可以是储存有所述数据采集请求所需要数据的器件(例如数据库)或原始媒体(例如应用程序、网页服务器等)。

此外,在本实施例中将数据库中所保存数据的数据类型定义为数据库数据,将应用程序中所保存数据的数据类型定义为应用日志,将网页服务器中所保存数据的数据类型定义为访问日志(或web访问日志),且在执行本步骤之前,工作人员可预先针对不同的数据类型编写相应的数据采集脚本或配置插件,以实现多样化、针对性强且覆盖面较高的数据采集。

当然,为了使所述数据传输组件logstash能够根据接收到的数据采集请求快速确定出本次数据采集所针对的数据源中所保存数据的数据类型,可预先在数据传输组件logstash中建立一个数据源标识和数据类型之间的映射关系,以使所述数据传输组件logstash在确定出本次数据采集所针对的目标数据源后,根据所述目标数据源对应的数据源标识实现对其所保存数据的数据类型的快速确定。

在具体实现中,数据传输组件logstash根据接收到的数据采集请求先确定出本次数据采集所针对的目标数据源,然后根据目标数据源对应的数据源标识通过预先建立的数据源标识和数据类型之间的映射关系快速确定出目标数据源中所保存数据的数据类型。

步骤s20:所述数据传输组件根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集,对采集到的日志数据进行初始化处理获得初始化日志数据,并将所述初始化日志数据发送至预设消息集群;

需要说明的是,在执行本步骤之前,工作人员可针对不同数据类型的数据源配置相应的脚本来对数据源进行数据采集,例如:对于数据库数据可预先编写一段监听脚本来对数据库中的事件信息进行监听获取数据库中的安全或业务等日志数据;对于应用程序的应用日志可通过预先编写的监听脚本进行数据采集,也可以通过修改应用程序中的log4j配置文件来进行日志数据的采集并控制日志信息输出对象;对于网页服务器的web访问日志可通过预置的脚本插件来进行访问日志的采集。

进一步地,考虑到目前所有脚本引擎中,lua(一种脚本语言)脚本的速度最快且易于维护,因此本实施例中当数据传输组件logstash在确定出所述数据类型为web访问日志时,可调用预置lua脚本对所述目标数据源进行数据采集,获取用户访问日志;然后根据预先配置的安全策略的对所述用户访问日志进行信息过滤获得初始化日志数据,再将所述初始化日志数据发送至预设消息集群。其中,所述根据预先配置的安全策略的对所述用户访问日志进行信息过滤的实现方式可以是通过调用网站应用级入侵防御系统(webapplicationfirewall,waf)模块来实现,所述安全策略可以是工作人员根据从业经验编写的对用户访问行为进行安全性验证的异常检测协议。

在具体实现中,所述数据传输组件logstash在确定出目标数据源中所保存数据的数据类型后,根据所述数据类型调用对应的预置脚本对目标数据源进行数据采集,然后对采集到的日志数据进行初始化处理获得初始化日志数据,再将初始化日志数据发送至预设消息集群。

步骤s30:所述预设消息集群根据接收到的所述初始化日志数据生成消息队列,在接收到所述数据传输组件发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件;

需要说明的是,所述预设消息集群可以是具有高性能、高可靠以及高实时等优点的分布式开源消息中间件或服务器集群,例如rocketmq集群或kafka集群等,在实际应用中,所述预设消息集群可通过生产者(producer)对获取到的消息分类存储得到消息队列,然后由消费者(consumer)根据消息队列进行消息的顺序消费,且消费者在对消息进行消费时可通过与消息集群建立长连接的方式,不断地从集群中拉取消息然后对这些消息进行消费。

在具体实现中,预设消息集群接收数据传输组件logstash发送的初始化日志数据,按照预先设置的分区(partitions)对初始化日志数据进行分类存储,然后根据分类存储的结果生成对应的消息队列,并在接收到数据传输组件logstash发送的消息拉取请求时,将消息队列发送至数据传输组件logstash。

步骤s40:所述数据传输组件根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群中存放的日志数据进行消费,并将消费后的日志数据发送至数据搜索组件进行保存。

需要说明的是,所述消费顺序可以是日志数据或消息被消息接收端(如数据传输组件logstash)接收并处理时对应的消息处理顺序。

在具体实现中,数据传输组件logstash根据预设消息集群发送的消息队列确定出消费顺序,再按消费顺序对预设消息集群中存放的日志数据进行消费,然后将消费后的日志数据发送至数据搜索组件elasticsearch进行保存。

本实施例数据传输组件根据接收到的数据采集请求确定本次数据采集对应的目标数据源和目标数据源中所保存数据的数据类型,根据数据类型调用对应的预置脚本对目标数据源进行数据采集,然后对采集到的日志数据进行初始化处理获得初始化日志数据,并将初始化日志数据发送至预设消息集群;预设消息集群根据接收到的初始化日志数据生成消息队列,在接收到数据传输组件发送的消息拉取请求时,将消息队列发送至所述数据传输组件;数据传输组件根据消息队列确定消费顺序,按消费顺序对预设消息集群中存放的日志数据进行消费,并将消费后的日志数据发送至数据搜索组件进行保存,由于是通过elk平台中的数据传输组件先确定目标数据源,再根据目标数据源所保存数据的数据类型来调用相应的脚本对日志数据进行采集,从而能够增大数据采集的覆盖面,实现对日志数据的多样化采集,同时通过预设消息集群来接收初始化日志数据并生成消息队列,从而为实现大规模日志数据的采集提供了有效途径。

参考图3,图3为本发明日志数据处理方法第二实施例的流程示意图。

基于上述第一实施例,在本实施例中,所述步骤s20包括:

步骤s201:所述数据传输组件根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集;

应理解的是,在本实施例中针对不同数据类型的数据源工作人员可预先配置相应的脚本(即所述预置脚本)来对数据源进行数据采集,其中,所述预置脚本可以是根据采集需求修改过的log4j配置文件,也可以是预先配置好的监听文件。具体的,若数据传输组件logstash确定出目标数据源中所保存或产生的数据的数据类型为数据库数据或应用日志时,可调用预设的监听脚本对所述目标数据源进行数据采集。

进一步地,若数据传输组件logstash确定出目标数据源中所保存或产生的数据的数据类型为应用日志,还可以通过预置的log4j文件采集应用程序中的日志文件然后将采集到的日志文件直接发送至所述预设消息集群。

步骤s202:所述数据传输组件获取预先定义的过滤规则,并根据所述过滤规则对采集到的日志数据进行过滤;

需要说明的是,所述过滤规则可以是预先设定的资源拦截规则,例如对日志数据中的敏感词汇、图片文件或资源请求路径等进行拦截。

在具体实现中,数据传输组件logstash获取预先定义的过滤规则,然后根据过滤规则对采集到的日志数据进行过滤,获得过滤后的日志数据。

步骤s203:所述数据传输组件将过滤后的日志数据转换成预设格式的初始化日志数据,并将所述初始化日志数据发送至预设消息集群。

需要说明的是,本实施例中所述预设格式可以是js对象简谱(javascriptobjectnotation,json)格式,所述预设消息集群可以是高吞吐量的分布式消息服务器集群,所述数据传输组件logstash将过滤后的日志数据转换成预设格式的初始化日志数据即对过滤后的日志数据进行格式统一得到json格式的初始化日志数据,且最终获得的初始化日志数据中数据的线程名称、日志级别、日志消息所在类名、消息内容、输出执行方法、发生时间和/或代码中的行数等参数的数据格式均一致。

在具体实现中,数据传输组件logstash将过滤后的日志数据转换成预设格式的初始化日志数据,然后将初始化日志数据发送至预设消息集群。

本实施例数据传输组件根据数据类型调用对应的预置脚本对目标数据源进行数据采集;获取预先定义的过滤规则,并根据过滤规则对采集到的日志数据进行过滤保证了数据采集的安全性,同时通过将过滤后的日志数据转换成预设格式的初始化日志数据,并将初始化日志数据发送至预设消息集群,从而保证了初始化日志数据格式的一致性,提高了预设消息集群对初始化日志数据的处理效率。

参考图4,图4为本发明日志数据处理方法第三实施例的流程示意图。

基于上述各实施例,在本实施例中,所述步骤s30包括:

步骤s301:所述预设消息集群接收所述初始化日志数据,确定所述初始化日志数据所属的消息类别;

需要说明的是,考虑到kafka作为一种高吞吐量的分布式发布订阅消息系统,其目的是通过hadoop的并行加载机制来统一线上和离线的消息处理,即通过集群来提供实时的消息,本实施例中所述预设消息集群优选为kafka集群。

应理解的是,通常情况下消息集群在接收到消息后,可按照指定的消息主题(topic)对消息进行分类后存储,也就是说通过对消息指定主题将消息分类,以使消费者可只关注自己需要的主体中的消息。

在具体实现中,预设消息集群接收到初始化日志数据时可根据初始化日志数据中携带的主题信息确定该日志数据所属的消息类别。

步骤s302:所述预设消息集群根据确定出的消息类别对所述初始化日志数据进行分类存储,并根据存储结果生成包含有所述消费顺序的消息队列;

可以理解的是,预设消息集群在确定出初始化日志数据的消息类别后,可根据其所属的消息类别对初始化日志数据先进行分类,然后再对分类后的初始化日志数据进行分区存储,最后再根据分区存储的结果生成对应的消息队列,具体的,所述消息队列可以是消息保存时所在存储分区的分区标识按预定顺序排列得到的消息拉取队列。

本实施例中,所述预设消息集群在根据所述消息类别(主题)进行消息分类前,可先创建若干个主题并设定各主题对应的分区数目,分区数越多,其吞吐量也越大。同样地,预设消息集群也可根据平均分配的均衡策略将消息均衡地存储到不同的分区中。

在具体实现中,预设消息集群根据确定出的消息类别对所述初始化日志数据进行分类存储,并根据存储结果生成包含有消费顺序的消息队列。

步骤s303:所述预设消息集群在接收到所述数据传输组件发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件。

在具体实现中,当预设消息集群在接收到数据传输组件logstash发送的消息拉取请求时,将预先生成的消息队列发送至数据传输组件logstash,以供所述数据传输组件logstash后续根据接收到消息队列对预设消息集群中存储的消息进行顺序消费。

本实施例预设消息集群接收初始化日志数据,确定初始化日志数据所属的消息类别;根据确定出的消息类别对初始化日志数据进行分类存储,并根据存储结果生成包含有消费顺序的消息队列;预设消息集群在接收到数据传输组件发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件,实现了大规模数据采集和处理的可能。

参考图5,图5为本发明日志数据处理方法第四实施例的流程示意图。

基于上述各实施例,在本实施例中,所述步骤s40可具体包括以下步骤:

步骤s401:所述数据传输组件根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群中存放的日志数据进行消费;

在具体实现中,数据传输组件logstash根据接收到的消息队列确定消费顺序,然后按照确定出的消费顺序对所述预设消息集群中存放的日志数据依次拉取并进行消费。

步骤s402:所述数据传输组件在获取到数据搜索组件发送的数据获取指令时,确定所述数据搜索组件发送所述数据获取指令的发送时间参数;

应理解的是,考虑到某些情况下当elasticsearch从数据传输组件中获取消费后的日志数据时,会以自身采集到该日志数据时的采集时间作为数据传输组件logstash从数据源获得的日志数据的实际产生时间(例如,数据源a产生日志数据b的实际产生时间为2018-05-1116:30:30,若elasticsearch的采集时间为2018-05-1210:30:30,则elasticsearch就会将2018-05-1210:30:30作为所述日志数据b的实际产生时间)。因此为了避免数据搜索组件elasticsearch后续根据自身采集到日志数据时的采集时间建立的日志数据与采集时间之间的索引失真,就需要对所述采集时间进行时间参数的重定义,来保证最终建立的索引的准确性及可靠性。

需要说明的是,本实施例中将数据搜索组件elasticsearch向数据传输组件logstash发送数据获取指令的发送时间参数作为自身获取该日志数据时的采集时间,即当数据传输组件logstash在获取到elasticsearch发送的数据获取指令时,将接收到该数据获取指令的获取时间(即所述发送时间参数)作为数据搜索组件elasticsearch获取消费后的日志数据的采集时间。

步骤s403:所述数据传输组件调用预置插件提取所述初始化日志数据中包含的原始时间参数,根据所述原始时间参数对所述发送时间参数进行参数重定义;

需要说明的是,所述预置插件可以是预先配置的用于对数据进行筛选过滤的脚本,在本实施例中数据传输组件logstash可调用工作人员预先配置filter插件提取初始化日志数据中包含的原始时间参数,然后根据原始时间参数对所述发送时间参数进行参数重定义,具体的所述数据传输组件logstash可调用预置filter插件提取所述初始化日志数据中包含的原始时间参数,对所述原始时间参数进行格式化获得目标格式的日期字段;所述数据传输组件logstash根据所述日期字段对所述发送时间参数中的日期字段进行替换,以实现对所述发送时间参数的重定义。

其中,数据传输组件logstash对原始时间参数进行格式化可以是将字符串格式(如,2018-05-1116:30:30.830)或unix时间戳格式的原始时间参数转化为iso8601时间格式的日期字段,例如将北京时间2018年5月11日下午4点30分30秒,转换成iso8601时间格式的日期字段则为:2018-05-11t16:30:30+08:00或20180511t163030+08。

在具体实现中,数据传输组件根据格式化后的日期字段对所述发送时间参数中的日期字段进行替换,从而实现对所述发送时间参数的重定义,保证数据搜索组件最终建立的索引的准确性及可靠性。

步骤s404:所述数据传输组件在完成所述参数重定义时,将消费后的日志数据发送至所述数据搜索组件进行保存。

在具体实现中,数据传输组件logstash在完成对时间参数的参数重定义时,将消费后的日志数据发送至所述数据搜索组件elasticsearch进行保存。

本实施例数据传输组件根据所述消息队列确定消费顺序,按所述消费顺序对预设消息集群中存放的日志数据进行消费;在获取到数据搜索组件发送的数据获取指令时,确定数据搜索组件发送数据获取指令的发送时间参数;调用预置插件提取初始化日志数据中包含的原始时间参数,根据原始时间参数对发送时间参数进行参数重定义;在完成参数重定义时,将消费后的日志数据发送至数据搜索组件进行保存,保证了数据搜索组件最终建立的索引的准确性及可靠性。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有日志数据处理程序,所述日志数据处理程序被处理器执行时实现如上文所述的日志数据处理方法的步骤。

参照图6,图6为本发明日志数据处理系统第一实施例的结构框图。

如图6所示,本发明实施例提出的日志数据处理系统包括:数据传输组件601、数据搜索组件602和预设消息集群603;

其中,所述数据传输组件601,用于根据接收到的数据采集请求确定本次数据采集对应的目标数据源和所述目标数据源中所保存数据的数据类型;

需要说明的是,所述数据采集请求可以是用户通过手机、平板电脑或个人电脑等终端设备发送的数据采集指令,该数据采集指令也可以由所述终端设备内预先设定的定时任务触发而生成。所述目标数据源可以是储存有所述数据采集请求所需要数据的器件(例如数据库)或原始媒体(例如,应用程序、网页服务器等)。

此外,在本实施例中可将数据库中所保存数据的数据类型定义为数据库数据,将应用程序中所保存数据的数据类型定义为应用日志,将网页服务器中所保存数据的数据类型定义为web访问日志,且工作人员可预先针对不同的数据类型编写相应的数据采集脚本或配置插件,以实现多样化、针对性强且覆盖面较高的数据采集。

当然,为了使所述数据传输组件601能够根据接收到的数据采集请求快速确定出本次数据采集所针对的数据源中所保存数据的数据类型,可预先在所述数据传输组件601中建立一个数据源标识和数据类型之间的映射关系,以使所述数据传输组件601在确定出本次数据采集所针对的目标数据源后,根据所述目标数据源对应的数据源标识实现对其所保存数据的数据类型的快速确定。

所述数据传输组件601,还用于根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集,对采集到的日志数据进行初始化处理获得初始化日志数据,并将所述初始化日志数据发送至所述预设消息集群603;

需要说明的是,本实施例中工作人员可针对不同数据类型的数据源配置相应的脚本来对数据源进行数据采集,例如,对于数据库数据可预先编写一段监听脚本来对数据库中的事件信息进行监听获取数据库中的安全或业务等日志数据;对于应用程序的应用日志可通过预先编写的监听脚本进行数据采集,也可以通过修改应用程序中的log4j配置文件来进行日志数据的采集并控制日志信息输出对象;对于网页服务器的web访问日志可通过预置的脚本插件来进行访问日志的采集。

进一步地,考虑到目前所有脚本引擎中,lua脚本的速度最快且易于维护,因此本实施例中当数据传输组件601在确定出所述数据类型为web访问日志时,可调用预置lua脚本对所述目标数据源进行数据采集,获取用户访问日志;然后根据预先配置的安全策略的对所述用户访问日志进行信息过滤获得初始化日志数据,再将所述初始化日志数据发送至预设消息集群。其中,所述根据预先配置的安全策略的对所述用户访问日志进行信息过滤的实现方式可以是通过调用网站应用级入侵防御系统(webapplicationfirewall,waf)模块来实现,所述安全策略可以是工作人员根据从业经验编写的对用户访问行为进行安全性验证的异常检测协议。

所述预设消息集群603,用于根据接收到的所述初始化日志数据生成消息队列,在接收到所述数据传输组件601发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件601;

需要说明的是,所述预设消息集群603可以是具有高性能、高可靠以及高实时等优点的分布式开源消息中间件或服务器集群,例如rocketmq集群或kafka集群等,在实际应用中,所述预设消息集群603可通过生产者(producer)对获取到的消息分类存储得到消息队列,然后由消费者(consumer)根据消息队列进行消息的顺序消费,且消费者在对消息进行消费时可通过与消息集群建立长连接的方式,不断地从集群中拉取消息然后对这些消息进行消费。

所述数据传输组件061,还用于根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群603中存放的日志数据进行消费,并将消费后的日志数据发送至数据搜索组件602进行保存。

需要说明的是,所述消费顺序可以是日志数据或消息被消息接收端(如数据传输组件601)接收并处理时对应的消息处理顺序。

在具体实现中,数据传输组件601根据预设消息集群603发送的消息队列确定出消费顺序,再按消费顺序对预设消息集群603中存放的日志数据进行消费,然后将消费后的日志数据发送至数据搜索组件602进行保存。

本实施例数据传输组件根据接收到的数据采集请求确定本次数据采集对应的目标数据源和目标数据源中所保存数据的数据类型,根据数据类型调用对应的预置脚本对目标数据源进行数据采集,然后对采集到的日志数据进行初始化处理获得初始化日志数据,并将初始化日志数据发送至预设消息集群;预设消息集群根据接收到的初始化日志数据生成消息队列,在接收到数据传输组件发送的消息拉取请求时,将消息队列发送至所述数据传输组件;数据传输组件根据消息队列确定消费顺序,按消费顺序对预设消息集群中存放的日志数据进行消费,并将消费后的日志数据发送至数据搜索组件进行保存,由于是通过数据传输组件先确定目标数据源,再根据目标数据源所保存数据的数据类型来调用相应的脚本对日志数据进行采集,从而能够增大数据采集的覆盖面,实现对日志数据的多样化采集,同时通过预设消息集群来接收初始化日志数据并生成消息队列,从而为实现大规模日志数据的采集提供了有效途径。

基于本发明上述日志数据处理装置第一实施例,提出本发明日志数据处理装置的第二实施例。

在本实施例中,所述数据传输组件601,还用于根据所述数据类型调用对应的预置脚本对所述目标数据源进行数据采集;获取预先定义的过滤规则,并根据所述过滤规则对采集到的日志数据进行过滤;将过滤后的日志数据转换成预设格式的初始化日志数据,并将所述初始化日志数据发送至预设消息集群603。

进一步地,所述数据传输组件601,还用于在确定出所述数据类型为数据库数据或应用日志时,调用预设的监听脚本对所述目标数据源进行数据采集。

进一步地,所述数据传输组件601,还用于在确定出所述数据类型为访问日志时,调用预置脚本对所述目标数据源进行数据采集,获取用户访问日志;根据预先配置的安全策略的对所述用户访问日志进行信息过滤获得初始化日志数据,将所述初始化日志数据发送至预设消息集群603。

进一步地,所述预设消息集群603,还用于接收所述初始化日志数据,确定所述初始化日志数据所属的消息类别;根据确定出的消息类别对所述初始化日志数据进行分类存储,并根据存储结果生成包含有所述消费顺序的消息队列;在接收到所述数据传输组件601发送的消息拉取请求时,将所述消息队列发送至所述数据传输组件601。

进一步地,所述数据传输组件601,还用于根据所述消息队列确定消费顺序,按所述消费顺序对所述预设消息集群603中存放的日志数据进行消费;在获取到所述数据搜索组件602发送的数据获取指令时,确定所述数据搜索组件602发送所述数据获取指令的发送时间参数;调用预置插件提取所述初始化日志数据中包含的原始时间参数,根据所述原始时间参数对所述发送时间参数进行参数重定义;在完成所述参数重定义时,将消费后的日志数据发送至所述数据搜索组件602进行保存。

进一步地,所述数据传输组件601,还用于调用预置插件提取所述初始化日志数据中包含的原始时间参数,对所述原始时间参数进行格式化获得目标格式的日期字段;根据所述日期字段对所述发送时间参数中的日期字段进行替换,以实现对所述发送时间参数的重定义。

本发明日志数据处理系统的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1