flume 采集指定端口的日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: flume 采集指定端口的日志

未经许可,禁止以任何形式转载,若要引用,请标注链接地址

全文共计2086字,阅读大概需要3分钟

一、 任务描述

本实验任务主要完成基于ubuntu环境使用flume的采集某个端口的日志信息。通过完成本实验任务,要求学生初步了解flume对端口信息的采集语法格式,为深度学习flume知识做基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。


二、 任务目标

熟悉Flume概述,Flume架构

 熟悉Flume基本组件Source,Sink,Channel

 理解Avro Source将数据输出到Console


三、 任务环境

本次环境是:Ubuntu16.04+flume-ng-1.5.0-cdh5.3.6


四、 任务分析

Flume采集数据的简单案例,通过avro方式,从客户端上读取一个文件,然后提交到avro服务端的source获取,通过内存channel最后将数据输送到目的地logger 并在控制台输出;采用Avro Source+Memory Channel+Logger Sink方式

 本次实验的大致流程是:

testflume文件内容——>agent-source-avro——>agent-channel-memory—->agent-sink-flume-logger—->-Dflume.root.logger=DEBUG,console控制台打印


♥ 知识链接

历史数据和实时数据

 基于Flume将“历史数据“保存在HDFS,“历史数据“:比如“每天rotate生成的日志文件“,即我们熟悉的catalina.out文件。每天都rotate生成一个新的。当然对于“准实时“数据也可以保存在HDFS中,Flume支持将“tail“的数据每隔数小时生成一个HDFS文件等。通常情况下,我们将“历史数据“保存在HDFS,而不是“实时数据“。


五、 任务实施

步骤1、操作步骤

在linux目录/usr/local下,执行命令:touch /usr/local/testflume

并编辑内容为:

1:Hello Flume.
2:I Love Flume!
3:AND,
4:You Love Flume?
5:Sure,Me too.

如图1所示


38a49a462a3d46439215901b132e3b75.png


图1 编辑文件

 执行命令:cd /simple/flume/conf切换到目录/simple/flume/conf下,之后执行命令:touch avrofile.conf创建文件avrofile.conf,并写入内容如下:


1.  # 配置agent
2.  a1.sources = r1
3.  a1.sinks = k1
4.  a1.channels = c1
5.  # Describe/configure the source
6.  a1.sources.r1.type = avro
7.  a1.sources.r1.channels = c1
8.  a1.sources.r1.bind = 0.0.0.0
9.  a1.sources.r1.port = 41414
10. # Describe the sink
11. a1.sinks.k1.type = logger
12. # Use a channel which buffers events in memory
13. a1.channels.c1.type = memory
14. a1.channels.c1.capacity = 1000
15. a1.channels.c1.transactionCapacity = 100
16. # Bind the source and sink to the channel
17. a1.sources.r1.channels = c1
18. a1.sinks.k1.channel = c1

根据配置好avrofile.conf的配置信息,启动flume agent。

 执行命令:cd /simple/flume进入该目录并执行如下命令:

./bin/flume-ng agent -c . -f conf/avrofile.conf -n a1 -Dflume.root.logger=INFO,console。如图2所示

c10ac7ecd3ea40a8a81d06e5e3dc6a65.png



图2 启动flume


一些配置的说明:

name Value
-f 指定flume服务端启动监听的agent配置文件,
-n 指定启动的flume agent别名,
-D flume.root.logger=DEBUG,console 表示数据在控制台打印出,


启动flume agent后,可以看到如下信息:Avro source r1 started,此时会不停扫描avrofile.conf,

上面的命令启动成功后显示的信息,如图3所示:


bdc7ccbbd179458789ec5f01193bca51.png


图3 显示启动过程


再启动一个终端。

cd /simple/flume

使用avro-client发送文件,执行该命令:

/simple/flume/bin/flume-ng avro-client -c . -H localhost -p 41414 -F /usr/local/testflume。如图4,5所示



7996f693fdc748b6afe3af1297af2d7e.png

图4 avro-client发送文件


3eb1b01ec1dd4e6eae6a0c6a1f210e6f.png


图5 avro-client发送文件结果展示


数据向第一个命令终端发送成功的信息,红框表示收到的终端收到的数据。如图6所示


914ead14210d40c98ca32897003a259a.png


图6 数据展示



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1天前
|
存储 Kubernetes Java
在k8S中,容器内日志是怎么采集的?
在k8S中,容器内日志是怎么采集的?
|
5天前
|
数据采集 监控 Kubernetes
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
|
5天前
|
数据采集 Kubernetes Java
Job类日志采集问题之在日志中添加容器的元信息标签,如何操作
Job类日志采集问题之在日志中添加容器的元信息标签,如何操作
|
5天前
|
存储 容器
Job类日志采集问题之DaemonSet采集方式的参数以减小采集延时如何调整
Job类日志采集问题之DaemonSet采集方式的参数以减小采集延时如何调整
|
5天前
|
容器
Job类日志采集问题之ECI产品采集方式对于弹性扩缩容是如何支持的
Job类日志采集问题之ECI产品采集方式对于弹性扩缩容是如何支持的
|
5天前
|
存储 数据采集 容器
Job类日志采集问题之DaemonSet采集方式在Job日志采集上如何表现
Job类日志采集问题之DaemonSet采集方式在Job日志采集上如何表现
|
5天前
|
存储 Kubernetes 数据处理
Job类日志采集问题之为什么Job容器的日志采集要考虑容器发现速度和开始采集延时,如何理解
Job类日志采集问题之为什么Job容器的日志采集要考虑容器发现速度和开始采集延时,如何理解
|
3月前
|
存储 分布式计算 监控
【Flume】Flume 监听日志文件案例分析
【4月更文挑战第4天】【Flume】Flume 监听日志文件案例分析
|
3月前
|
存储 运维 监控
【Flume】flume 日志管理中的应用
【4月更文挑战第4天】【Flume】flume 日志管理中的应用
|
消息中间件 数据采集 SQL
1、电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume(一)
1、电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume(一)