IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Flume的三种基本采集方式(三) -> 正文阅读

[大数据]Flume的三种基本采集方式(三)

一、Syslog方式

Flume提供了Syslog的方式,通过TCP/UDP通信协议直接对某台主机上的某个端口进行监听,实现了采集端主动采集端口日志的功能,提高了可靠性。
Syslog可以通过Syslog协议读取系统日志,协议分为TCP和UDP两种,使用时需指定IP地址和端口。这里以监听本机的5140端口为例。
进入 Flume的conf目录,创建名称为 syslogtcp.conf的配置文件,

在这里插入图片描述
配置信息如下

# 组件命名
agent1.sources = r1
agent1.channels = c1                            
agent1.sinks = k1
# Source信息
agent1.sources.r1.type = syslogtcp
agent1.sources.r1.channels = c1
agent1.sources.r1.port = 5140
agent1.sources.r1.host = localhost
# Sink信息
agent1.sinks.k1.type = logger
# channel信息
agent1.channels.c1.type = memory
agent1.channels.c1.capacity = 10000
agent1.channels.c1.transactionCapacity = 100
# 将Source Sink 绑定到channel
agent1.sinks.k1.channel = c1
agent1.sources.r1.channel = c1

通过执行命令

/home/software/flume/apache-flume-1.9.0-bin/bin/flume-ng agent --conf-file /home/software/flume/apache-flume-1.9.0-bin/conf/spool.conf -c /home/software/flume/apache-flume-1.9.0-bin/conf/ --name agent2 -Dflume.root.logger=INFO,console

启动Flume Agent agent1,指定日志等级为INFO,并将日志内容输出到控制台,Flume Agent1的启动信息如图

在这里插入图片描述

重新打开一个命令行窗口,使用“nc”命令发送数据到本机的5140端口,如图

在这里插入图片描述
如果没有nc命令 就安装一下 yum install -y nc

观察之前的本机控制台命令行窗口,可以看到追加的日志已被获取,如图

在这里插入图片描述

二、Exec Source方式

第二种Fume提供了一种Exec的方式来自定义日志采集,即通过使用 Exec Source完成从本地日志文件中收集日志数据的任务,Exec就是使用linux的命令方式读取日志文件。

进入/home/software/flume/syslog目录,创建一个空的日志文件syslog.log。

进入 Flume的conf目录,创建exec.cof配置文件,配置信息如下

# 组件命名
agent3.sources = r3
agent3.channels = c3                            
agent3.sinks = k3
# Source信息
agent3.sources.r3.type = exec
agent3.sources.r3.channels = c3
agent3.sources.r3.command=tail -F /home/software/flume/syslog/syslog.log
# Sink信息
agent3.sinks.k3.type = logger
# channel信息
agent3.channels.c3.type = memory
agent3.channels.c3.capacity = 10000
agent3.channels.c3.transactionCapacity = 100
# 将Source Sink 绑定到channel
agent3.sinks.k3.channel = c3
agent3.sources.r3.channel = c3

通过执行命令

/home/software/flume/apache-flume-1.9.0-bin/bin/flume-ng agent --conf-file  /home/software/flume/apache-flume-1.9.0-bin/conf/exec.conf -c /home/software/flume/apache-flume-1.9.0-bin/conf/ --name agent3 -Dflume.root.logger=INFO,console

启动Flume Agent agent3,指定日志等级为INFO,并将日志信息输出到控制台。启动信息如图

在这里插入图片描述

向syslog.log文件中追加内容,如图

在这里插入图片描述

flume读取成功

在这里插入图片描述

三、Spooling Directory Source方式

实际工作中为了自动采集每日产生的日志,可每日自动生成一个日志文件。为了实现自动采集日志功能,Flume提供了 Spooling Directory Source方式来对日志存储文件夹进行监控,即对指定的目录进行监控,如有新增文件就会采集。

创建目录/home/software/flume/syslog。

进入 Flume的conf目录,创建 spool.conf配置文件

# 组件命名
agent2.sources = r2
agent2.channels = c2                            
agent2.sinks = k2
?

```powershell
# Source信息
agent2.sources.r2.type = spooldir
agent2.sources.r2.channels = c2
agent2.sources.r2.spoolDir = /home/software/flume/syslog
agent2.sources.r2.fileHeader = true
# Sink信息
agent2.sinks.k2.type = logger
?
# channel信息
agent2.channels.c2.type = memory
agent2.channels.c2.capacity = 10000
agent2.channels.c2.transactionCapacity = 100
# 将Source Sink 绑定到channel
agent2.sinks.k2.channel = c2
agent2.sources.r2.channel = c2

通过执行命令

/home/software/flume/apache-flume-1.9.0-bin/bin/flume-ng agent --conf-file  /home/software/flume/apache-flume-1.9.0-bin/conf/spool.conf -c /home/software/flume/apache-flume-1.9.0-bin/conf/ --name agent2 -Dflume.root.logger=INFO,console

启动Flume Agent agent2,指定日志等级为INFO,并将日志内容输出到控制台, Flume Agent agent2的启动信息如图

在这里插入图片描述

打开一个新的命令行窗口,用来观察日志。在被监听的文件目录中创建一个包含内容的测试文件,随后可以观察第一个命令行窗口的变化,查看接收的数据,如图

在这里插入图片描述

上面这张图是flume采集了我们在2中创建的sysylog.log,同时在采集之后flume会将已完成采集的文件加上.COMPLETED后缀。下面是我们在监控的目录下上传了一个有内容的文件,flume对其读取后的日志信息如下图

在这里插入图片描述

以上就是三种常见基本的Syslog、Spooling Directory Source、Exec Source读取日志的方式,下一篇介绍两种实际工作中常用到的Flume与其他组件配合使用的方法。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:17:12  更:2021-07-27 16:18:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 2:51:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码