简介:
核心是agent
agent的核心:source,channel,sink,一台机器运行跟一个agent
source:处理各种类型、各种格式的日志数据,将数据包装秤event
channel:缓存数据event,对采集到的数据进行简单的缓存
sink:将数据发送到指定的目的地的组件
运行机制
source收集到数据,发送给channel,channel缓存数据,sink发送到指定的目的地。发送成功之后,channel会删除缓存中的数据
这样的运行机制保证了flume的安全和可靠。
end-to-end:收集到数据先保存,数据传输成功后再删除,如果不成功继续发送
Store on failure:当数据接收方崩溃的时候,会保存数据,等接收方恢复后继续发送
Besteffort:数据发送到接收方后不会确认
拦截器:
在source和channel中间,过滤指定的event
广义用法:
支持多级flume的agent
支持扇入(fan-in)和扇出(fan-out)。扇入就是source可以接收多个输入,扇出就是sink可以将数据输出到多个目的地
应用
日志的采集:提供了大量内置的source,channel,sink,不同类型的可以自由组合。
1.整体配置一个agent:
2.详细描述每一个source,channel,sink
3.通过channel连接source和sink
启动agent的shell操作
flume-ng agent -n a1 -c ../conf -f ../conf/example.file -Dflume.root.logger=DEBUG,console
-n:指定agent的名称
-c:指定flume配置文件的目录
-Dflume.root.logger=DEBUG,CONSOLE设置日志等级
发送数据
监听:
NetCat Source指定的网络端口
Spooling Directory Source监听指定目录
Exec Source 监听指定命令 ,在flume不运行或者指令出错的时候容易出现日志丢失
Avro Source监听指定的avro端口
--------------------------------部署flume1.7环境-------------------------------
1.需要安装jdk1.7以上版本。
官网下载http://archive.apache.org/dist/flume/安装包
配置环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
然后用java -version测试是否安装成功
2.安装flume
http://archive.apache.org/dist/flume/下载安装包apache