ククログ

株式会社クリアコード > ククログ > Fluent Bit入門 - 軽量高速なログ収集ツール

Fluent Bit入門 - 軽量高速なログ収集ツール

Fluent Bit Logo1

Fluent Bitとは軽量高速なログ収集ツールです。ElasticsearchやApache Kafkaなどの様々なサービスにログデータを転送できます。

全体がCで実装されているのが特徴で、RubyベースのFluentdの兄弟プロジェクトという位置づけです。

この記事では、Fluent Bitに関する基本的な質問に答えて、具体的に使い始めるための最初のステップについて解説します。

Fluent Bitのよくある質問 (FAQ)

[質問1] Fluent Bitはどこで使われていますか?

現在はKubernetesのようなコンテナ環境で広く利用されています。

いずれもクラウドプラットフォームが提供しているログの収集・解析サービスですが、転送エージェントにFluent Bitが採用されています。

また、その他の主な導入企業については、ロゴの一覧がFluent Bitの公式サイトに掲載されています。

[質問2] 誰が開発していますか?

Fluent Bit自体はCloud Native Computing Foundationの傘下プロジェクトで、様々なベンダーが開発に参加しています。

クリアコード社員の藤本(この記事の筆者)もメンテナの一人です。開発者は欧米からアジアまで世界的に分散していて、日本だと、2016年から開発に参加されている開発者として @nokute78 さんがいらっしゃいます。

[質問3] いつから開発されているプロジェクトですか?

Gitの履歴をたどると、2014年から開発が始まっています。本格的に開発がスタートしたのは2015年です。

  • 2018年にv1.0.0がリリースされ、本記事を執筆している2021年5月時点ではv1.7.5が最新版です。
  • 現在は、概ね3-6ヶ月に一度、新しい機能やプラグインを追加したバージョン更新がリリースされています。

[質問4] Fluent Bitを使うメリットは何ですか?

Fluent Bitを使うメリットとしては以下があります。

  • システムフットプリントが小さい
    • Fluent Bitは静的にリンクされたバイナリなので、実行ファイル一つを配置すれば転送を始められます。
    • 対して、FluentdはRuby本体を含めた一連のセットアップがどうしても必要となり、この手軽さの点でFluent Bitに分があります。
  • データ処理が高速
  • その他

[質問5] どうやったら使い始められますか?

各種のディストリビューション向けのパッケージが用意されています。具体的にはドキュメントを参照ください。

なお、システムインストールする目的でなければ、自分でビルドすることも(比較的簡単に)可能です。詳細は次の節を参照ください。

Fluent Bitをソースコードからビルドする

開発者が「インストール前に、ちょっと触って感覚をつかんでみたい」という場合は、ソースからコンパイルしてみることをおすすめします。 手順は特に難しくはなく、Linuxの動いている環境があれば、10分ほどでセットアップからビルドまで完了させられます。

Ubuntu/Debianの場合

まずはビルドに必要なツールをインストールします。

$ sudo apt install cmake git build-essentials flex bison

Fluent Bitをクローンして、最新の安定版をチェックアウトします。

$ git clone https://github.com/fluent/fluent-bit
$ cd fluent-bit/build
$ git checkout v1.7.5

CMakeでMakefileを生成して、makeします。

$ cmake ..
$ make

マシンの性能によりますが、ビルドは1-2分で終わります。この記事作成時の実測だと、AzureのB1msインスタンス(最も安価なクラスのインスタンス)で、2分19秒で完了しました。

real    2m19.578s
user    1m57.200s
sys     0m18.846s

./bin/配下にFluent Bitのバイナリが生成されていますので、次のコマンドで動作を確認下さい。

$ ./bin/fluent-bit -i dummy -o stdout
...
[0] dummy.0: [1621305552.596679813, {"message"=>"dummy"}]
[1] dummy.0: [1621305553.596759306, {"message"=>"dummy"}]

CentOS/RHELの場合

最初のステップでインストールするパッケージが異なる他は、基本的にUbuntu/Debianと同じです。

以下の手順はCentOS 8.2で動作を確認しています。まずはビルドに必要なツールをインストールします。

$ sudo dnf install cmake git flex bison
$ sudo dnf groupinstall "Devlopment Tools"

Fluent Bitをクローンして、最新の安定版をチェックアウトします。

$ git clone https://github.com/fluent/fluent-bit
$ cd fluent-bit/build
$ git checkout v1.7.5

CMakeでMakefileを生成して、makeします。

$ cmake ..
$ make

ビルドはAzureのB1msインスタンスで、1分58秒で完了しました。

real    1m58.384s
user    1m33.585s
sys     0m20.255s

./bin/配下にFluent Bitのバイナリが生成されていますので、次のコマンドで動作を確認下さい。

$ ./bin/fluent-bit -i dummy -o stdout
...
[0] dummy.0: [1621307478.470085499, {"message"=>"dummy"}]
[1] dummy.0: [1621307479.470049466, {"message"=>"dummy"}]

次のステップ

この記事では、Fluent Bitの概要を説明しました。Fluent Bitについてもっと知りたい方は、以下のリンクを参照ください。

  1. "Fluent Bit Logo" by The Fluent Bit Authors, used under Apache License v2.0.