CN106250496A - 一种日志文件中的数据收集的方法及*** - Google Patents
一种日志文件中的数据收集的方法及*** Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling 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值定位到滚动后的日志文件,每个日志文件的长度和日志文件消费偏移量进行对比,进而得出是否需要消费该文件。
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 (7)
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 | 北京百度网讯科技有限公司 | 日志采集方法、装置及存储介质 |
CN111931105A (zh) * | 2020-07-20 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种kafka消费指定推送时间数据处理方法 |
CN114363042A (zh) * | 2021-12-30 | 2022-04-15 | 爱集微咨询(厦门)有限公司 | 日志分析方法、装置、设备及可读存储介质 |
Citations (5)
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增量日志的方法和装置 |
-
2016
- 2016-08-02 CN CN201610624316.7A patent/CN106250496A/zh active Pending
Patent Citations (5)
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 (9)
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 | 北京百度网讯科技有限公司 | 日志采集方法、装置及存储介质 |
CN111931105A (zh) * | 2020-07-20 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种kafka消费指定推送时间数据处理方法 |
CN114363042A (zh) * | 2021-12-30 | 2022-04-15 | 爱集微咨询(厦门)有限公司 | 日志分析方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250496A (zh) | 一种日志文件中的数据收集的方法及*** | |
CN106021031B (zh) | 一种btrfs文件***的删除数据恢复方法和装置 | |
CN104967658A (zh) | 一种多终端设备上的数据同步方法 | |
CN105095211A (zh) | 多媒体数据的获取方法和装置 | |
CN104281717B (zh) | 一种建立海量id映射关系的方法 | |
CN103955530A (zh) | 一种在线重复数据删除***的数据重建优化方法 | |
CN105630810B (zh) | 一种对于海量小文件在分布式存储***中上载的方法 | |
CN111143158B (zh) | 一种监控数据实时存储方法、***、电子设备及存储介质 | |
CN109710185A (zh) | 数据处理方法及装置 | |
CN109032910A (zh) | 日志采集方法、装置及存储介质 | |
CN106569936A (zh) | 一种实时采集滚动日志的方法及*** | |
CN110505495A (zh) | 多媒体资源抽帧方法、装置、服务器及存储介质 | |
CN109241187A (zh) | 基于Kafka消息队列的MongoDB日志采集和分析*** | |
CN104050057B (zh) | 一种历史感知的数据去重碎片消除方法与*** | |
CN103176867B (zh) | 一种快速文件差异备份方法 | |
CN105005517B (zh) | 呼叫中心录音文件的存储备份***及方法 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件*** | |
CN102880718A (zh) | 一种灵活日志的存贮和获取方法 | |
CN103034655A (zh) | 一种用户行为信息的收集方法、***及相关设备 | |
CN103236938A (zh) | 一种基于缓存及异步处理技术的用户行为采集方法及*** | |
CN111159117B (zh) | 一种低开销的文件操作日志采集方法 | |
CN103207916A (zh) | 元数据处理的方法和装置 | |
CN109254892A (zh) | 一种生成报告的方法及装置 | |
CN108304527A (zh) | 一种数据提取方法 | |
CN104408097A (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 |