diary.sorah.jp

fluentd をためしている

わたしは今個人でだいたい6サーバくらい管理しているのだけど、nginx のログとか集約したり s3 に上げたりいろいろ調理したりしたかったのもあり、ちょうどよさそうなので fluentd に手をだしてみた。

導入先は puppet 管理下の gentoo サーバです。

とりあえず簡単な設定で全ホストから nginx ログをあつめて s3, td とローカルの FS に置くようにしたり、fluentd 経由で bot にツイートさせたりとかできるようにした。

後はなんかいろいろ考えているけど時間ができたらやる。

以下、余談です:

どうインストールしたか

fluentd 自体は rubygem でパッケージングされている、また、設定ファイルは 1 ファイルのみなので以下がまず考えられる:

  • Gentoo のパッケージマネージャ portage の ebuild を書いて portage にインストールさせる
  • puppet にインストールさせる (exec typeつかってがんばる)

が、fluentd は豊富なプラグインが rubygems でばらばらに提供されていて組み合わせて使う事もあるし、その辺の組合せのバージョン管理とかを考えると bundler をつかってしまうのがよさそうだと思った。

というわけで、bundler で

source "https://rubygems.org"

group :cap, :development do
  gem 'capistrano'
end

gem "fluentd"

gem 'fluent-plugin-forest'
gem 'fluent-plugin-rewrite'

gem 'fluent-plugin-s3'
gem 'fluent-plugin-td'
gem 'fluent-plugin-twitter'

みたいなのを書いて、設定ファイル毎 capistrano でデプロイするという手法をとった。

fluentd 自体にその周辺 gem と設定ファイルをまとめてバージョン管理できる上、複数ホストへの適用も puppet いちいち適用するより早いのでおすすめ。

puppet でも fluentd module は用意するけど、それは capistrano の deploy_to のディレクトリやログディレクトリを適切な permission でつくったり、init.d script を置いたりなどのみをする。

Backfilled at , Published at