CN106776715A - 一种收集日志的方法及系统 - Google Patents
一种收集日志的方法及系统 Download PDFInfo
- Publication number
- CN106776715A CN106776715A CN201611021611.XA CN201611021611A CN106776715A CN 106776715 A CN106776715 A CN 106776715A CN 201611021611 A CN201611021611 A CN 201611021611A CN 106776715 A CN106776715 A CN 106776715A
- Authority
- CN
- China
- Prior art keywords
- event
- flume
- path
- content
- configuration
- 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
- 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
一种收集日志的方法,其提高Flume中数据传输的速度,解决数据传送并发性较低、数据传送速度较慢、传送数据实时性差的问题,使得Fluem根据日志路径跨Kafka将日志输出到指定的hdfs。该方法包括:(1)StringBuilder按照字符添加内容,遇到\n停止,n为整数,把n提取出让其为可配置参数在配置文件中配置,以便Flume传送一个Event内容相当于传送n个之前Event内容;(2)数据经过kafka到flume,把接收到的日志进行切割,获取到日志路径,判断路径内容属于哪个hdfs路径,然后把日志发送到hdfs;(3)准备配置文件;(4)启动实时日志收集器,收集日志。还有收集日志的系统。
Description
技术领域
本发明涉及大数据处理的技术领域,尤其涉及一种收集日志的方法,以及收集日志的系统。
背景技术
Flume以Event数据传送单位,默认把一行数据封装成一个Event,Sources端在flume-ng-core子项目中的org.apache.flume.serialization包下,有一个名为LineDeserializer的类,这个类负责把数据按行来读取,每一行封装成一个Event(实现方式:按字节读取,当遇到"\n"时封装成Event返回,下一次获取Event时继续获取下一字节并判断)。
Flume自带Source端拦截器Interceptors,利用Interceptors可以在在收集的数据的event的header中加入处理的时间戳、agent的主机或者IP、固定key-value等等。
现有技术的缺陷如下:
1、Flume中的数据按照Event的格式进行发送,一个Event对应原始文件的一行数据内容,主要实现方式:按字节读取,当遇到"\n"时封装成Event返回,下一次获取Event时继续获取下一字节并判断,Event中的body内容为一行数据,这样数据传送并发性较低,数据传送速度较慢,传送数据实时性差。
2、如果想根据Flume的Interceptors的指定内容把数据输出到相应hdfs路径下是可行的,但是,为了保持数据的通用性,企业中使用Flume一般是Flume+Kafka+Flume的架构,第一个Flume是收集日志入Kafka,第二个Fluem是读取Kafka中的日志入hdfs,使用kafka作为数据的中间存储介质,是考虑到下游使用kafka的数据还可以进行实时计算,分析日志。Flume中Haeder不能在Kafka中传递,因此Interceptors在这种应用场景下失效。
发明内容
为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种收集日志的方法,其提高Flume中数据传输的速度,解决数据传送并发性较低、数据传送速度较慢、传送数据实时性差的问题,使得Fluem根据日志路径跨Kafka将日志输出到指定的hdfs。
本发明的技术方案是:这种收集日志的方法,该方法包括以下步骤:
(1)StringBuilder按照字符添加内容,遇到\n停止,n为整数,把n提取出让其为可配置参数在配置文件中配置,以便Flume传送一个Event内容相当于传送n个之前Event内容;
(2)数据经过kafka到flume,把接收到的日志进行切割,获取到日志路径,判断路径内容属于哪个hdfs路径,然后把日志发送到hdfs;
(3)准备配置文件;
(4)启动实时日志收集器,收集日志。
本发明把n提取出让其为可配置参数在配置文件中配置,Flume传送一个Event内容就相当于传送n个之前Event内容,因此提高Flume中数据传输的速度,解决数据传送并发性较低、数据传送速度较慢、传送数据实时性差的问题;把日志路径加在日志数据的后面,封装在body里面,这样做就可以通过Kafka传送数据,再到Flume把日志路径进行切割,获取到路径之后检查路径的内容,根据路径把日志输出到指定的hdfs路径下,因此使得Fluem根据日志路径跨Kafka将日志输出到指定的hdfs。
还提供了一种收集日志的系统,该系统包括:
配置n模块,其配置来StringBuilder按照字符添加内容,遇到\n停止,n为整数,把n提取出让其为可配置参数在配置文件中配置,以便Flume传送一个Event内容相当于传送n个之前Event内容;
日志发送模块,其配置来数据经过kafka到flume,把接收到的日志进行切割,获取到日志路径,判断路径内容属于哪个hdfs路径,然后把日志发送到hdfs;
准备模块,其配置来准备配置文件;
收集模块,其配置来启动实时日志收集器,收集日志。
附图说明
图1所示为根据本发明的收集日志的方法的流程图。
具体实施方式
如图1所示,这种收集日志的方法,该方法包括以下步骤:
(1)StringBuilder按照字符添加内容,遇到\n停止,n为整数,把n提取出让其为可配置参数在配置文件中配置,以便Flume传送一个Event内容相当于传送n个之前Event内容;
(2)数据经过kafka到flume,把接收到的日志进行切割,获取到日志路径,判断路径内容属于哪个hdfs路径,然后把日志发送到hdfs;
(3)准备配置文件;
(4)启动实时日志收集器,收集日志。
本发明把n提取出让其为可配置参数在配置文件中配置,Flume传送一个Event内容就相当于传送n个之前Event内容,因此提高Flume中数据传输的速度,解决数据传送并发性较低、数据传送速度较慢、传送数据实时性差的问题;把日志路径加在日志数据的后面,封装在body里面,这样做就可以通过Kafka传送数据,再到Flume把日志路径进行切割,获取到路径之后检查路径的内容,根据路径把日志输出到指定的hdfs路径下,因此使得Fluem根据日志路径跨Kafka将日志输出到指定的hdfs。
另外,所述步骤(1)中,改写Flume源码,更改org.apache.flume.serialization中的LineDeserializer类的方法readLine(),event的内容是获取的StringBuilder中的内容,在遇到第n个\n之后停止,之后获取到日志文件的路径封装在event的body的后面,StringBuilder封装成的Event就是n行的数据内容。
另外,所述步骤(3)包括:Source、Channel、Sink的选择与相关配置,一个Event所封锁的消息的行数的配置。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种收集日志的系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的系统包括:
配置n模块,其配置来StringBuilder按照字符添加内容,遇到\n停止,n为整数,把n提取出让其为可配置参数在配置文件中配置,以便Flume传送一个Event内容相当于传送n个之前Event内容;
日志发送模块,其配置来数据经过kafka到flume,把接收到的日志进行切割,获取到日志路径,判断路径内容属于哪个hdfs路径,然后把日志发送到hdfs;
准备模块,其配置来准备配置文件;
收集模块,其配置来启动实时日志收集器,收集日志。
另外,所述配置n模块中,改写Flume源码,更改org.apache.flume.serialization中的LineDeserializer类的方法readLine(),event的内容是获取的StringBuilder中的内容,在遇到第n个\n之后停止,之后获取到日志文件的路径封装在event的body的后面,StringBuilder封装成的Event就是n行的数据内容。
另外,所述准备模块包括:Source、Channel、Sink的选择与相关配置,一个Event所封锁的消息的行数的配置。
本发明的有益效果如下:
1.提高实时收集日志文件速度与并发性。
2.Fluem根据日志路径跨Kafka将日志输出到指定的hdfs。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (6)
1.一种收集日志的方法,其特征在于:该方法包括以下步骤:
(1)StringBuilder按照字符添加内容,遇到\n停止,n为整数,把n提取出让其为可配置参数在配置文件中配置,以便Flume传送一个Event内容相当于传送n个之前Event内容;
(2)数据经过kafka到flume,把接收到的日志进行切割,获取到日志路径,判断路径内容属于哪个hdfs路径,然后把日志发送到hdfs;
(3)准备配置文件;
(4)启动实时日志收集器,收集日志。
2.根据权利要求1所述的收集日志的方法,其特征在于:所述步骤(1)中,改写Flume源码,更改org.apache.flume.serialization中的LineDeserializer类的方法readLine(),event的内容是获取的StringBuilder中的内容,在遇到第n个\n之后停止,之后获取到日志文件的路径封装在event的body的后面,StringBuilder封装成的Event就是n行的数据内容。
3.根据权利要求2所述的收集日志的方法,其特征在于:所述步骤(3)包括:Source、Channel、Sink的选择与相关配置,一个Event所封锁的消息的行数的配置。
4.一种收集日志的系统,其特征在于:该系统包括:
配置n模块,其配置来StringBuilder按照字符添加内容,遇到\n停止,n为整数,把n提取出让其为可配置参数在配置文件中配置,以便Flume传送一个Event内容相当于传送n个之前Event内容;
日志发送模块,其配置来数据经过kafka到flume,把接收到的日志进行切割,获取到日志路径,判断路径内容属于哪个hdfs路径,然后把日志发送到hdfs;
准备模块,其配置来准备配置文件;
收集模块,其配置来启动实时日志收集器,收集日志。
5.根据权利要求4所述的收集日志的系统,其特征在于:所述配置n模块中,改写Flume源码,更改org.apache.flume.serialization中的LineDeserializer类的方法readLine(),event的内容是获取的StringBuilder中的内容,在遇到第n个\n之后停止,之后获取到日志文件的路径封装在event的body的后面,StringBuilder封装成的Event就是n行的数据内容。
6.根据权利要求5所述的收集日志的系统,其特征在于:所述准备模块包括:Source、Channel、Sink的选择与相关配置,一个Event所封锁的消息的行数的配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611021611.XA CN106776715A (zh) | 2016-11-16 | 2016-11-16 | 一种收集日志的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611021611.XA CN106776715A (zh) | 2016-11-16 | 2016-11-16 | 一种收集日志的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776715A true CN106776715A (zh) | 2017-05-31 |
Family
ID=58969478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611021611.XA Pending CN106776715A (zh) | 2016-11-16 | 2016-11-16 | 一种收集日志的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776715A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327351A (zh) * | 2018-09-12 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 日志数据的实时采集方法、装置、电子设备及存储介质 |
CN109614380A (zh) * | 2018-11-27 | 2019-04-12 | 银清科技(北京)有限公司 | 日志处理方法、系统、计算机设备及可读介质 |
CN110674143A (zh) * | 2019-10-18 | 2020-01-10 | 长春理工大学 | 一种免耕机作业信息监测系统及方法 |
CN110990337A (zh) * | 2019-12-25 | 2020-04-10 | 北京锐安科技有限公司 | 文件搬运方法、装置、计算机设备及存储介质 |
CN111262915A (zh) * | 2020-01-10 | 2020-06-09 | 北京东方金信科技有限公司 | 一种跨Kafka集群的数据转换系统和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324696A (zh) * | 2013-06-06 | 2013-09-25 | 合一信息技术(北京)有限公司 | 一种数据日志收集与统计分析系统和方法 |
EP2950216A1 (fr) * | 2014-05-27 | 2015-12-02 | Bull Sas | Procédé et dispositif d'agrégation synchronisée de données de performance et de données d'exploitation |
-
2016
- 2016-11-16 CN CN201611021611.XA patent/CN106776715A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324696A (zh) * | 2013-06-06 | 2013-09-25 | 合一信息技术(北京)有限公司 | 一种数据日志收集与统计分析系统和方法 |
EP2950216A1 (fr) * | 2014-05-27 | 2015-12-02 | Bull Sas | Procédé et dispositif d'agrégation synchronisée de données de performance et de données d'exploitation |
Non-Patent Citations (3)
Title |
---|
ASIA_KOBE: "Flume Source对多行的处理", 《HTTPS://BLOG.CSDN.NET/ASIA_KOBE/ARTICLE/DETAILS/51003173》 * |
笑天居士: "Logstash multiline 限制行数大小参数", 《HTTPS://BLOG.CSDN.NET/XTJSXTJ/ARTICLE/DETAILS/50350497?UTM_SOURCE=BLOGXGWZ5》 * |
菜菜光: "flume源码学习5-RegexExtractorInterceptor实现", 《HTTPS://BLOG.51CTO.COM/CAIGUANGGUANG/1619537》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327351A (zh) * | 2018-09-12 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 日志数据的实时采集方法、装置、电子设备及存储介质 |
CN109614380A (zh) * | 2018-11-27 | 2019-04-12 | 银清科技(北京)有限公司 | 日志处理方法、系统、计算机设备及可读介质 |
CN110674143A (zh) * | 2019-10-18 | 2020-01-10 | 长春理工大学 | 一种免耕机作业信息监测系统及方法 |
CN110990337A (zh) * | 2019-12-25 | 2020-04-10 | 北京锐安科技有限公司 | 文件搬运方法、装置、计算机设备及存储介质 |
CN111262915A (zh) * | 2020-01-10 | 2020-06-09 | 北京东方金信科技有限公司 | 一种跨Kafka集群的数据转换系统和方法 |
CN111262915B (zh) * | 2020-01-10 | 2020-09-22 | 北京东方金信科技有限公司 | 一种跨Kafka集群的数据转换系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776715A (zh) | 一种收集日志的方法及系统 | |
CN102891873B (zh) | 一种存储日志数据的方法及日志数据存储系统 | |
Carneiro et al. | Flowmonitor: a network monitoring framework for the network simulator 3 (ns-3) | |
US9454450B2 (en) | Modeling and testing of interactions between components of a software system | |
US9235490B2 (en) | Modeling and testing of interactions between components of a software system | |
CN105429858B (zh) | 一种多机器人间实时消息传递方法 | |
CN103117900B (zh) | 一种可配置式工业以太网数据解析系统及解析方法 | |
CN107995283A (zh) | 一种数据埋点分析的方法、设备及系统 | |
CN111756714B (zh) | 一种用于工控协议的流量重放式测试方法及测试引擎 | |
CN101789171B (zh) | 一种数据传送总线变换方法及系统 | |
CN104731566B (zh) | 集成开发环境测试装置、方法及系统 | |
CN106709069A (zh) | 高可靠性的大数据日志采集与传输方法 | |
CN106951368A (zh) | 基于uml时序图的测试用例自动生成方法 | |
CN107579874A (zh) | 一种检测流量采集设备数据采集漏报的方法及装置 | |
CN105589782A (zh) | 基于浏览器的用户行为采集方法 | |
CN202906969U (zh) | 一种基于单向光技术的边界安全传输设备及通信系统 | |
CN106649342A (zh) | 数据采集平台中数据处理的方法及装置 | |
CN105162649B (zh) | 针对核电厂安全级网络性能指标的测试方法及其系统 | |
CN106598815A (zh) | 一种实时异步日志收集方法及系统 | |
CN106713011A (zh) | 一种获取测试数据的方法与系统 | |
CN103077080B (zh) | 基于高性能平台的并行程序性能数据采集方法及装置 | |
CN104462242B (zh) | 网页回流量统计方法及装置 | |
CN105429865A (zh) | 一种基于浏览器的微信公众号数据采集方法及装置 | |
CN108243238B (zh) | 一种性能数据的采集方法及装置 | |
CN105577462A (zh) | 移动设备的流量统计方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |