CN106250496A - 一种日志文件中的数据收集的方法及系统 - Google Patents

一种日志文件中的数据收集的方法及系统 Download PDF

Info

Publication number
CN106250496A
CN106250496A CN201610624316.7A CN201610624316A CN106250496A CN 106250496 A CN106250496 A CN 106250496A CN 201610624316 A CN201610624316 A CN 201610624316A CN 106250496 A CN106250496 A CN 106250496A
Authority
CN
China
Prior art keywords
file
journal file
play amount
consumption
journal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610624316.7A
Other languages
English (en)
Inventor
范卫卫
张翼
温宗臣
崔晶晶
林佳婕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING GEO POLYMERIZATION TECHNOLOGY Co Ltd
Original Assignee
BEIJING GEO POLYMERIZATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING GEO POLYMERIZATION TECHNOLOGY Co Ltd filed Critical BEIJING GEO POLYMERIZATION TECHNOLOGY Co Ltd
Priority to CN201610624316.7A priority Critical patent/CN106250496A/zh
Publication of CN106250496A publication Critical patent/CN106250496A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种日志文件中的数据收集的方法及系统
技术领域
本发明涉及大数据处理的技术领域,尤其涉及一种日志文件中的数据收集的方法,以及日志文件中的数据收集的系统。
背景技术
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.日志滚动时不丢失数据。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。

Claims (6)

1.一种日志文件中的数据收集的方法,其特征在于:其包括以下步骤:
(1)定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;
(2)实时收集:收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;
(3)断点续传:如果日志收集进程异常退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。
2.根据权利要求1所述的日志文件中的数据收集的方法,其特征在于:该方法还包括步骤(4),滚动日志时,生成的文件被检查文件长度,根据日志文件的inode值定位到滚动后的日志文件,每个日志文件的长度和日志文件消费偏移量进行对比,进而得出是否需要消费该文件。
3.根据权利要求1或2所述的日志文件中的数据收集的方法,其特征在于:所述步骤(2)中实时检查文件长度和消费偏移量,如果消费偏移量小于文件长度,则该文件可以进行消费。
4.根据权利要求1所述的日志文件中的数据收集的方法,其特征在于:在所述步骤(1)之前还包括:配置文件准备,配置文件包括:日志路径,元数据文件输出路径,收集日志后下发到下游的相关配置。
5.一种日志文件中的数据收集的系统,其特征在于:该系统包括:
定期检查模块,其配置来定期检查日志目录下的日志文件的信息,信息包括:日志文件名称、日志文件长度、日志文件的inode值;
实时收集模块,其配置来收集日志,新产生的文件消费偏移量为0,消费之后记录该文件的inode值、消费偏移量到元数据文件;
断点续传模块,其配置来当日志收集进程异常时退出,重新启动日志收集进程的时候,载入消费偏移量,从该消费偏移量点继续消费。
6.根据权利要求5所述的日志文件中的数据收集的系统,其特征在于:该系统还包括滚动日志模块,其配置来滚动日志时,生成的文件被检查文件长度,根据日志文件的inode值定位到滚动后的日志文件,每个日志文件的长度和日志文件消费偏移量进行对比,进而得出是否需要消费该文件。
CN201610624316.7A 2016-08-02 2016-08-02 一种日志文件中的数据收集的方法及系统 Pending CN106250496A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610624316.7A CN106250496A (zh) 2016-08-02 2016-08-02 一种日志文件中的数据收集的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610624316.7A CN106250496A (zh) 2016-08-02 2016-08-02 一种日志文件中的数据收集的方法及系统

Publications (1)

Publication Number Publication Date
CN106250496A true CN106250496A (zh) 2016-12-21

Family

ID=57605726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610624316.7A Pending CN106250496A (zh) 2016-08-02 2016-08-02 一种日志文件中的数据收集的方法及系统

Country Status (1)

