最近在做flume日志收集工作,需要将每台日机器上的日志收集,然后发送到kafka,接着有专门的日志处理程序从kafka中进行消费,其中有个问题就是在消费的时候需要知道当前的日志来自哪台机器,查阅了flume文档发现没有提供该功能,因此就自己定一个flume拦截器。基本的流程就是将日志内容从flume event中取出,然后拼接上自定义的IP,然后再将body设置到event中。
架构部署图如下
flume拦截器代码如下
AppendIPInterceptor
package com.eju.ess;
import java.util.List;
import org.apache.flume.Context;
import org.apache.flume.Event;
import org.apache.flume.interceptor.Interceptor;
import com.google.common.base.Charsets;
public cl