Flume 活动修改

Flume event modification

如何在Flume的每个事件的前面添加时间戳? 说我有这个日志,但我也想添加时间戳

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 2016-05-95 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

假设您的意思是在事件主体字节的开头添加时间戳,那么没有预制拦截器来执行您的要求(搜索和替换拦截器无法替换为动态值,例如日期)。

然而,编写一个拦截器为每个事件主体添加当前时间戳应该是微不足道的。

以现有拦截器的源代码为例,编译代码并将 jar 部署到名为 $FLUME_HOME/plugins.d/my-plugins/lib/my-plugin.jar

的新文件夹中

这是标准 flume 拦截器的 link 当前源:

但基本上您只需要创建一个实现 Interceptor 接口的 class,并创建一个 Interceptor.Builder 实现。

您可以使用 Flume 拦截器:https://flume.apache.org/FlumeUserGuide.html#flume-interceptors 修改事件。

您可以编写自己的 类 来实现您正在寻找的功能,或者您也可以使用 Morphline 拦截器。

如果不需要更改 body,您可以只使用时间戳拦截器将时间戳添加到 headers。

我通过使用 Morphline 解决了这个问题,在下面添加了这些函数,其中时间戳被添加到 flume 的每个事件的开头。 { addCurrentTime { 字段:时间戳 } },<br> { 设置值{ _result = "@{时间戳}|@{消息}" } },