Flume。从 syslogudp 源中去除所有标签

Flume. Strip all tags from syslogudp source

我正在使用带有 syslogudp 源的 apache-flume。 我将以下内容设置为 flume.conf:

agent.sources.r1.type = syslogudp
agent.sources.r1.port = 5140
agent.sources.r1.host = localhost
agent.sources.r1.channels = c1

以及以下 nginx.conf 个选项:

access_log syslog:server=localhost,tag= ;

因此,我在 sink 中的所有日志(kafka 主题)的开头都有 2 个符号。 例如:

: 31.130.95.75  1472493421.911  80674   {flags}

有什么办法可以截掉第一个冒号和space个符号吗?

谢谢

以我为例 nginx: 在开始!

nginx: 2016-08-27T18:21:59+08:00"14.88.133.152"14.88.133.152"GET"api.xxx.com"/mobile/member/user/bind/push"HTTP/1.1"- "Dalvik/2.1.0 (Linux; U; Android 5.0.2; HTC 802t Build/LRX22G)"1141"200"370"31"127.0.0.1:9000"0.00"-"-"0.082"0.080"-"g7/rxU9nj++0/E6pn7/m0EOZ7WEiWtJOHFePbHgVG8mILk0J2IDVdjQ1R4dr75h2etJxxv6VJ+z5Nk/Kh5Us/bt8NgyhF7STUT3mxFaaO7LmI2DeP/7YKRwdPcy0SOw0yRo0GrMOBRG0KWbbJbnDn4mURXpx4dkDbbSOt6q4LIbKY4qC+nslbsPM9iZknSEhtnlK1NhvbeH28DgVjz7yGOKYEVZ2wlP9mikwUtqUgl"app=a-angejia;av=4.0.1;ccid=1 ;gcid=;ch=B48;lng=;lat=;net=WIFI;p=android;pm=Android-HTC 802t;osv=5.0.2;dvid=35586705393334084:7a:88 :7f:0b:18"-"4000"2000"10"28280

您可能想看看搜索和替换拦截器 (https://flume.apache.org/FlumeUserGuide.html#search-and-replace-interceptor)

您可以使用拦截器使用正则表达式编辑事件主体。

在您的情况下,修改后的配置如下所示:

agent.sources.r1.type = syslogudp
agent.sources.r1.port = 5140
agent.sources.r1.host = localhost
agent.sources.r1.channels = c1


agent.sources.r1.interceptors = search-replace
agent.sources.r1.interceptors.search-replace.type = search_replace

agent.sources.r1.interceptors.search-replace.searchPattern = ^.*:
agent.sources.r1.interceptors.search-replace.replaceString =