目录
Flume Interceptor概念
拦截器设置在Source和Channel之间,专门处理Event
每个拦截器只处理同一个Source接收到的事件
拦截器类型
Timestamp Interceptor
Host Interceptor
Static Interceptor
UUID Interceptor
Morphline Interceptor
Search and Replace Interceptor
Regex Filtering Interceptor
Regex Extrator Interceptor
TimeStamp Interceptor
将时间戳插入到Flume的Event Header中
在source部分指定拦截器为Timestamp,类型必须为timestamp或FQCN(暂时不知道这是什么= =)
PreserveExisting默认值为False,当值为True时,若Event中Header已经存在,将不会替换TimeStamp Header的值
还有一个参数是header,设置的是Timestamp插入时的key,默认值是timestmp
测试
当拷贝文件时,Flume的控制台信息如下
可以看到Header已经被加上了Timestamp
Host Interceptor
将服务器的ip或hostname插入到Event的报头中
这里使用了两个拦截器,i1是Timestamp,i2是Host
hostHeader是Event Header的key
useIP的值为true则插入IP,false则插入主机名
还有一个参数是preserveExisting,效果同Timestamp的同名参数
测试
将测试用的文件夹里的url.txt删掉,然后开启Flume,再拷贝文件进去
可以看到主机名和时间戳都被插入了header
Regex Filtering
通过正则表达式来过滤掉不需要的日志信息,收集满足条件的信息
在之前的基础上加上了正则过滤拦截器
type必须填 REGEX_FILTER
regex填入正则表达式
excludeEvents如果为true,则会删除匹配到的event,收集没有匹配到的;如果为false,则收集匹配到的
测试
测试文件内容如下
同样启动flume,然后拷贝进指定的目录
可以看到,Flume收集到的只有匹配到的行