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日志并进行多维度分析。
相关文章
|
3月前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
76 0
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
46 2
|
1月前
|
网络协议 Linux Windows
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
|
1月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
44 1
|
2月前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
3月前
|
存储 分布式计算 大数据
【Flume的大数据之旅】探索Flume如何成为大数据分析的得力助手,从日志收集到实时处理一网打尽!
【8月更文挑战第24天】Apache Flume是一款高效可靠的数据收集系统,专为Hadoop环境设计。它能在数据产生端与分析/存储端间搭建桥梁,适用于日志收集、数据集成、实时处理及数据备份等多种场景。通过监控不同来源的日志文件并将数据标准化后传输至Hadoop等平台,Flume支持了性能监控、数据分析等多种需求。此外,它还能与Apache Storm或Flink等实时处理框架集成,实现数据的即时分析。下面展示了一个简单的Flume配置示例,说明如何将日志数据导入HDFS进行存储。总之,Flume凭借其灵活性和强大的集成能力,在大数据处理流程中占据了重要地位。
87 3
|
3月前
|
存储 Kubernetes Java
在k8S中,容器内日志是怎么采集的?
在k8S中,容器内日志是怎么采集的?
|
19天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
153 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
244 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1642 14
下一篇
无影云桌面