2019/07 追記
2018年末あたりからGentooオフィシャルでfluentdパッケージが提供されているようです。
https://packages.gentoo.org/packages/app-admin/fluentd
(追記ここまで)
この記事はFluentdのebuildがようやく出来上がりハイになったタイミングでFluentd Advent Calendar 2015がまだ空いているのを見つけついうっかりエントリーしたことにより書かれています。
はじめに
Fluentdを使おうと思ったとき、RHELやUbuntuあるいはMac OSXのユーザーであればtd-agentとしてrpm, deb, dmg各形式でFluentdのパッケージが提供されていますので導入はとても簡単です。
一方、Gentoo Linux向けにはFluentdのパッケージは提供されていません。
ですので、これまではGentoo LinuxでFluentdを使う際にはrbenvとbundlerを使ってインストールしていました。
しかしながら導入対象ホストの数が増えると手間なことや自社サービスのパッケージ管理を進めていることからGentoo Linuxのパッケージであるebuildを作りたいと(ここ2年くらい)思っていました。
この度重い腰を上げ無事ebuildができましたので記念に記事を書くことにします。
使い方
今回作成したebuildの使い方をご紹介します。
リポジトリの登録
パッケージリポジトリ(Portageリポジトリ)を mazgi-experimental
という名前で登録することとします。
(ややこしいですが、Portageはパッケージ管理システム自体、ebuildは個々のパッケージ自体またはフォーマット、後ほど出てくるemergeはパッケージ管理のコマンドです。)
まずリポジトリの設定ファイル /etc/portage/repos.conf/mazgi-experimental.conf
を作成します。
内容は下記の通りです。
[mazgi-experimental]
location = /var/lib/portage/repo.data/mazgi-experimental
sync-type = git
sync-uri = git://github.com/mazgi/portage-overlay.git
auto-sync = yes
インストール
基本的には emaint sync -a
して emerge fluentd
するだけです。
環境に応じて dispatch-conf
したり eselect ruby
でアクティブにするRubyのバージョンを指定する必要があります。
関連パッケージが入っていない状態でインストールすると概ねこのような依存パッケージがインストールされるはずです。
動作確認
インストールが完了すると fluentd --setup /etc/fluentd
を実行するように言われますので実行します。
ついでにログレベルを -vv
にしておきます。他のGentoo Linuxのパッケージと同じく /etc/conf.d/fluentd
で設定変更ができます。
# fluentd --setup /etc/fluentd
Installed /etc/fluentd/fluent.conf.
# grep -vE '^\s*(#|$)' /etc/conf.d/fluentd
FLUENTD_OPTS="-vv"
公式ドキュメントにならってテストしましょう。
Fluentdサービスを起動して fluent-cat
でメッセージを送ります。
# /etc/init.d/fluentd start
# echo '{"json":"message"}' | fluent-cat debug.test
これでGentoo LinuxでもFluentdがより導入しやすくなりますね(?)
Have a fluent day!
おわりに
ここまで書いてesm-overlayにパッケージがあることを知りました。