fluentdを使ってみる

2012-10-29T00:00:00+00:00 fluentd

以前から流行ってるfluentdを色々使ってみようと。とりあえずnginxのログをfluentdに流してみる。環境はあくまで勉強用途なのでUbuntu12.10

セットアップ

http://help.treasure-data.com/kb/installing-td-agent-daemon/installing-td-agent-for-debian-and-ubuntu

通りにapt-getでtd-agentを入れる。で、td-agentっていうユーザーも作られるのでnginxからのログをfluentdでtailする際に出力先として/var/log/fluentd辺りを作って権限もtd-agentユーザーでアクセス出来るようにしとく(しないとPermission Deniedになる模様)

で今回使わないけど、fluent-catとか色々コマンドがあるんだがこれが/usr/lib/fluent/ruby/binっていうところになってる模様げなので、そこをパス設定しておく

td-agent.conf

/etc/td-agentにtd-agent.confがあるので、それをいじる

<source>
    type tail
    format apache
    path /var/log/nginx/access.log
    tag nginx.accesslog
</source>

<match nginx.accesslog>
    type file
    path /var/log/fluentd/nginx
</match>

起動

普通にサービスを起動するか

sudo -u td-agent /usr/lib/fluent/ruby/bin/fluentd -c /etc/td-agent/td-agent.conf

な感じでtd-agentユーザーでfluentdを起動する、その際に-cオプションで設定ファイルを指定する感じかなと。で起動した状態でnginxなWebサーバーにアクセスすると

2012-10-29T16:54:00+09:00   nginx.accesslog {"host":"127.0.0.1","user":"-","method":"GET","path":"/","code":"502","size":"568","referer":"-","agent":"Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4"}

な感じでログがフォーマットにより解析されて、それがJSONとして書き込まれる模様

余談: 設定ファイルに関して

今回は/etc/td-agent/td-agent.confをそのままいじりましたけど、 http://fluentd.org/doc/config.html に普通にincludeも出来る模様なので、/etc/td-agent/conf.dとかに設定ファイルを書いてそれをincludeする方が良いのかなと

Native Client(NaCl)をやってみる (8) - pp::FileSystem -