CN106294732A - 基于etl工具的日志收集方法 - Google Patents
基于etl工具的日志收集方法 Download PDFInfo
- Publication number
- CN106294732A CN106294732A CN201610649336.XA CN201610649336A CN106294732A CN 106294732 A CN106294732 A CN 106294732A CN 201610649336 A CN201610649336 A CN 201610649336A CN 106294732 A CN106294732 A CN 106294732A
- Authority
- CN
- China
- Prior art keywords
- journal file
- download
- business device
- file
- instrument
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供基于ETL工具的日志收集方法,使用FTP收集日志,在业务设备的数据源没有问题的前提下,能保证日志数据的准确与一致性。采用ETL工具完成对日志数据下载、转换、上传整个工作流的控制,任何步骤出现问题都可以随时发出错误警告,如果日志文件下载失败可以设立重试机制。如果ETL工具或者FTP异常导致日志数据丢失,数据的恢复方便。能够自动化、定时处理整个工作流。
Description
技术领域
本发明涉及基于ETL工具的日志收集方法。
背景技术
目前,许多企业都有大量的业务设备(例如不同类型的服务器)为用户提供服务,而这些业务设备每天会产生大量的日志数据,需要通过特定的日志系统收集日志数据。常见的日志系统包括agent、collector、store三个基本组件,agent负责封装数据源,例如各个业务设备的日志,将数据源中的数据发送给collector;collector接收多个agent的数据,进行汇总后导入后端的store中;store一般为中央存储系统,例如分布式文件系统等。三个组件的协作,能够从各种日志源上收集日志数据存储到分布式文件系统上,以便于对日志数据进行集中统计分析处理。
上述日志系统的实时性和扩展性比较好,但数据的一致性和容错性不够完善,数据可能丢失或重复,日志数据丢失的时间点不明确,数据恢复不方便,另外可能存在日志数据存储时间错乱,这些都不利于对日志数据的精确统计分析。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分所反映的缺陷,本发明提供基于ETL工具的日志收集方法。
基于ETL工具的日志收集方法,包括:
设置全局变量;
判断是否存在表格前缀标识符,如果存在则拼接表格前缀标识符和表格名称;
删除成功标识符;
收集各个业务设备的日志文件;
生成成功标识符。
进一步的,持续集成工具定时调用ETL工具并监控ETL工具的工作流,ETL工具的工作流异常时发出错误警告。
进一步的,收集各个业务设备的日志文件,包括:
设置局部变量;
下载业务设备的日志文件;
对日志文件进行文本格式转换以符合表格的字段分隔要求;
上传转换后的日志文件。
进一步的,下载业务设备的日志文件,包括:
数据收集设备登录中转设备,从各个业务设备下载日志文件到中转设备;
数据收集设备从中转设备下载日志文件;
数据收集设备登录中转设备,下载业务设备存储的日志文件的大小和验证值;
数据收集设备比较下载的日志文件的大小和验证值与业务设备存储的大小和验证值是否一致,任何一个值不一致则发出错误警告。
更进一步的,对下载的日志文件重命名进行区别。
进一步的,ETL工具为Kettle,持续集成工具为Jenkins,表格为Hive表。
进一步的,全局变量包括HDFS目录地址,日志文件下载目录地址,shell脚本目录,下载成功标识符目录,表格前缀标识符,邮件标题,收件人。
进一步的,局部变量包括业务设备地址,统一资源标识符,FTP用户名和密码,日志文件名称,年,月,日,小时,日志文件下载目录,HDFS路径,Hive表名。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的基于ETL工具的日志收集方法,与现有技术相比,具备如下优点:
1、使用FTP收集日志,在业务设备的数据源没有问题的前提下,能保证日志数据的准确与一致性。
2、采用ETL工具完成对日志数据下载、转换、上传整个工作流的控制,任何步骤出现问题都可以随时发出错误警告,如果日志文件下载失败可以设立重试机制。
3、如果ETL工具或者FTP异常导致日志数据丢失,数据的恢复方便。
4、能够自动化、定时处理整个工作流。
附图说明
图1为具体实施方式中基于ETL工具的日志收集方法的流程图。
图2为具体实施方式中收集各个业务设备的日志文件的方法的流程图。
图3为具体实施方式中下载业务设备的日志文件的方法的流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
实现本发明所述的基于ETL工具的日志收集方法,需要在数据收集设备(例如专用的服务器)上部署ETL工具(ETL为Extract-Transform-Load的缩写,指数据从来源端经过抽取、转换、加载至目的端的过程)和持续集成工具。ETL工具,可以选用开源的Kettle。Kettle由纯java编写,可以在Window、Linux、Unix等操作系统上运行。Kettle中有两种脚本文件transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。持续集成工具,可选用开源的Jenkins。本发明技术方案中Kettle对于日志文件下载、转换、上传的过程也是一个工作流,可以建立一个job控制。Jenkins可以定时调用Kettle的job脚本,如果job异常,Jenkins会发出错误警告。最常见的错误警告的形式是电子邮件,该电子邮件记录具体的错误内容,发送给对应的管理人员。
业务设备的日志文件所包含的日志数据,最终由数据收集设备上传给HDFS(Hadoop是一个由Apache软件基金会开发的分布式系统基础架构,Hadoop实现了一个分布式文件系统Hadoop Distributed File System,简称HDFS),由Hive(Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能)进行统计分析。
对Jenkins进行设置,可以在固定的时间(例如每天凌晨1点,这时业务设备往往处于空闲状态)调用Kettle的job脚本。Kettle的job脚本控制一个工作流,即基于ETL工具的日志收集方法,包括如下步骤,如图1所示:
S101:设置全局变量。
具体的,本步骤中,全局变量包括HDFS目录地址,日志文件下载目录地址,shell脚本目录,下载成功标识符目录,表格前缀标识符,邮件标题,收件人等。当然,设置全局变量,不一定对所有的全局变量都进行设置,根据具体情况设置相关或有改变的全局变量即可。
S102:判断是否存在表格前缀标识符,如果存在则拼接表格前缀标识符和表格名称。
具体的,本步骤可以区分表格的用途。例如,表格(Hive表)的前缀标识符为test,表格名称为tbl_ex_table,则拼接该前缀标识符和表格名称,形成新的表格名称test_tbl_ex_table。这个新的表格名称表示该表格供测试使用。
S103:删除成功标识符。
具体的,本步骤中,Kettle删除一个文件组件,删除成功标识符。成功标识符的具体格式为:表格名称+YYYY-MM-DD+HH/none.lock,其中Y、M、D、H表示年、月、日、小时。如果日志数据是按天下载而不是按小时下载,则HH用none代替。
S104:收集各个业务设备的日志文件。
具体的,本步骤中,可以利用FTP下载业务设备的日志文件。FTP是目前Internet上使用比较广泛的双向文件传输协议,网络上的两台电子设备可以通过FTP相互上传或下载文件。
S105:生成成功标识符。
具体的,本步骤中,成功标识符的格式如步骤S103中所述。
步骤S104所述的收集各个业务设备的日志文件的方法,可以包括如下子步骤,如图2所示:
S201:设置局部变量。
具体的,本步骤中,由于通过FTP下载业务设备的日志文件,需要配置FTP下载业务的关键参数,以便后续相应的shell脚本使用,这些参数可以视为局部变量。局部变量包括业务设备地址(可以用Host表示),统一资源标识符(Uniform Resource Identifier,URI),FTP用户名和密码,日志文件名称,年,月,日,小时,日志文件下载目录,HDFS路径,Hive表名等。全局变量和局部变量都可以在Kettle的job中设置,全局变量和局部变量的区别是全局变量可以在job控制的工作流的每一个步骤中使用,而局部变量只能在工作流的当前步骤中有效使用。当然,设置局部变量,也不一定对所有的局部变量都进行设置,根据具体情况设置相关或有改变的局部变量即可。例如有的日志数据是是按天下载而不是按小时下载,小时这个局部变量就不需要设置。
S202:下载业务设备的日志文件。
具体的,本步骤中,数据收集设备调用专用的shell脚本(该脚本可以称为FTP下载shell脚本),下载业务设备的日志文件。如果数据收集设备和业务设备处于同一个网段,FTP下载shell脚本的实现比较简单。
S203:对日志文件进行文本格式转换以符合表格的字段分隔要求。
具体的,本步骤中,数据收集设备调用专用的shell脚本(该脚本可以称为日志转换shell脚本),对json等格式的日志文件进行文本格式转换,以便符合Hive表的字段分隔要求。
S204:上传转换后的日志文件。
具体的,本步骤中,数据收集设备调用专用的shell脚本(该脚本可以称为上传Hive表shell脚本)将转换后的日志文件上传到HDFS(例如可以使用Hadoop的put命令上传到HDFS)。Hive表的数据Location指向上传的数据,这样可以使用Hive对上传的数据进行统计分析。
对于步骤S202、S203和S204,都可以设置错误警告,如果该步骤执行中出现问题,则发送电子邮件,将具体的错误内容告知对应的管理人员。
但要注意,由于任何一个业务设备都有可能在某个时间确实空闲,因而也就没有产生业务日志,错误警告不一定是有意义的。数据收集设备收集各个业务设备的日志文件,应当遍历所有需要收集日志文件的业务设备。任何一台业务设备产生错误警告,遍历都不会因此终止。当对所有业务设备的遍历完成,步骤S104即视为成功,可以进入步骤S105生成成功标识符。对于错误警告,由管理人员分析错误的产生原因,采取相应的措施(例如,设置Jenkins调用Kettle的job脚本重新收集日志,或者忽略无意义的错误警告)。
如果数据收集设备和业务设备并不在一个网段,彼此之间往往无法直接传输文件,而这种情况实际中又比较常见(例如数据收集设备和业务设备位于两地)。为了克服这一问题,提供下载业务设备的日志文件的方法,如图3所示。该方法的要点,一是设置一台中转设备(例如中转服务器),为数据收集设备从业务设备下载日志数据提供中转,中转设备一般和业务设备处于同一地点;二是考虑到中转的方式可能导致较多的文件错误,设置了对文件大小(size)和验证值(验证值常选取为MD5,即消息摘要算法第五版,为广泛使用的一种散列函数,用以提供消息的完整性保护)的校验,以保证文件的准确性。该方法的具体步骤,包括:
S301:数据收集设备登录中转设备,从各个业务设备下载日志文件到中转设备。
具体的,本步骤中,数据收集设备通过SSH(Secure Shell,安全外壳协议)登录中转设备,利用WGET(一个从网络上自动下载文件的自由工具,支持FTP协议)从各个业务设备下载日志文件到中转设备。
S302:数据收集设备从中转设备下载日志文件。
具体的,本步骤中,数据收集设备利用WGET从中转设备下载日志文件。
S303:数据收集设备登录中转设备,下载业务设备存储的日志文件的大小和验证值。
具体的,本步骤中,业务设备产生日志文件后,还会将该日志文件的大小和验证值两个数值存储在指定的位置。数据收集设备通过SSH登录中转设备,利用WGET从各个业务设备下载对应的日志文件的大小和验证值两个数值。
S304:数据收集设备比较下载的日志文件的大小和验证值与业务设备存储的大小和验证值是否一致,任何一个值不一致则发出错误警告。
具体的,本步骤中,数据收集设备会计算下载的日志文件的验证值,将下载的日志文件的大小和验证值这两个数值与下载的业务设备存储的大小和验证值进行比较。如果文件下载正常无误,大小和验证值两个数值应当是一致的。任何一个数值不一致,表明下载的文件存在错误,会发出错误警告。
S305:对下载的日志文件重命名进行区别。
通常情况下,数据收集设备会下载多个业务设备的日志文件,而每个业务设备的日志文件的文件名相同,数据收集设备把不同业务设备的日志文件下载到同一个目录,就会存在同名冲突。为了避免同名冲突,可以对下载的日志文件重命名进行区别。一种重命名的方法,使用Host、URI、文件名、FTP用户名、FTP密码、日志文件下载目标目录、Hive表名和YYYY-MM-DD+HH/none对日志文件名后追加验证值(MD5)以便唯一区分,格式为:日志名.YYYY-MM-DD-HH.Host.MD5(Host+URI+文件名+FTP用户名+FTP密码+日志文件下载目标目录+Hive表名+YYYY-MM-DD+HH/none),按照上述格式命名的一个文件名示例为:StaticsLog.log.2016-07-31-12.10.252.208.196.31197d3dda1c0d9ab193d4b9fbec8a51。
对于步骤S301、S302和S303,都可以设置无论SSH还是WGET失败,自动重试一定的次数,例如自动重试10-20次。
可以在FTP下载shell脚本中设置代码实现如上所述的下载业务设备的日志文件的方法,这样无论数据收集设备和业务设备在不在一个网段,FTP下载shell脚本都可以顺利下载日志文件。
本发明技术方案,由自动化持续集成工具Jenkins调用并监控Kettle的job,离线完成日志收集、转换、上传至Hive表的工作流。这里所述的离线是相对于日志实时入库实时分析而言的,指被动收集日志,然后再进行统计分析。引入Jenkins定时调用并监控Kettle的job,而同时Kettle的job把控整体的工作流,能够提高日志收集的容错性。如果出现问题,能够及时发出错误警告,并且能够一键式重新下载或补充数据,保证最终收集的日志数据的完整性和准确性。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。例如,采用类似于Jenkins和Kettle功能的其他工具。在此不一一列举。
Claims (9)
1.基于ETL工具的日志收集方法,其特征在于,所述的方法包括:
设置全局变量;
判断是否存在表格前缀标识符,如果存在则拼接表格前缀标识符和表格名称;
删除成功标识符;
收集各个业务设备的日志文件;
生成成功标识符。
2.根据权利要求1所述的方法,其特征在于,所述的方法还包括:持续集成工具定时调用所述的ETL工具并监控ETL工具的工作流,ETL工具的工作流异常时发出错误警告。
3.根据权利要求1所述的方法,其特征在于,所述的收集各个业务设备的日志文件,包括:
设置局部变量;
下载业务设备的日志文件;
对日志文件进行文本格式转换以符合表格的字段分隔要求;
上传转换后的日志文件。
4.根据权利要求3所述的方法,其特征在于,所述的下载业务设备的日志文件,包括:
数据收集设备登录中转设备,从各个业务设备下载日志文件到中转设备;
数据收集设备从中转设备下载日志文件;
数据收集设备登录中转设备,下载业务设备存储的日志文件的大小和验证值;
数据收集设备比较下载的日志文件的大小和验证值与业务设备存储的大小和验证值是否一致,任何一个值不一致则发出错误警告。
5.根据权利要求4所述的方法,其特征在于,所述的下载业务设备的日志文件,还包括:对下载的日志文件重命名进行区别。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述的ETL工具为Kettle,所述的表格为Hive表。
7.根据权利要求2所述的方法,其特征在于,所述的持续集成工具为Jenkins。
8.根据权利要求6所述的方法,其特征在于,所述的全局变量包括HDFS目录地址,日志文件下载目录地址,shell脚本目录,下载成功标识符目录,表格前缀标识符,邮件标题,收件人。
9.根据权利要求6所述的方法,其特征在于,所述的局部变量包括业务设备地址,统一资源标识符,FTP用户名和密码,日志文件名称,年,月,日,小时,日志文件下载目录,HDFS路径,Hive表名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610649336.XA CN106294732A (zh) | 2016-08-10 | 2016-08-10 | 基于etl工具的日志收集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610649336.XA CN106294732A (zh) | 2016-08-10 | 2016-08-10 | 基于etl工具的日志收集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294732A true CN106294732A (zh) | 2017-01-04 |
Family
ID=57667595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610649336.XA Pending CN106294732A (zh) | 2016-08-10 | 2016-08-10 | 基于etl工具的日志收集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294732A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389980A (zh) * | 2023-12-08 | 2024-01-12 | 成都康特电子科技股份有限公司 | 日志文件分析方法及装置、计算机设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7552147B2 (en) * | 2005-09-02 | 2009-06-23 | International Business Machines Corporation | System and method for minimizing data outage time and data loss while handling errors detected during recovery |
CN103823797A (zh) * | 2012-11-16 | 2014-05-28 | 镇江诺尼基智能技术有限公司 | 基于ftp协议的行业数据库数据实时同步系统 |
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
CN105389402A (zh) * | 2015-12-29 | 2016-03-09 | 曙光信息产业(北京)有限公司 | 一种面向大数据的etl方法和装置 |
-
2016
- 2016-08-10 CN CN201610649336.XA patent/CN106294732A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7552147B2 (en) * | 2005-09-02 | 2009-06-23 | International Business Machines Corporation | System and method for minimizing data outage time and data loss while handling errors detected during recovery |
CN103823797A (zh) * | 2012-11-16 | 2014-05-28 | 镇江诺尼基智能技术有限公司 | 基于ftp协议的行业数据库数据实时同步系统 |
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
CN105389402A (zh) * | 2015-12-29 | 2016-03-09 | 曙光信息产业(北京)有限公司 | 一种面向大数据的etl方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389980A (zh) * | 2023-12-08 | 2024-01-12 | 成都康特电子科技股份有限公司 | 日志文件分析方法及装置、计算机设备和可读存储介质 |
CN117389980B (zh) * | 2023-12-08 | 2024-02-09 | 成都康特电子科技股份有限公司 | 日志文件分析方法及装置、计算机设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816465B2 (en) | Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices | |
CN107566463B (zh) | 一种提高存储可用性的多云存储管理系统 | |
US20160004734A1 (en) | Secure data isolation in a multi-tenant historization system | |
CN101692668A (zh) | 一种航空气象数据自动下载、解析和存储的装置及方法 | |
CN112817791A (zh) | 一种工作面集群开采状态的移动端监控方法 | |
EP2044510A2 (en) | System and method for server configuration control and management | |
CN108804241B (zh) | 跨平台任务调度方法、系统、计算机设备和存储介质 | |
CN106339273A (zh) | 一种应用程序修复方法、终端及服务器 | |
CN113378540A (zh) | 一种飞机的飞行记录系统 | |
CN112104688A (zh) | 一种综合业务型移动作业终端应用管理系统 | |
CN111048164A (zh) | 一种医学大数据长期保存系统 | |
CN106294732A (zh) | 基于etl工具的日志收集方法 | |
CN117527568A (zh) | 一种数据整合平台的数据接入方法及系统 | |
CN112073521A (zh) | 一种分散数据的共享调度方法及系统 | |
US20090210453A1 (en) | Service for verifying consistency of replicated data | |
CN109445988A (zh) | 异构容灾方法、装置、系统、服务器和容灾平台 | |
CN115629784A (zh) | 更新机台文件的方法、系统、设备及计算机可读存储介质 | |
CN115085794A (zh) | 面向北斗短报文的区块链可信存证方法及系统 | |
Cisco | Database Management | |
KR102530199B1 (ko) | 원격감시 제어시스템 및 이의 데이터베이스 업데이트 방법 | |
CN104392506A (zh) | 一种支持多终端平台的水电站水工巡检系统 | |
KR100671789B1 (ko) | 유무선 분산 환경하의 공간 데이터간의 데이터 전송과데이터 동기화 방법 및 그러한 방법의 실행을 위한 분산공간 데이터 동기화 시스템 | |
Myrda et al. | EIPP data management task team architecture | |
Garnaat | Python and AWS cookbook | |
CN114385595B (zh) | 数据迁移方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 100102 Beijing Chaoyang District City, Fu Tong East Street, No. 1 Hospital of Wangjing SOHOT3B block 41 layer Applicant after: BEIJING HAIYU DONGXIANG TECHNOLOGY CO., LTD. Address before: 100102 Beijing Chaoyang District City, Fu Tong East Street, No. 1 Hospital of Wangjing SOHOT3B block 45 layer Applicant before: BEIJING HAIYU DONGXIANG TECHNOLOGY CO., LTD. |
|
COR | Change of bibliographic data | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170104 |
|
WD01 | Invention patent application deemed withdrawn after publication |