はじめに
以前、Fluent Bitを検証したことがありました。
ドキュメントの読解と共に、動作検証も行いました。
動作検証を行うため、Fluent Bitをインストールする必要があり、パッケージからのインストールの他に、ソースからのインストールが行えることも書かれていました。
パッケージからのインストールですと、古いバージョンであることが多いので、ソースからインストールしてみることにしました。
ただ、公式のドキュメントには、インストールに必要な情報が欠けており、インストールに手間取る結果となりました。そこで、ソースからのインストールを行うのに必要な手順を残しておくことにしました。
環境
- OSはRHEL9.1
- Fluent Bitは2.2.2
- 本記事を書いた時点の最新版
公式ドキュメントについて
公式ドキュメントで、ソースからインストールする方法が述べられています。
このドキュメントを元に作業を進めていき、ドキュメントに載っていないことを本記事で解説します。
ドキュメントに書かれていないこと
ドキュメントには、以下が必要と書かれていました。
https://docs.fluentbit.io/manual/installation/sources/build-and-install#requirements
- CMake >= 3.12
- Flex
- Bison >= 3
- YAML headers
- OpenSSL headers
CMakeとFlex、BisonはAppStreamにあるので、問題ありません。dnf listであっさりと確認できました。
OpenSSL headersは、openssl-develのパッケージだということがわかりました。これもAppStreamにありましたから、問題ありませんでした。
ただ、YAML headersがすんなりとはわかりませんでした。わかる人にはこれだけでもわかる、ということでしょうか。調査の結果、YAML headersが意味するものは、以下の通りでした。
- YAML headersは、libyaml-develパッケージのこと
- リポジトリはCodeReady Linux Buildeである
また、gcc-c++も必要でした。
これはドキュメントのRequirementsに書かれていません。ビルドエラーとなったところでわかったことです。
これらを踏まえて、作業を行います。
ビルド前の準備
CodeReady Linux Builderのリポジトリを有効にする
サブスクリプションマネージャーを使い、CodeReady Linux Buiderのリポジトリを有効にします。
$ sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
リポジトリー 'codeready-builder-for-rhel-9-x86_64-rpms' は、このシステムに対して有効になりました。
パッケージを最新の状態にする
念のため、パッケージを最新の状態にしておきます。
$ sudo dnf update
サブスクリプション管理リポジトリーを更新しています。
Red Hat CodeReady Linux Builder for RHEL 9 x86_64 (RPMs) 4.3 MB/s | 4.3 MB 00:01
依存関係が解決しました。
行うべきことはありません。
完了しました!
必要なパッケージをまとめてインストールする
ビルドに必要なパッケージをまとめてインストールします。
$ sudo dnf install -y cmake flex bison libyaml-devel openssl-devel gcc-c++
サブスクリプション管理リポジトリーを更新しています。
(中略)
インストール済み:
bison-3.7.4-5.el9.x86_64 cmake-3.20.2-7.el9.x86_64 cmake-data-3.20.2-7.el9.noarch
cmake-filesystem-3.20.2-7.el9.x86_64 cmake-rpm-macros-3.20.2-7.el9.noarch flex-2.6.4-9.el9.x86_64
gcc-c++-11.3.1-2.1.el9.x86_64 libstdc++-devel-11.3.1-2.1.el9.x86_64 libyaml-devel-0.2.5-7.el9.x86_64
m4-1.4.19-1.el9.x86_64 openssl-devel-1:3.0.1-47.el9_1.x86_64
完了しました!
ビルド
ソースのダウンロード
GitHubからソースをダウンロードします。
公式ではリリースバージョンのタグを調べ、「https://github.com/fluent/fluent-bit/archive/refs/tags/v.tar.gz」か「https://github.com/fluent/fluent-bit/archive/refs/tags/v.zip」に当てはめるようにとありますが、 https://github.com/fluent/fluent-bit/releases を見て、そこからダウンロードしたほうが良さそうです。
今回は2.2.2をダウンロードしました。
$ wget https://github.com/fluent/fluent-bit/archive/refs/tags/v2.2.2.zip
ソースコードを展開する
$ unzip v2.2.2.zip
fluent-bit-2.2.2
ディレクトリが作成されています。
展開したディレクトリのbuildディレクトリに移動する
$ cd fluent-bit-2.2.2/build
buildディレクトリでCMakeを実行する
$ cmake ../
-- The C compiler identification is GNU 11.3.1
-- Detecting C compiler ABI info
(中略)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/---/fluent-bit-2.2.2/build
makeを実行する
$ make
[ 0%] Creating directories for 'backtrace'
[ 0%] No download step for 'backtrace'
(中略)
[100%] Linking C executable ../../bin/out_lib
[100%] Built target out_lib
make installを実行する
/usr/local
への書き込みが発生するため、root権限が必要です。
root権限が必要になるだろうということは、ドキュメントで述べられています。
it's likely you may need root privileges so you can try to prefixing the command with sudo.
$ sudo make install
[ 1%] Built target backtrace
Consolidate compiler generated dependencies of target c-ares
(中略)
-- Installing: /usr/local/etc/fluent-bit/parsers.conf
-- Installing: /usr/local/etc/fluent-bit/plugins.conf
インストール後の確認
whichコマンドでfluent-bit
コマンドの場所を確認して、/usr/local/bin
に置かれていれば、インストールは成功です。
$ which fluent-bit
/usr/local/bin/fluent-bit
fluent-bit
コマンドでバージョンの確認を行い、バージョン表示がされればコマンドは正しく動いています。
$ fluent-bit --version
Fluent Bit v2.2.2
Git commit: