blogのアクセス数がほんの少し増えてきたので、fluentd(フルーエントディ) をインストールしてみます。
今回、fluentd をインストールする環境は、以下になります。
- AmazonLinux
- nginx
- ruby 2.1.0 (anyenv)
fluentd を導入すると何ができるか
fluentd はログなどを取得し、取得したデータを整形して elasticsearch + kibana などに渡すことで、データを簡単に可視化することができます。
fluentdをgem経由でインストールする
まずは公式どおりにgem
でインストールしてみます。
注意
こちらの記事を参考に、yum経由でインストールも行いました。
$ gem install fluentd --no-ri --no-rdoc
メモリが割り当てられない?というエラーが出ました。
ERROR: Error installing fluentd:
ERROR: Failed to build gem native extension.
$HOME/.anyenv/envs/rbenv/versions/2.1.0/bin/ruby extconf.rb
Cannot allocate memory - $HOME/.anyenv/envs/rbenv/versions/2.1.0/bin/ruby extconf.rb 2>&1
Gem files will remain installed in $HOME/.anyenv/envs/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/yajl-ruby-1.2.1 for inspection.
Results logged to $HOME/.anyenv/envs/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/yajl-ruby-1.2.1/gem_make.out
試しに`aws-sdk`をインストールしてから、再度インストールしてみたらうまくいきました。
$ gem install aws-sdk
$ gem install fluentd --no-ri --no-rdoc
$ source $HOME/.zshrc
$ fluentd --version
fluentd 0.10.55
#### セットアップ
次はセットアップを行います。
指定した`fluent`のホームディレクトリ直下に`fluent.conf`というファイルが生成されます。
$ fluentd --setup app/fluent
Installed app/fluent/fluent.conf.
$ tree app/fluent
app/fluent
├── fluent.conf
└── plugin
#### 起動方法
試しに公式どおりに起動してみます。
`-vv`でトレースモード、`&`でバッググラウンドで起動します。
起動後にjsonを`fluent-cat`に渡して、`debug`タグの設定(stdout)どおり出力します。
$ fluentd -c app/fluent/fluent.conf -vv &
[1] 22209
$ echo '{"json":"message"}' | fluent-cat debug.test
2014-10-20 05:48:01 +0000 [trace]: plugin/in_forward.rb:189:initialize: accepted fluent socket from '127.0.0.1:44260': object_id=69925032642500
2014-10-20 05:48:01 +0000 debug.test: {"json":"message"}
2014-10-20 05:48:01 +0000 [trace]: plugin/in_forward.rb:245:on_close: closed fluent socket object_id=69925032642500
### Nginxのログをfluentdに流す
`fluent.conf`には、ログの入力方法`