收集 k8s 日志,打算用 fluent-bit 收集日志,然后 output 到 kafka 中。
然后 kafka 里的日志如何从 kafka 中存储到 es 里去吗? 难道要单独起一个 logstash 做数据处理吗 ?
各位大佬们有什么更好的实践吗 ?
1
syasuker 2020-05-10 18:16:18 +08:00 1
原来的架构没有 logstash 吗?
|
2
wangking OP @syasuker 网上能找到的很多文档都是通过 logstash 去做的 ,我想看看大家伙 又没有使用 connect 之类的其他解决方案
|
3
zhoudaiyu 2020-05-10 18:23:33 +08:00 via iPhone
我们自己写了一个多进程 python 的转数脚本,就是一个死循环每个进程去 kafka 的某个分区拿数,然后维护一个简单的队列,等队列长度到达某个阈值就用 es 客户端提供的批量插入往 es 写数。
|
4
xuanbg 2020-05-10 19:01:20 +08:00 1
fluent 直接写 es 啊,要什么 kafka 和 logstash
|
5
hahahahahha 2020-05-10 19:05:09 +08:00
kafka 确实有和 es 的 connector 通道, 在 kafka 的 spring-kafka-connector 源码有写的,
|
8
wangking OP @hahahahahha 看了一下 , 有个 confluent 的解决方案,没有 google 到合适的方案
|
9
marcolin 2020-05-10 21:27:48 +08:00
fluentd 可以同时写到两个 output 啊
|
11
syasuker 2020-05-10 22:14:06 +08:00
@wangking EFK + Kafka 么?
fluent-bit 跟 logstash 是同级别的 看起来应该是 log 直接进 Kafka 然后经由 F 到 ES |
12
xetv 2020-05-10 22:15:43 +08:00
@xuanbg 加一个 kafka 在后续维护的过程中会更加灵活一点。由于 es 和 kafka 的数据落盘机制不同,kafka 性能可能会优于 es 。
楼主是按照采集-传输-保存这个步骤进行解藕了,我之前做过一样的系统,也是按照这个模式走的,实测 kafka 写入性能比 es 好。后面如果数据量再大一点的话,传输上面有性能瓶颈还是查询上面有瓶颈,可以有针对性的解决。 |
13
wangking OP @syasuker 这个其实是跟 logstash 一样的,目前想通过 kafka 的 connector 直接接 es,感觉有点麻烦,后面可能还是你说的这个方案
|
15
limbo0 2020-05-11 03:42:29 +08:00 via iPhone
@xuanbg 业界标准了,es 查询和存储一体,稳定性不如 kafka,而且以后方便扩展一定会上 kafka 的
这个写 es 直接 Logstash 几分钟就搞定啊,不用那么纠结 |
16
0312birdzhang 2020-05-11 08:48:35 +08:00 via iPhone
@limbo0 +1,有现成的成熟方案还纠结啥
|
17
rafa 2020-05-11 09:38:18 +08:00
filebeat 了解下
|
18
pmispig 2020-05-11 10:23:48 +08:00
当然是自己写一个消费者了,日志要做处理
|
19
wangking OP |
20
julyclyde 2020-05-12 14:12:38 +08:00
啊? filebeat 居然可以读 kafka
真是名不副实啊! |