"本文主要对fluent-bit特性及使用场景介绍"

1、简介

fluent-bit是一种在Linux,OSX和BSD系列操作系统运行,兼具快速、轻量级日志处理器和转发器。它非常注重性能,通过简单的途径从不同来源收集日志事件。

2、功能

fluent-bit是一个开源的、多平台的、旨在成为像一把瑞士军刀一样进行日志收集和转发。它为我们提供一个终端到终端的解决方案,收集,存储和分析的基础架构。fluent-bit是此管道中是不可或缺的一部分,它可以解决日志收集需求。作为一个开源项目,它已被广泛采用,fluent-bit能够胜任和解决docker和Kubernetes等关键组件的云服务日志记录需求。

3、fluent-bit工作原理

android 日志 采集上传 日志系统采集工具_android 日志 采集上传

fluent-bit是一个简单日志收集工具,上图就是对它工作流程的全局概述,它通过输入、转换、过滤、缓冲、路由到输出而完成日志的收集。

4、为什么使用fluent-bit

如今,我们环境中的信息源数量正在不断增加,数据收集和日志转发很困难,大规模处理数据收集非常复杂,并且收集和汇总各种数据需要一个专门的工具来处理:

  • 不同的信息来源。
  • 不同的数据格式。
  • 多个目的地。

fluent-bit出于满足对高性能的需求和优化工具,它可以从任何输入源收集数据,统一的数据并将其发送到多个目的地而且支持delimiter、key-value、json等主流格式。比如我们常见的logstash耗费资源严重,filebeat可以作为轻量级日志收集工具,目前只能对接对接到ES、logstash、kafaka、redis而且对数据处理能力有限必须配合大数据平台使用(具体查看:Kubernetes日志收集解决方案)。fluent-bit兼具filebeat的功能,但是filebeat不具备fluent-bit数据处理和路由转发能力,如果我只想简单收集日志,filebeat不能满足,具体请查看:Kubernetes集群环境下fluentd日志收集方案介绍

5、fluentd和fluent-bit的关系及特性

日志收集场景和需求是多变的,为了满足日志收集的灵活性,我们会根据需求选择不同的插件,比如:ELK常见解决方案Kubernetes日志收集解决方案,当前我们主要介绍fluentd和fluent-bit两个开源项目之间的关系及特性,fluentd和fluent-bit都是有Treasure Data公司赞助开发,目标是解决日志收集、处理和转发。

这两个项目有很多相似之处,fluent-bit完全基于Fluentd体系结构和设计经验。从体系结构的角度来看,选择使用哪个取决于使用场景,我们可以考虑:

  • Fluentd是日志收集器,处理器和聚合器。
  • fluent-bit是一个日志收集器和处理器(它没有Fluentd等强大的聚合功能)。


fluentd

fluent-bit

范围

容器/服务器

容器/服务器

语言

C和Ruby

C

大小

约40MB

约450KB

性能

高性能

高性能

依赖关系

作为Ruby Gem构建,主要依赖gems

除了一些安装编译插件(GCC、CMAKE)其它零依赖。

插件支持

超过650个可用插件

大约35个可用插件

许可证

Apache许可证2.0版

Apache许可证2.0版

根据两个组件不同特点可以考虑将Fluentd主要用作聚合器,将fluent-bit作为日志转发器,两个项目相互补充,从而提供了完整的可靠轻量级日志解决方案,当然fluent-bit也可以独立完成日志收集。

6、fluent-bit支持平台

操作系统

平台

cpu架构

Linux

Centos 7

x86_64


Debian 8 (Jessie)

x86_64


Debian 9 (Stretch)

x86_64


Raspbian 8 (Debian Jessie)

AArch32


Raspbian 9 (Debian Stretch)

AArch32


Ubuntu 16.04 (Xenial Xerus)

x86_64


Ubuntu 18.04 (Bionic Beaver)

x86_64

从体系结构支持的角度来看,fluent-bit在基于x86,x86_64,AArch32和AArch64的处理器上具有全部功能。fluent-bit也可以在OSX和*BSD系统上工作,但并非所有插件在所有平台上都可用。官方支持将根据社区需求而扩大。

7、下载地址及参考文档

http://fluentbit.io/download/

https://docs.fluentbit.io/manual/

8、安装及使用方法

参考:日志收集工具fluentd安装配置及使用介绍

9、总结

本文主要介绍了fluent-bit特性及功能,接下来我会分为三遍文章进行分享,分别是fluent-bit在docker和Kubernetes中的使用、fluent-bit插件使用和指令介绍、fluentd和fluent-bit在线上环境的使用,敬请关注。

推荐阅读:


Kubernetes排障指南

从零搭建Kubernetes下的nignx和tomcat

Kubernetes中如何使用ClusterDNS进行服务发现?

从Ice到Kubernetes容器技术,微服务架构经历了什么?

如何使用docker?