avro 类型 固定的日志文件内容
spooling 类型 固定的日志目录的新增文件内容
exec 类型 自定义的、实时的(采集新增加的),去重的采集固定的日志文件的内容
syslog 类型 利用 tcp、udp通信协议,采集端自动采集端口日志 5140
netcat 类型 也是利用tcp、udp通信协议,自定义端口
avro端口,只接收来来自外部avro客户端的事件流(avro序列化后的数据)
监听固定的日志文件的内容
avro监听和收集指定端口的日志,使用avro的source需要说明被监听的主机ip和端口号
channels: 接收客户数据源事件流的通道
type: Avro,
bind: 监听的主机名(master)或ip
port: 监听的端口
# avro.conf
# 第一步:命名
a1.sources=r1
a1.sinks=k1
a1.channels=c1
# 第二步:设置各个类型属性
# source属性
a1.sources.r1.type=Avro
a1.sources.r1.bind=master
a1.sources.r1.port=4141
# channel属性
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
# sink属性
a1.sinks.k1.type=logger
# 第三步:关联
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
服务端
flume-ng agent -n a1 -c conf -f /app/flumeconf/avro_mem_logger.conf -Dflume.root.logger=INFO,console
客户端
flume-ng avro-client -c conf -H master -p 4141 -F /app/flume-1.8.0/flumedata/log.00
spooling-directory 对一个目录进行监控,新增一个文件就将文件的内容进行传输监控
允许将要收集的数据放置到指定的“搜集目录”中
监视该目录,并解析新出现的文件,(文件不能修改,重名)
type: spooldir
spooldir: 指定搜索目录
fileHeader: 指定采集过程中将数据源保存成文件来提高容错
inputCharset: GBK 传输编码类型
.COMPLETED: 对处理完成的文件追加的后缀
# spool.conf
# 命名agent a2的组件
a2.sources=r2
a2.channels=c2
a2.sinks=k2
# 描述/配置source
a2.sources.r2.type=spooldir
a2.sources.r2.spoolDir=/app/spool
a2.sources.r2.fileHeader=true
a2.sources.r2.inputCharset=GBK
# 描述/配置sink
a2.sinks.k2.type=logger
# 描述/配置channel
a2.channels.c2.type=memory
a2.channels.c2.capacity=1000
a2.channels.c2.transactionCapacity=100
# 连接sources和sinks到channels
a2.sources.r2.channels=c2
a2.sinks.k2.channel=c2
服务端
flume-ng agent -n a2 -c conf -f /app/flumeconf/spool.conf -Dflume.root.logger=INFO,console .
exec 可以实现 实时的、高可靠的采集,利用exec来之定义日志采集
type: exec
command: tail -F /app/flume-1.8.0/flumedata/exec_log.01
# exec.conf
# 命名agent组件
a3.sources=r3
a3.sinks=k3
a3.channels=c3
# 描述/配置source
a3.sources.r3.type=exec
a3.sources.r3.command=tail -F /app/flume-1.8.0/flumedata/exec_log.01
# 描述/配置sink
a3.sinks.k3.type=logger
# 内存channel配置
a3.channels.c3.type=memory
a3.channels.c3.capacity=1000
a3.cahnnels.c3.transactionCapacity=100
# 绑定sources和sinks到channel
a3.sources.r3.channels=c3
a3.sinks.k3.channel=c3
服务端
flume-ng agent -n a3 -c conf -f /app/flumeconf/exec_tail.conf -Dflume.root.logger=INFO,console
客户端
将数据写入 exec_log.01文件即可
syslog 通过syslog协议读取系统日志,分为tcp和udp两种,使用时需指定ip和端口(5140)
type: Syslogtcp
port: 5140
host: localhost等主机名或ip
# 命名agent a4的组件
a4.sources=r4
a4.sinks=k4
a4.channels=c4
# 描述/配置sources
a4.sources.r4.type=Syslogtcp
a4.sources.r4.port=5140
a4.sources.r4.host=localhost
# 描述/配置内存sink
a4.sinks.k4.type=logger
# 描述/配置内存channel
a4.channels.c4.type=memory
a4.channels.c4.capacity=1000
a4.channels.c4.transactionCapacity=100
# 绑定source和sinks到channel
a4.sources.r4.channels=c4
a4.sinks.k4.channel=c4
服务端
flume-ng agent -n a4 -c conf -f /app/flumeconf/syslog_tcp.conf -Dflume.root.logger=INFO,console
客户端
利用 netcat 通信 (tcp协议)进行数据传输
连接 服务端 nc localhost 5140 后 进行操作输入内容 服务端就可以接收到对应内容
netcat 利用tcp协议进行通信 自定义连接端口,
type: netcat
port: 端口号
bind: 主机名或ip
# Name the components on this agent
a5.sources=r5
a5.sinks=k5
a5.channels=c5
# 配置source
a5.sources.r5.type=netcat
a5.sources.r5.bind=localhost
a5.sources.r5.port=44444
# 配置sink
a5.sinks.k5.type=logger
# 配置channel
a5.channels.c5.type=memory
a5.channels.c5.capacity=1000
a5.channels.c5.transactionCapacity=100
# 连接sink source和channel
a5.sources.r5.channels=c5
a5.sinks.k5.channel=c5
服务端
flume-ng agent -n a5 -c conf -f /app/flumeconf/net_flume_logger.conf -Dflume.root.logger=INFO,console
客户端
连接对应的主机端口,进行通信
nc localhost 44444