收集 k8s 日志,打算用 fluent-bit 收集日志,然后 output 到 kafka 中。
然后 kafka 里的日志如何从 kafka 中存储到 es 里去吗? 难道要单独起一个 logstash 做数据处理吗 ?
各位大佬们有什么更好的实践吗 ?
1 syasuker 2020-05-10 18:16:18 +08:00 ![]() 原来的架构没有 logstash 吗? |
![]() | 2 wangking OP @syasuker 网上能找到的很多文档都是通过 logstash 去做的 ,我想看看大家伙 又没有使用 connect 之类的其他解决方案 |
![]() | 3 zhoudaiyu PRO 我们自己写了一个多进程 python 的转数脚本,就是一个死循环每个进程去 kafka 的某个分区拿数,然后维护一个简单的队列,等队列长度到达某个阈值就用 es 客户端提供的批量插入往 es 写数。 |
![]() | 4 xuanbg 2020-05-10 19:01:20 +08:00 ![]() 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 几分钟就搞定啊,不用那么纠结 |
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 真是名不副实啊! |