###インストール
私の環境はCentOSなのでrpmを利用してインストール。
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
fluentdですが、実際のデーモンはtd-agentという名前です。
fluentdは開発版の名前で、安定版の名前がtd-agentなのだとか。
###バージョン確認
td-agent --version
td-agent 0.12.12
###実行ユーザー変更
fluentd(td-agent)はログを収集、書き込むという性質上、root権限が必要になることが多い。
テスト等であれば不要なトラブルを防ぐため、実行ユーザーはrootにしておくのが無難。
設定は、/etc/init.d/td-agentの中の、下記の箇所をtd-agentからrootに変更する。
TD_AGENT_USER=root
TD_AGENT_GROUP=root
###設定ファイル
設定ファイルは、/etc/td-agent/td-agent.confをいじる。
###実行
CentOS6.x系なので、
service td-agent start
その他、stop,status,restart諸々のコマンドが使えます。
設定変えたら、restartもしくはreloadを忘れずに。
###fluent-cat
テストにfluent-catを利用する例が多く紹介されていますが、rpmインストールではPATHは通ってないようです。
fluent-catは、下記にあるようです。
/opt/td-agent/embedded/bin/fluent-cat
で、
export PATH=$PATH:/opt/td-agent/embedded/bin/
echo '{"status":"OK"}' | fluent-cat <tag.name>
などとする。
##設定
冒頭にも書きましたが、設定ファイルは/etc/td-agent/td-agent.confに設定します。
###単純な例
最も単純な例は下記のようなものです。
<source>
type forward
</source>
<match log.**>
type stdout
</match>
こんな感じにすると、
設定を変更したらrestartとするかreloadが必要です。
echo '{"status":"OK"}' | fluent-cat log.hoge
/var/log/td-agent/td-agent.logに下記のように出力されます。
2015-12-13 07:02:52 +0900 log.hoge: {"status":"OK"}
ローカルからはもちろん、この時点で、リモートからリクエスト?もリッスンしているようです。標準portは24224のようです。
sourceを、
<source>
type forward
port 24224
bind 0.0.0.0
</source>
などと記述することもできます。
###ファイルへ出力
<source>
type forward
</source>
<match log.**>
type file
path /var/log/fluentd/out
</match>
###ログを転送
####送信側
ログを転送したいサーバにもfluentdを入れて、下記のように設定します。
<source>
type tail
path /var/log/messages
format syslog
pos_file /var/log/fluentd/messages.pos
tag log.foo
</source>
<match log.*>
type forward
<server>
host 192.168.77.140
port 24224
</server>
</match>
####受信側
受信側はとりあえずそのまま。
<source>
type forward
</source>
<match log.**>
type file
path /var/log/fluentd/out
</match>
送信側で、
logger hogehoge
などとし、/var/log/messagesにログを送ります。
ファイル(out)に反映されるまで少々かかります。
出力までの時間をや設定するには flush_interval 10s とかにすればいい?
###参考