一种日志文件中的数据收集的方法及系统技术方案

技术编号:14253784 阅读:136 留言:0更新日期:2016-12-22 16:13
本申请公开一种日志文件中的数据收集的方法,其能够实现实时收集日志文件中的数据,支持断点续传,日志滚动时不丢失数据。其包括步骤:(1)定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;(2)实时收集:收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;(3)断点续传:如果日志收集进程异常退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。还提供了一种日志文件中的数据收集的系统。

【技术实现步骤摘要】

本专利技术涉及大数据处理的
,尤其涉及一种日志文件中的数据收集的方法,以及日志文件中的数据收集的系统。
技术介绍
Flume(Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。)提供了两种源source:ExecSource执行系统命令tail–F;另一种是spooldir。该系统可以一定程度上支持实时收集日志文件中的数据。但是都存在一定问题。ExecSource执行系统命令tail–F实时收集日志文件中的数据时,存在的问题如下:问题1:如果flume的agent进程意外挂掉了,启动后执行tail–F的话会出现问题。A)比如tail–F配置成从文件头开始读取:tail-n+0–F。那很有可能此文件的前一部分,在agent挂掉前已经读取过了,这次又重读了一次。B)如果tail–F配置成从文件头尾开始读取:tail-n 0–F。那agent挂掉的这段时间内产生的日志数据,就读不到了。问题2:日志滚动的时候,如app.log,滚动生成app.log.20160526。日志收集器有一定风险,app.log.20160526的数据还没有完全读完就切换到app.log。另一种spooldir在实时收集日志文件中的数据时,存在的问题如下:问题1:spooldir的话会监控日志目录下是否有新产生的日志文件,读取文件时要求文件内容不可变。即spooldir读取app.log.20160422文件的日志,但是不能读取app.log的日志,因为app.log文件中还可以不断地产生新的日志数据。spooldir的问题就是读取滚动后生成的日志文件,时效性差了,日志文件如果按天滚动,那就是一天才能收集一次。如果加快日志滚动,比如按分钟滚动,会产生很多小文件,不利于管理维护。问题2:spooldir也不支持断点续传。
技术实现思路
为克服现有技术的缺陷,本专利技术要解决的技术问题是提供了一种日志文件中的数据收集的方法,其能够实现实时收集日志文件中的数据,支持断点续传,日志滚动时不丢失数据。本专利技术的技术方案是:这种日志文件中的数据收集的方法,其包括以下步骤:(1)定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;(2)实时收集:收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;(3)断点续传:如果日志收集进程异常退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。本专利技术通过消费之后记录该文件的inode值、消费偏移量到元数据文件,如果日志收集进程异常退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费,从而能够实现实时收集日志文件中的数据,支持断点续传,日志滚动时不丢失数据。还提供了一种日志文件中的数据收集的系统,该系统包括:定期检查模块,其配置来定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;实时收集模块,其配置来收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;断点续传模块,其配置来当日志收集进程异常时退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。附图说明图1所示为根据本专利技术的日志文件中的数据收集的方法的流程图。具体实施方式如图1所示,这种日志文件中的数据收集的方法,其包括以下步骤:(1)定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;说明为何要取inode值:由于日志滚动的时候会改变名字的,为了还能找到该文件,需要找一个唯一标识;同一个物理磁盘里面文件做rename,或者mv的时候,其inode值不变;日志滚动相当于做rename或mv操作;举例:比如app.log的inode=5914332,日志滚动时,生成的日志文件app.log.20160422,其inode依然是5914332,而新的app.log文件inode是新的值,比如:5914335;(2)实时收集:收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;可查看日志收集器的metrics信息,查看收集日志的数量;(3)断点续传:如果日志收集进程异常退出,由于之前记录消费偏移量到元数据文件了,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。本专利技术通过消费之后记录该文件的inode值、消费偏移量到元数据文件,如果日志收集进程异常退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费,从而能够实现实时收集日志文件中的数据,支持断点续传,日志滚动时不丢失数据。另外,该方法还包括步骤(4),滚动日志时,生成的文件被检查文件长度,根据日志文件的inode值定位到滚动后的日志文件,每个日志文件的长度和日志文件消费偏移量进行对比,进而得出是否需要消费该文件。滚动日志时,生成的文件app.log、app.log.20160422都会被检查文件长度,可以根据日志文件的inode值定位到滚动后的日志文件app.log.20160422。每个日志文件的长度和日志文件已被消费的偏移量进行对比,进而得出是否需要消费该文件,不会出现滚动日志时app.log.20160422文件有部分数据没有消费。另外,所述步骤(2)中实时检查文件长度和消费偏移量,如果消费偏移量小于文件长度,则该文件可以进行消费。另外,在所述步骤(1)之前还包括:配置文件准备,配置文件包括:日志路径,元数据文件输出路径,收集日志后下发到下游的相关配置。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本专利技术的方法相对应的,本专利技术还同时包括一种日志文件中的数据收集的系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。该系统包括:定期检查模块,其配置来定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;实时收集模块,其配置来收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;断点续传模块,其配置来当日志收集进程异常时退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。另外,该系统还包括滚动日志模块,其配置来滚动日志时,生成的文件被检查文件长度,根据日志文件的inode值定位到滚动后的日志文件,每个日志文件的长度和日志文件消费偏移量进行对比,进而得出是否需要消费该文件。本专利技术的有益效果如下:1.实时收集日志文件中的数据。2.支持断点续传。收集器重新启动时,不会重复收集数据或丢失数据。3.日志滚动时不丢失数据。以上所述,本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201610624316.html" title="一种日志文件中的数据收集的方法及系统原文来自X技术">日志文件中的数据收集的方法及系统</a>

【技术保护点】
一种日志文件中的数据收集的方法,其特征在于:其包括以下步骤:(1)定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;(2)实时收集:收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;(3)断点续传:如果日志收集进程异常退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。

【技术特征摘要】
1.一种日志文件中的数据收集的方法,其特征在于:其包括以下步骤:(1)定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;(2)实时收集:收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;(3)断点续传:如果日志收集进程异常退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。2.根据权利要求1所述的日志文件中的数据收集的方法,其特征在于:该方法还包括步骤(4),滚动日志时,生成的文件被检查文件长度,根据日志文件的inode值定位到滚动后的日志文件,每个日志文件的长度和日志文件消费偏移量进行对比,进而得出是否需要消费该文件。3.根据权利要求1或2所述的日志文件中的数据收集的方法,其特征在于:所述步骤(2)中实时检查文件长度和消费偏移量,如果消费偏移量小于文件长度,则该文件可以进行消费。4.根据权利要求1所述的日...

【专利技术属性】
技术研发人员:范卫卫张翼温宗臣崔晶晶林佳婕
申请(专利权)人:北京集奥聚合科技有限公司
类型:发明
国别省市:北京;11

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

1