使用Fluent-bit将日志发送到Apache Pulsar

这是 Kubernetes Advent Calendar 2020 – Qiita 上12月15日(星期二)的文章。

太长不看;

创建一个将Kubernetes上的应用程序日志收集并发送到Apache Pulsar的Fluent Bit输出插件的原型。

undefined

背景和问题

(这不是真实发生的事情,而是幻想和模拟)

我們過去一直使用一個叫做A的工具來分析日誌,但是這次如果遇到想要從另一個角度進行分析的情況,我們該如何解決這個問題呢?考慮到這一點,我們決定引入一個名為B的新工具。

我们有几种解决方法可考虑,但这次我们打算在日志产生的来源和解析工具之间引入消息平台来解决。

app-log -> log-collector -> tool

用中文将上述内容进行泛译:将上面的东西替换成下面的形象。

                                          ┌ tool-A
app-log -> log-collector -> messaging-pf -┤
                                          └ tool-B

解决方案的选择

我們考慮在日誌收集器中採用Fluent Bit,並在消息平台中選用Apache Pulsar。

流畅比特是什么?

Fluent Bit是一个开源的日志处理器和转发器,允许您从不同源收集任何数据,如指标和日志,通过过滤器对其进行增强,并将其发送到多个目标。它是容器化环境(如Kubernetes)的首选选择。

我是日志收集器。

Apache Pulsar 是什么?

Apache Pulsar 是一个原始创建于雅虎(Yahoo!),现在成为顶级Apache Software Foundation项目的云原生、分布式消息传递和流媒体平台。

这是一个消息平台。
在消息平台行业中,除了Kafka等知名产品外,Apache Pulsar也是非常著名的。它在CNCF云原生互动景观的“流式处理和消息传递”部分被列为一项重要的解决方案。

本构成的问题所在

在查看了Fluent Bit官方手册后,发现没有针对Apache Pulsar的输出插件。

如果不这样做,就只能写下来了。
Fluent Bit使用C语言编写,与Fluentd不同。

我不擅长C语言编程,但对于Go语言有一点了解。于是我进行了一番调查,发现有适用于Go语言的操作手册和库。

Golang 输出插件 – Fluent Bit 的官方手册: 公式指南

undefined

出现了的东西 de

undefined

就算说我写了插件,也只是个原型,仅仅是个最基本的功能没有认证的版本运行而已。

亲自尝试在k8s上进行引入

实际上我本来想做到更长远的,但是由于环境搭建耽误了,只能做到这里了。很抱歉。

undefined

只需要一个选项,以下是对该句的中文本地化释义:

看着这一块,只要用Apache Pulsar替换掉Kafka的部分,就应该可以做到。

概括

我已经创建了一个原型,用于收集Kubernetes上的应用程序日志并将其发送到Apache Pulsar的Fluent Bit输出插件。

我打算在未来试着使用k8s来运行,并且认真实现插件自身。

广告
将在 10 秒后关闭
bannerAds