一种日志分析方法和系统技术方案

技术编号:17779721 阅读:48 留言:0更新日期:2018-04-22 08:14
本申请公开了一种日志分析方法和系统,其中方法包括:实时采集各应用系统产生的日志数据,并缓存至数据缓存服务器;数据处理服务器利用Storm系统按照所述缓存的先后顺序实时地获取所述日志数据,并放入预设的批处理容器中,当满足预设的处理条件时,对所述批处理容器中的日志进行解析处理,并将装有所述解析处理结果的批处理容器加入索引队列;在所述索引队列非空时,所述Storm系统实时地依次从所述索引队列中取出批处理容器并对所取出批处理容器中的日志数据进行存储,同时创建相应的数据索引。采用本发明专利技术,可以实时处理大规模日志数据。

【技术实现步骤摘要】
一种日志分析方法和系统
本专利技术涉及大数据处理技术,特别是涉及一种日志分析方法和系统。
技术介绍
目前大部分公司的IT系统都会由多个相互独立的软件系统构成。一般意义上来说,没有任何一个系统是百分之百可靠且没有问题的,用户在使用过程中都会出现一些问题,或者用户的一些不正确操作导致出现不是用户想要的结果。系统产生的日志能够客观的反应软件系统的真实运行情况,为软件性能调优、故障排查提供有力支撑。当出现上述问题时,通常是由后台研发人员通过查找日志、排查原因,来定位问题并与之解决。为了能够及时且有效的分析海量日志,迅速而准确的定位问题原因,使系统维护人员先于用户发现问题并与解决,目前提出了一些通过对日志文件进行分析实现主动报警的日志分析方案。现有的日志分析方案通常是利用Hadoop开源框架实现对日志进行批处理的系统。随着业务数据规模的爆炸式增长和数据实时处理能力的要求越来越高,像Hadoop这样的在批处理系统上占优势的框架已不能满足日志数据的实时处理需求,也就是说,上述批处理方式实现的日志分析方案无法应对海量日志数据的实时处理。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种日志分析方法和系统,可以实时处理大规模日志数据。为了达到上述目的,本专利技术提出的技术方案为:一种日志分析方法,包括:实时采集各应用系统产生的日志数据,并缓存至数据缓存服务器;数据处理服务器利用Storm系统按照所述缓存的先后顺序实时地获取所述日志数据,并放入预设的批处理容器中,当满足预设的处理条件时,对所述批处理容器中的日志进行解析处理,并将装有所述解析处理结果的批处理容器加入索引队列;在所述索引队列非空时,所述Storm系统实时地依次从所述索引队列中取出批处理容器并对所取出批处理容器中的日志数据进行存储,同时创建相应的数据索引。一种日志分析系统,包括:数据采集服务器、数据缓存服务器、数据处理服务器和数据存储设备;其中,数据采集服务器,用于实时采集各应用系统产生的日志数据,并缓存至数据缓存服务器;数据处理服务器,用于利用Storm系统按照所述缓存的先后顺序实时地从所述数据缓存服务器获取所述日志数据,并放入预设的批处理容器中,当满足预设的处理条件时,对所述批处理容器中的日志进行解析处理,并将装有所述解析处理结果的批处理容器加入索引队列;在所述索引队列非空时,所述Storm系统实时地依次从所述索引队列中取出批处理容器,并将所取出批处理容器中的日志数据存储至所述数据存储设备,并创建相应的数据索引。综上所述,本专利技术提出的日志分析方法和系统,一方面通过引入利用Storm系统,利用利用Storm系统的实时处理数据的优势,提升大规模日志数据的处理速度,另一方面,在Storm系统的基础上引入批处理容器,利用批处理方式来提升Storm系统的处理速度,从而可以缓解大规模日志数据对Storm系统的处理压力,有利于减少并发数据处理的出错概率,提升系统的稳定性。因此,本专利技术可以满足大规模日志数据的实时处理需求。附图说明图1为本专利技术实施例的方法流程示意图;图2为本专利技术实施例的系统结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本专利技术作进一步地详细描述。本专利技术的核心思想是:引入Stom开源框架对日志实时处理,并结合批处理方式缓解系统压力,如此,可以实现对海量日志数据的实时处理。图1为本专利技术实施例的方法流程示意图,如图1所示,该方法实施例主要包括:步骤101、实时采集各应用系统产生的日志数据,并缓存至数据缓存服务器。较佳地,可以利用Flume系统进行所述日志数据的实时采集。Flume系统是一个分布式的海量日志收集系统,本专利技术引入其负责采集主机、应用、数据库或其他应用系统设备产生的日志。如此,可充分利用Flume系统对海量日志数据进行采集、聚合和传输的实时性和高可靠性优势,以满足海量日志数据的实时采集处理需要。较佳地,所述数据缓存服务器利用Kafka系统缓存所述日志数据。这样,Flume系统采集到的日志数据,可以作为消息存储在Kafka系统中,在实际应用中Kafka系统可以采用分布式的方式实现,因此,可以为了提高日志缓存的吞吐量和速度,以满足海量日志数据的实时缓存需要。步骤102、数据处理服务器利用Storm系统按照所述缓存的先后顺序实时地获取所述日志数据,并放入预设的批处理容器中,当满足预设的处理条件时,对所述批处理容器中的日志进行解析处理,并将装有所述解析处理结果的批处理容器加入索引队列。Storm系统支持创建拓扑结构来转换没有终点的数据流,不同于Hadoop作业,这些转换从不停止,它会持续处理到达的数据,从而可以实现数据处理的实时性。本步骤中,数据处理服务器将利用Storm系统按照所述缓存的先后顺序,来实时地获取日志数据,并将其放入批处理容器中,利用批处理容器累积日志数据,待满足一定的处理条件后,再进行处理。这样,通过引入批处理容器,实现在Storm系统内部采用批处理的方式对海量日志数据进行实时处理,如此,可以提高日志数据处理的效率,缓解大规模日志数据并发的场景下对Storm系统造成的处理压力,有利于减少并发数据处理的出错概率,提升系统的稳定性。较佳地,所述处理条件可以包括:所述批处理容器中的日志数量达到预设的数量阈值,或者,所述批处理容器中的日志累积时间达到预设的时间长度。也就是说,满足上述任一条件时(即批处理容器中的日志数量达到一定的数量或者批处理容器中的日志累积时间达到一定的时间长度),都会触发对批处理容器中的日志数据进行处理。在实际应用中,所述批处理容器可以为基于JAVA封装的容器,或是Redis数据为等基于内存计算的模式。基于上述处理条件控制日志的处理时机,一方面批处理容器装满后将被持久化存储并创建索引,另一方面,通过日志累积时间的限制,可以使得在日志数据流量较小的时候,避免日志数据较长时间得不到处理,从而可以确保日志数据的实时性。较佳地,所述数量阈值小于等于单个Storm系统节点在单位时间内能处理的最大日志数量。在实际应用中,所述时间长度可以根据用户能够容忍的对故障识别时延长度设置,以满足用户的日志数据处理时间需求。较佳地,为了确保日志按照采集的时间顺序进行处理,并确保处理效率,所述解析处理结果在所述索引队列中的顺序需要与所述解析处理的顺序一致。进一步地,所述索引队列可以采用队列中封闭链表的数据结构,其中,所述队列的元素为链表的指针,所述链表用于存储所述解析处理结果。如此,利用队列的先入先出的特性,可以确保日志存储的处理顺序与解析的顺序一致,同时可以保证处理效率。另外,采用链表存储被解析的日志数据,可以实现快速增加和删除,很好的保证了日志数据被索引的效率。本步骤中解析处理的具体实现方法同现有方案,在此不再赘述。步骤103、在所述索引队列非空时,所述Storm系统实时地依次从所述索引队列中取出批处理容器并对所取出批处理容器中的日志数据进行存储,同时创建相应的数据索引。较佳地,采用JSON数据格式进行所述存储,所述Storm系统利用ElasticSearch搜索系统创建所述数据索引。较佳地,在创建完数据索引之后,可以将所述数据索引发送给客户端,以满足客户检索日志数据的需要。图2为与上述方法相对应的一种日本文档来自技高网...
一种日志分析方法和系统

