今回はFluentdです。
仕事で関わるところで使ってるので勉強がてらインストールして使ってみます。
ログを特定のフォーマットで一括で扱えるというのがウリのよう
複数サーバ間でのやりとりも出来るようなのでsyslog-ngとかでやってたみたいにログサーバを用意してそこで一元管理するってのが出来るみたい
何はともあれ使ってみます。
yumのリポジトリを追加
vi /etc/yum.repos.d/td.repo
[tresuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
インストール
yum install td-agent
起動
/etc/init.d/td-agent start
とりあえず起動しました。
試しにnginxのアクセスログをfluentdで出力できるようにしようということで。。。
ltsv形式に対応しているようなのでnginxのアクセスログもltsv形式に変更します
access_log /var/log/nginx/access.log ltsv;
log_format ltsvでフォーマットを定義して上記でログフォーマットを変更
<match nginx.access>
type file
path /tmp/fluentd-test.log
</match>
<source>
type tail
tag nginx.access
format ltsv
path /var/log/nginx/access.log
pos_file /tmp/nginx_access.log.pos
</source>
再起動してログが吐かれるか見てみます
error="argument out of range"
エラーが出て動かなかったのでググッたらインプット側の設定で日付フォーマットを指定しなければならないよう
なのでsourceディレクティブに下記を追加し再起動
time_format %d/%b/%Y:%H:%M:%S %z
無事ログを出力することが出来ました。
今回はここまで