正则过滤拦截器,在使用的时候需要指定一个正则表达式,然后根据属性excludeEvents的值来确定过滤方式。如果excludeEvents的值为true,则表示过滤掉符合正则表达式形式的数据,其他数据留下来;如果excludeEvents的值为false,则表示过滤掉不符合正则表达式形式的数据,符合形式的数据留下来。默认情况下,excludeEvents的值为false。
Regex Filtering Interceptor中可以配置的选项包含:
编写配置文件regex.conf,其中 a1.sources.r1.interceptors.i1.excludeEvents = true,表示数据中含有字符不显示。a1.sources.r1.interceptors.i1.excludeEvents = false或者不设置表示,只显示含有数字的数据
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.type = netcat
a1.sources.r1.bind = m1
a1.sources.r1.port = 9999
# 拦截器
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = regex_filter
#全部都是符合条件的数据
a1.sources.r1.interceptors.i1.regex = .*[0-9].*
a1.sources.r1.interceptors.i1.excludeEvents = true
# 序列化
a1.channels.c1.type = memory
a1.sinks.k1.type=logger
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
启动flume
flume-ng agent -c $FLUME_HOME/conf -n a1 -f $FLUME_HOME/regex.conf -Dflume.root.logger=INFO,console
发送数据 nc m1 9999 a1 aaaaaaaaaa
结果只显示不含数字的数据