欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

超级简单入门,日志管理系统Flume1.8.0的安装和配置和启动

程序员文章站 2022-06-14 21:12:14
...

Flume简介

Flume原是Cloudera公司提供的一个高可用的、高可靠的、分布式海量日志采集、聚合和传输系统,而后纳入到了Apache旗下,作为一个*开源项目。Apache Flume不仅只限于日志数据的采集,由于Flume采集的数据源是可定制的,因此Flume还可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。

准备工作

  • Linux操作系统
  • flume8.0安装包(见文末或者官网下载)

Flume运行机制

Flume的核心是把数据从数据源(例如Web服务器)通过数据采集器(Source)收集过来,再将收集的数据通过缓冲通道(Channel)汇集到指定的接收器(Sink)。

超级简单入门,日志管理系统Flume1.8.0的安装和配置和启动

​ Flume基本架构中有一个Agent(代理),它是Flume的核心角色,Flume Agent是一个JVM进程,它承载着数据从外部源流向下一个目标的三个核心组件:Source、Channel和Sink。

  1. Flume分布式系统中最***核心的角色是agent***,flume采集系统就是由一个个agent所连接起来形成
  2. 每一个agent相当于一个数据传递员,内部有三个组件:
      1. Source:采集源,用于跟数据源对接,以获取数据
      2. Sink:下沉地,采集数据的传送目的,用于往下一级agent传递数据或者往最终存储系统传递数据
      3. Channel:angent内部的数据传输通道,用于从source将数据传递到sink

Flume日志采集系统架构

实际开发中, Flume需要采集数据的类型多种多样,同时还会进行不同的中间操作,所以根据具体需求,可以将Flume日志采集系统分为简单结构和复杂结构。

简单的Flume日志采集系统的结构

超级简单入门,日志管理系统Flume1.8.0的安装和配置和启动

复杂的Flume日志采集系统的结构

超级简单入门,日志管理系统Flume1.8.0的安装和配置和启动

Flume系统要求

使用Flume进行开发,必须满足一定的系统要求,这里以官方说明为准,具体要求如下。

  • 安装Java 1.8或更高版本Java运行环境;

  • 为Source(数据采集器)、Channel(缓冲通道)、Sink(接收器)的配置提供足够的内存空间;

  • 为Channel(缓冲通道)、Sink(接收器)的配置提供足够的磁盘空间;

  • 保证Agent(代理)对要操作的目录有读写权限.。

Flume安装配置

  1. 下载 Flume 1.8.0 安装包并解压。

    解压到该路径下 
    /export/servers
    
  2. 配置flume-env.sh文件,添加JDK环境变量。

    cd ...flume主目录/conf
    mv flume-env.sh.template flume-env.sh
    # 在flume-env.sh中添加jdk环境变量
    export JAVA_HOME=/export/servers/jdk
    
  3. 配置 /etc/profile文件,添加Flume环境变量。

    vim /etc/profile
    # 添加如下
    export FLUME_HOME=/export/servers/flume
    export PATH=$PATH:$FLUME_HOME/bin:
    # 使其生效
    source /etc/profile
    

Flume入门使用

使用Flume系统,只需要创建一个配置文件,用来配置Flume Source、Flume Channel和Flume Sink三大组件的属性即可。

例如编写一个采集netcat源数据的采集方案 netcat-logger.conf

# cd /export/servers/flume/conf
# vi netcat-logger.conf
# 定义这个agent中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
 
# 描述和配置source组件:r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
 
# 描述和配置sink组件:k1
a1.sinks.k1.type = logger
 
# 描述和配置channel组件,此处使用是内存缓存的方式 1000个event
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
 
# 描述和配置source  channel   sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

然后输入启动Flume指令,具体效果如下。

# 启动flume(在flume主目录下启动,因为紧接的是相对路径)
$  flume/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console

启动Flume程序后,在CRT或者Xshell工具中克隆会话窗口,启动telnet 工具

 # 使用telnet工具连接flume
$ telnet localhost 44444
# 发送 hello world

数据发送完毕后,返回Flume程序,观察采集到的数据,具体效果如下所示。
超级简单入门,日志管理系统Flume1.8.0的安装和配置和启动

总结

欢迎关注: 搜索公众号或者B站:悟空非空也
安装包资源索取: 搜索公–Z–号:悟空非空也,键盘输入: flume8
若有疑问,欢迎评论区留言,感谢转发、评论、点赞+收藏+投币,一键三连哈