kafka 里的数据如何写到 es 里去 ?

2020-05-10 17:53:19 +08:00
 wangking

收集 k8s 日志,打算用 fluent-bit 收集日志,然后 output 到 kafka 中。
然后 kafka 里的日志如何从 kafka 中存储到 es 里去吗? 难道要单独起一个 logstash 做数据处理吗 ?
各位大佬们有什么更好的实践吗 ?

4922 次点击
所在节点    程序员
20 条回复
syasuker
2020-05-10 18:16:18 +08:00
原来的架构没有 logstash 吗?
wangking
2020-05-10 18:22:35 +08:00
@syasuker 网上能找到的很多文档都是通过 logstash 去做的 ,我想看看大家伙 又没有使用 connect 之类的其他解决方案
zhoudaiyu
2020-05-10 18:23:33 +08:00
我们自己写了一个多进程 python 的转数脚本,就是一个死循环每个进程去 kafka 的某个分区拿数,然后维护一个简单的队列,等队列长度到达某个阈值就用 es 客户端提供的批量插入往 es 写数。
xuanbg
2020-05-10 19:01:20 +08:00
fluent 直接写 es 啊,要什么 kafka 和 logstash
hahahahahha
2020-05-10 19:05:09 +08:00
kafka 确实有和 es 的 connector 通道, 在 kafka 的 spring-kafka-connector 源码有写的,
wangking
2020-05-10 20:54:43 +08:00
@zhoudaiyu 这个方案不一定能行 ,还是比较期待有生产级别的工具
wangking
2020-05-10 20:55:20 +08:00
@xuanbg 解耦,常规操作
wangking
2020-05-10 20:56:24 +08:00
@hahahahahha 看了一下 , 有个 confluent 的解决方案,没有 google 到合适的方案
marcolin
2020-05-10 21:27:48 +08:00
fluentd 可以同时写到两个 output 啊
xuanbg
2020-05-10 21:37:33 +08:00
这个解耦没多少意义啊,而且平白地增加了复杂度。再说,日志是允许丢的数据,没必要和数据完整性死磕呀。
@wangking
syasuker
2020-05-10 22:14:06 +08:00
@wangking EFK + Kafka 么?
fluent-bit 跟 logstash 是同级别的 看起来应该是 log 直接进 Kafka 然后经由 F 到 ES
xetv
2020-05-10 22:15:43 +08:00
@xuanbg 加一个 kafka 在后续维护的过程中会更加灵活一点。由于 es 和 kafka 的数据落盘机制不同,kafka 性能可能会优于 es 。
楼主是按照采集-传输-保存这个步骤进行解藕了,我之前做过一样的系统,也是按照这个模式走的,实测 kafka 写入性能比 es 好。后面如果数据量再大一点的话,传输上面有性能瓶颈还是查询上面有瓶颈,可以有针对性的解决。
wangking
2020-05-10 23:51:36 +08:00
@syasuker 这个其实是跟 logstash 一样的,目前想通过 kafka 的 connector 直接接 es,感觉有点麻烦,后面可能还是你说的这个方案
wangking
2020-05-10 23:52:42 +08:00
@xetv 是的,同时后面也可能会有多消费者的需求,所以,这些提前准备一下
limbo0
2020-05-11 03:42:29 +08:00
@xuanbg 业界标准了,es 查询和存储一体,稳定性不如 kafka,而且以后方便扩展一定会上 kafka 的
这个写 es 直接 Logstash 几分钟就搞定啊,不用那么纠结
0312birdzhang
2020-05-11 08:48:35 +08:00
@limbo0 +1,有现成的成熟方案还纠结啥
rafa
2020-05-11 09:38:18 +08:00
filebeat 了解下
pmispig
2020-05-11 10:23:48 +08:00
当然是自己写一个消费者了,日志要做处理
wangking
2020-05-11 18:19:31 +08:00
@spidermansam0718 现在也没有时间折腾的了,先用 filebeat 顶上
@pmispig 优先使用工具啊,毕竟是生产
julyclyde
2020-05-12 14:12:38 +08:00
啊? filebeat 居然可以读 kafka
真是名不副实啊!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670289

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX