Edited at

fluentdをmacにインストールしてとりあえず使ってみる

More than 5 years have passed since last update.

Gemを使ってistall(Ruby1.9.2以上が必要)

gem install fluentd --no-ri --no-rdoc

起動

fluentd --setup ./fluent

fluentd -c ./fluent/fluent.conf -vv &

デーモンで起動させることも可能

confファイル

source -> 標準入力、ファイル、ポート指定のHTTP通信など

# $ echo <json> | fluent-cat <tag>

<source>
type forward
</source>

# http通信
<source>
type http
port 8888
</source>

# ファイル
# 例ではapacheのaccess-log
<source>
type all
format apache
path /var/log/httpd-access.log
tag apache.access
</source>

# デバッグ出力
<source>
type debug_agent
port24230
</source>

match -> マッチしたログの処理 標準出力、ファイル出力、他サーバへの転送など

## tagがapache.accessのときpathにファイル出力

<match apache.access>
type file
path /var/log/fluent/access
</match>

## tagがdebug.** (**はワイルドカード??)のとき標準出力
<match debug.**>
type stdout
</match>

## tagがsystem.**のとき他のサーバに転送
<match system.**>
type forward
host 192.168.0.11
<secondary>
host 192.168.0.12
</secondary>
</match>

## tagがmyapp.**のとき他サーバのファイルに保存andファイルに保存(出力先複数)
<match myapp.**>
type copy
<store>
type forward
host 192.168.0.13
buffer_type file
buffer_path /var/log/fluent/myapp-forward
retry_limit 50
flush_interval 10s
</store>
<store>
type file
path /var/log/fluent/myapp
</store>
</match>

## tagがfluent.**のとく何もしない
<match fluent.**>
type null
</type>

## マッチしなかったもの(else的な)はgzip圧縮してファイル出力
<match **>
type file
path /var/log/fluent/else
compress gz
</match>

include ->confファイルの読み込み。他サーバからも

include config.d/*.conf

include http://pokopoko.com/fluent.conf

使ってみる

echo '{"hoge":"fuga"}' | fluent-cat debug.forward

で元のコンソールに

2013-03-20 11:06:03 +0900 debug.forward: {"hoge":"fuga"}

のように標準出力される

curl http://localhost:8888/debug.http -F 'json={"foo":"bar"}'

するとリクエストを受け取り

2013-03-20 11:07:44 +0900 debug.http: {"foo":"bar"}

と出力