使用kettle进行日志分析

分析日志是一个大数据分析中较为常见的场景。在Unix类操作系统里,Syslog广泛被应用于系统或者应用的日志记录中。Syslog通常被记录在本地文件内,比如Ubuntu内为/var/log/syslog文件名,也可以被发送给远程Syslog服务器。Syslog日志内一般包括产生日志的时间、主机名、程序模块、进程名、进程ID、严重性和日志内容。具体的日志内容如下所示:

Jun 01 17:29:28 localhost bash[39095]: 10.212.143.73 : root : /root : ls --color=auto /var/log/messages

Jun 01 17:29:30 localhost bash[39132]: 10.212.143.73 : root : /root : vim /var/log/messages

Jun 01 17:29:45 localhost bash[39217]: 10.212.143.73 : root : /root : tail -2 /var/log/messages

Jun 01 17:29:50 localhost bash[39242]: 10.212.143.73 : root : /root : tail -5 /var/log/messages

数据最前面为时间,主机名、进程名,可选的进程ID,用户名,最后是日志内容。

请同学们将上面的数据保存到本地,进行如下操作:

1.将日志从文件中提取,并使用正则表达式控件获取日志的内容,分别放于时间、主机名等字段中;

使用文本文件输入控件和正则表达式控件。文本文件从文档中按行获取日志信息,并将其指定为“日志”字段输出到正则表达式控件,再使用正则表达式控件进行正则表达式的字符串匹配及

文本文件输入控件的配置如下图所示

首先使用浏览选择日志文件,再用使用增加按钮添加文件到选中的文件栏中,最后再配置字段页面,如图所示。

正则表达式控件的配置如图21所示,首先选定匹配的字段为日志,再选中为每个捕获组创建一个字段,接着可以使用Test regEx创建并测试正则表达式,如图22所示,最后在捕获组字段中按测试中顺序填入捕获组的字段名称和数据类型即可。

使用的正则表达式如下:

(\w{3} \d{2} [\d:]+) ([\w]+) [\w]+\[(\d+)\]: ([\d.]+) : (\w+) : /\w+ : (.+)

 

 配置完成后,就可以点击左上角转换按钮进行转换。并可以在spoon界面下的执行结果栏中的Preview data中看到结果,如下图所示。

2.根据上面已经获得的数据,筛选出命令为vim的日志,将上一步捕获而来的字段保存到Excel表格中:

在上一题的基础上,使用过滤记录控件、字段选择控件和Excel输出控件。布局如下图所示。

 过滤记录控件配置如图所示:

字段选择控件配置如图所示,先获取全部字段,再在移除页面选择多余字段进行删除,Excel输出控件配置可参考上面的图

 配置完成后,可以运行转换,结果如图所示。

 

 3.在第1问结果的基础上,将获取到的时间使用拆分字段控件分成月份、日期、时间三个字段。

在第一问的基础上使用拆分字段控件,具体布局如下图所示:

 拆分字段控件配置如下图所示,其中分隔符中需要填入空格,并在字段栏中填入新字段的名称和数据类型。

最后运行转换,得到的结果如图所示。

  • 5
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
很高兴回答你关于Kettle源码的问题。Kettle(也称为Pentaho Data Integration)是一款开源的ETL(Extract, Transform, Load)工具,用于数据集成和数据处理。 Kettle的源码可以在其官方网站或GitHub上找到。它是使用Java编写的,主要由一些核心模块和插件组成。核心模块包括了转换引擎、元数据管理、作业调度和用户界面等关键功能。 转换引擎是Kettle的核心部分,负责执行ETL转换过程。它定义了一些基本的元素,如步骤(Step)、作业(Job)、转换(Transformation)等,并提供了处理数据流、执行任务和错误处理等功能。 元数据管理模块用于管理Kettle的元数据,包括数据库连接、数据源定义、字段映射等。它提供了对元数据的增删改查操作,并与转换引擎进行交互,以实现数据的读取、转换和存储。 作业调度模块用于管理Kettle作业的调度和执行。它支持定义作业间的依赖关系,可以定时触发作业执行,还可以监控作业的执行状态和结果。 用户界面模块提供了图形化界面,用于配置和管理Kettle的各个组件。用户可以通过界面进行转换和作业的设计、调试和执行,还可以查看日志和统计信息等。 除了核心模块,Kettle还支持插件机制,允许开发人员根据需要扩展Kettle的功能。插件可以包括新的输入输出组件、转换步骤、作业脚本等,开发人员可以根据自己的需求进行定制。 总结起来,Kettle的源码分析涉及到核心模块的工作原理、元数据管理、作业调度和用户界面等方面。通过深入研究源码,你可以了解Kettle是如何实现数据集成和处理的,从而更好地使用和定制这个强大的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值