Linux系统日志采集
一、 任务描述 二、 任务目标 三、 任务环境 四、 任务分析 五、 任务实施 步骤1、操作步骤未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计1821字,阅读大概需要3分钟
一、 任务描述
本实验任务主要完成基于ubuntu环境使用flume对linux系统进行数据采集工作。通过完成本实验任务,要求学生了解并掌握基本的flume采集数据方法以及配置格式,为后续进一步学习flume其它知识点做基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。
二、 任务目标
掌握flume的应用原理
掌握flume对日志信息的采集过程
三、 任务环境
本次环境是:Ubuntu16.04+flume-ng-1.5.0-cdh5.3.6
四、 任务分析
Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理的操作,并写到各种storage。Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。本试验就是通过学习flume工具实现对指定目录下所有的日志文件数据信息进行采集并实时把采集到的信息保存到hdfs中指定的位置。
♥ 知识链接
Flume和kafka的联系
基于Flume,将“准实时“数据发送给kafka;比如“tail“某个文件的实时数据。对于实时数据分析组件或者同类型的数据消费者,可以通过kafka获取实时数据。
五、 任务实施
步骤1、操作步骤
通过执行命令start-all.sh启动hadoop,在任意指定目录下创建一个文件,例如在/simple目录下执行命令:touch a4.conf并在文件中写入如下内容
1. a4.sources = r1
2. a4.channels = c1
3. a4.sinks = k1
4. a4.sources.r1.type = spooldir
5. a4.sources.r1.spoolDir = /simple/logs
6.
7. a4.channels.c1.type = memory
8. a4.channels.c1.capacity = 10000
9. a4.channels.c1.transactionCapacity = 100
10.
11. a4.sources.r1.interceptors = i1
12. a4.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder
13. #a2.sinks.k1.type = logger
14. a4.sinks.k1.type = hdfs
15. a4.sinks.k1.hdfs.path = hdfs://localhost:9000/flume/%Y%m%d
16. a4.sinks.k1.hdfs.filePrefix = event-
17. a4.sinks.k1.hdfs.fileType = DataStream
18. a4.sinks.k1.hdfs.rollCount = 0
19. a4.sinks.k1.hdfs.rollSize = 134217728
20. a4.sinks.k1.hdfs.rollInterval = 60
21. a4.sources.r1.channels = c1
22. a4.sinks.k1.channel = c1
在simple目录下创建一个目录,执行命令:mkdir logs 。如图1所示
图1 创建文件夹
在simple目录下创建文件a.log,执行命令touch a.log,编辑内容,如图2所示
图2 创建文件并编辑
切换到bin目录下,执行flume命令:./flume-ng agent -n a4 -f /simple/a4.conf -c …/conf/ -Dflume.root.logger=INFO,console。如图3所示
图3 启动flume
执行上一步命令之后,同时在另外一个终端中,在simple目录下通过执行拷贝命令:cp a.log logs/a1.log和cp a.log logs/a2.log实现把a.log日志文件拷贝到logs目录下,此时logs目录下的日志文件会被采集并保存到hdfs指定位置/flume目录下 。如图4图5所示
图4 拷贝文件到指定目录
图5 查看hdfs上采集的数据
如果希望继续查看采集的信息在hdfs中生成的文件中的具体内容,可通过hdfs dfs -cat命令去查看。如图6所示
图6 查看具体内容