既然开始猥琐,就猥琐到底吧
作者说过,出于性能考虑,output只能有一个,而kafka output的配置里面只能傻逼地配一个topic,而现实中,我需要把不同日志对应的内容分发到不同topic,现在是一台机起了多个filebeat来实现,这样很恶心。
想过两种思路:
1、从filebeat main函数出发,按照多套配置,每套配置起一个pipeline。这样可以处理1对1的input和output
不过看着那么多锁和信号量,感觉不太靠谱
2、弄个topic数组,跟input的顺序对应起来。
看起来2是可行的。
看了下kafka output的源码,看到了一点有趣的东西
image.png
基础的消息体分成几部分
时间戳、消息头、消息主题、private那个应该暂时filebeat是没用到的
image.png
也就是说,只要input的消息里面,在消息体的头部加上topic字段,就可以实现不同topic的分发
啊呜呜呜呜
那又是改一下input的事,感恩。
网友评论