Country Link
CN (1) CN106250496A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991177A (zh) * 2017-04-06 2017-07-28 广东亿迅科技有限公司 一种分布式环境下实时日志的无损采集方法及其系统
CN107341258A (zh) * 2017-07-12 2017-11-10 中国工商银行股份有限公司 一种日志数据采集方法及系统
CN108710691A (zh) * 2018-05-22 2018-10-26 浪潮软件集团有限公司 一种日志管理的方法及装置
CN108984545A (zh) * 2017-05-31 2018-12-11 广东神马搜索科技有限公司 日志文件处理方法、装置和服务器
CN109032910A (zh) * 2018-07-24 2018-12-18 北京百度网讯科技有限公司 日志采集方法、装置及存储介质
CN114363042A (zh) * 2021-12-30 2022-04-15 爱集微咨询(厦门)有限公司 日志分析方法、装置、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1361489A (zh) * 2000-12-28 2002-07-31 深圳市中兴通讯股份有限公司 一种日志信息的自动循环存储方法和系统
CN103412803A (zh) * 2013-08-15 2013-11-27 华为技术有限公司 数据恢复的方法及装置
CN104486107A (zh) * 2014-12-05 2015-04-01 曙光信息产业(北京)有限公司 一种日志采集装置及方法
CN104714878A (zh) * 2013-12-11 2015-06-17 阿里巴巴集团控股有限公司 一种收集日志数据的方法及装置
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1361489A (zh) * 2000-12-28 2002-07-31 深圳市中兴通讯股份有限公司 一种日志信息的自动循环存储方法和系统
CN103412803A (zh) * 2013-08-15 2013-11-27 华为技术有限公司 数据恢复的方法及装置
CN104714878A (zh) * 2013-12-11 2015-06-17 阿里巴巴集团控股有限公司 一种收集日志数据的方法及装置
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
CN104486107A (zh) * 2014-12-05 2015-04-01 曙光信息产业(北京)有限公司 一种日志采集装置及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991177A (zh) * 2017-04-06 2017-07-28 广东亿迅科技有限公司 一种分布式环境下实时日志的无损采集方法及其系统
CN106991177B (zh) * 2017-04-06 2020-11-13 广东亿迅科技有限公司 一种分布式环境下实时日志的无损采集方法及其系统
CN108984545A (zh) * 2017-05-31 2018-12-11 广东神马搜索科技有限公司 日志文件处理方法、装置和服务器
CN107341258A (zh) * 2017-07-12 2017-11-10 中国工商银行股份有限公司 一种日志数据采集方法及系统
CN107341258B (zh) * 2017-07-12 2020-03-13 中国工商银行股份有限公司 一种日志数据采集方法及系统
CN108710691A (zh) * 2018-05-22 2018-10-26 浪潮软件集团有限公司 一种日志管理的方法及装置
CN109032910A (zh) * 2018-07-24 2018-12-18 北京百度网讯科技有限公司 日志采集方法、装置及存储介质
CN114363042A (zh) * 2021-12-30 2022-04-15 爱集微咨询(厦门)有限公司 日志分析方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN106250496A (zh) 一种日志文件中的数据收集的方法及系统
CN103955530B (zh) 一种在线重复数据删除系统的数据重建优化方法
CN106021031B (zh) 一种btrfs文件系统的删除数据恢复方法和装置
CN104967658A (zh) 一种多终端设备上的数据同步方法
CN105095211A (zh) 多媒体数据的获取方法和装置
CN104281717B (zh) 一种建立海量id映射关系的方法
CN105630810B (zh) 一种对于海量小文件在分布式存储系统中上载的方法
CN111143158B (zh) 一种监控数据实时存储方法、系统、电子设备及存储介质
CN109710185A (zh) 数据处理方法及装置
CN109032910A (zh) 日志采集方法、装置及存储介质
CN106569936A (zh) 一种实时采集滚动日志的方法及系统
CN110505495A (zh) 多媒体资源抽帧方法、装置、服务器及存储介质
CN109241187A (zh) 基于Kafka消息队列的MongoDB日志采集和分析系统
CN104050057B (zh) 一种历史感知的数据去重碎片消除方法与系统
CN103176867B (zh) 一种快速文件差异备份方法
CN105005517B (zh) 呼叫中心录音文件的存储备份系统及方法
CN102880718A (zh) 一种灵活日志的存贮和获取方法
CN103034655A (zh) 一种用户行为信息的收集方法、系统及相关设备
CN103236938A (zh) 一种基于缓存及异步处理技术的用户行为采集方法及系统
CN111159117B (zh) 一种低开销的文件操作日志采集方法
CN103207916A (zh) 元数据处理的方法和装置
CN109254892A (zh) 一种生成报告的方法及装置
CN108304527A (zh) 一种数据提取方法
CN104408097A (zh) 一种基于字符段热更新的混合索引方法及系统
CN104166524A (zh) 一种元数据和数据的处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20161221

RJ01 Rejection of invention patent application after publication