Flume中的Decorator
Flume中提供了不少Decorator,用来在log发送到sink之前,做一定的预处理
以下2个是比较有用的,可以用来对日志打上tag,然后进行相应的分类
value("attr","value"{,escape=true|false}),可以在日志上加一个新的属性,相当于是打tag
split("regex",idx,"attr"),可以对日志进行split,取某个字段,然后设置到attr的tag上
设置了这些Tag后,就可以在collector上使用了,如:
#首先将日志对应的小时,设置在了hour属性上
exec config nginx_access_79_108 nginx_access "tail(\"/opt/logs/nginx/nginx_access.log\")" 'split(":",1,"hour") autoDFOChain'
#在 collector上根据hour属性,将日志记录到不同的文件中
exec config collector_150_111_nginx_access nginx_access autoCollectorSource 'roll(36600000){escapedFormatDfs("file:///opt/logs/nginx/%Y%m%d/","access_%{hour}_%{rolltag}.log","syslog")}'
因此,通过Tag这个机制,是可以实现一个Agent上多Source源的日志,在collector上输出到不同的目录,不同的文件中
这种实现方式,是不需要使用automatic flow isolation模式的
朋友,是你让我来看看的。
第一次来支持你。