notebook

都内でWEB系エンジニアやってます。

Fluentdを使ってみる

今回は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

無事ログを出力することが出来ました。

今回はここまで