Exec Source会运行指定的命令,然后收集这个命令的执行结果。可以利用这个Source来完成部分场景的监控,例如对方是否有返回,文件是否有新增等, 适用于监控一个实时追加的文件,但不能保证数据不丢失;
举例:要实时监听test.log文件的变化,如果文件有变化,要实时指导
touch test.log
编辑配置文件添加如下内容
a1.sources= s1
a1.sinks= k1
a1.channels= c1
// 配置sources
a1.sources.s1.type = exec
a1.sources.s1.command = tail -f /export/software/apache-flume-1.11.0/test.log
a1.sources.s1.channels = c1
// 配置sinks
a1.sinks.k1.type= logger
a1.sinks.k1.channel= c1
// 配置channel
a1.channels.c1.type= memory
启动flume
flume-ng agent -c $FLUME_HOME/conf -n a1 -f $FLUME_HOME/execsource.conf -Dflume.root.logger=INFO,console
echo 'hello'>>test.log
tail -f flume.log
会发现监控到了日志的变化