【技术保护点】
一种日志分析方法,其特征在于,包括:实时采集各应用系统产生的日志数据,并缓存至数据缓存服务器;数据处理服务器利用Storm系统按照所述缓存的先后顺序实时地获取所述日志数据,并放入预设的批处理容器中,当满足预设的处理条件时,对所述批处理容器中的日志进行解析处理,并将装有所述解析处理结果的批处理容器加入索引队列;在所述索引队列非空时,所述Storm系统实时地依次从所述索引队列中取出批处理容器并对所取出批处理容器中的日志数据进行存储,同时创建相应的数据索引。

【技术特征摘要】
1.一种日志分析方法,其特征在于,包括:实时采集各应用系统产生的日志数据,并缓存至数据缓存服务器;数据处理服务器利用Storm系统按照所述缓存的先后顺序实时地获取所述日志数据,并放入预设的批处理容器中,当满足预设的处理条件时,对所述批处理容器中的日志进行解析处理,并将装有所述解析处理结果的批处理容器加入索引队列;在所述索引队列非空时,所述Storm系统实时地依次从所述索引队列中取出批处理容器并对所取出批处理容器中的日志数据进行存储,同时创建相应的数据索引。2.根据权利要求1所述的方法,其特征在于,利用Flume系统进行所述日志数据的实时采集;所述数据缓存服务器利用Kafka系统缓存所述日志数据。3.根据权利要求1所述的方法,其特征在于,采用JSON数据格式进行所述存储,所述Storm系统利用ElasticSearch搜索系统创建所述数据索引。4.根据权利要求1所述的方法,其特征在于,所述解析处理结果在所述索引队列中的顺序与所述解析处理的顺序一致。5.根据权利要求1所述的方法,其特征在于,所述索引队列采用队列中封闭链表的数据结构,其中,所述队列的元素为链表的指针,所述链表用于存储所述解析处理结果。6.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:将所述数据索引发送给客户端;所述处理条件包括:所述批处理容器中的日志数量达到预设的数量阈值,或者,所述批处理容器中的日志累积时间达到预设的时间长度;所述数量阈值小于等于单个Storm系统节点在单位时间内能处理的最大日志数量;所述时间长度根据用户能够容忍的对故障识别时延长度设置。7.一种日志分析系统,其特征在于,包括:数据采集服务器、数据缓存服务器、数据处理服务器和数...

【专利技术属性】
技术研发人员:程鹏
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1