Fluentd を入れてみる

今更ながら、Fluentd を入れてみる。

導入手順

公式サイトの説明(http://docs.fluentd.org/ja/categories/installation )に従って入れてみる。

事前準備

公式サイトのFluentdインストールの前にに従って準備を行う。

ntp の設定

ntp をインストールし、設定を行う。

# install
$ sudo aptitude install ntp

# 設定ファイルのバックアップをとり、編集(下記参照)
$ sudo cp /etc/ntp.conf /etc/ntp.conf_bak
$ sudo vim /etc/ntp.conf

# restart
$ sudo service ntp restart
 * Stopping NTP server ntpd                         [ OK ]
 * Starting NTP server ntpd                         [ OK ]

# 確認
$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp-a2.nict.go. .NICT.           1 u    5   64    1    9.836    0.030   0.000
 ntp-b2.nict.go. .NICT.           1 u    4   64    1   10.088   -0.039   0.000
 ntp-a3.nict.go. .NICT.           1 u    3   64    1    9.848    0.027   0.000
 ntp-b3.nict.go. .NICT.           1 u    2   64    1   10.195   -0.050   0.000
 ntp-a3.nict.go. .INIT.          16 -    -   64    0    0.000    0.000   0.000
 ntp-a2.nict.go. .INIT.          16 -    -   64    0    0.000    0.000   0.000

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp-a2.nict.go. .NICT.           1 u   34   64   37    9.681    0.068   0.030
 ntp-b2.nict.go. .NICT.           1 u   32   64   37   10.088   -0.039   0.124
 ntp-a3.nict.go. .NICT.           1 u   31   64   37    9.600    0.042   0.008
 ntp-b3.nict.go. .NICT.           1 u   28   64   37   10.026    0.108   0.177
 ntp-a3.nict.go. .INIT.          16 -    -   64    0    0.000    0.000   0.000
 ntp-a2.nict.go. .INIT.          16 -    -   64    0    0.000    0.000   0.000

設定ファイルの変更内容は以下の通りとする。

$ diff /etc/ntp.conf_bak /etc/ntp.conf
19,22c19,23  
< server 0.ubuntu.pool.ntp.org  
< server 1.ubuntu.pool.ntp.org  
< server 2.ubuntu.pool.ntp.org  
< server 3.ubuntu.pool.ntp.org  
---
> #server 0.ubuntu.pool.ntp.org
> #server 1.ubuntu.pool.ntp.org
> #server 2.ubuntu.pool.ntp.org
> #server 3.ubuntu.pool.ntp.org
> pool ntp.nict.jp
25c26  
< server ntp.ubuntu.com  
---
> #server ntp.ubuntu.com

ファイルディスクリプタの上限変更

# 確認
$ ulimit -n
1024

# 公式サイトにあるように設定値を変更
$ sudo cp /etc/security/limits.conf /etc/security/limits.conf_bak
$ sudo vim /etc/security/limits.conf

# サーバ再起動後確認
$ ulimit -n
65536  

カーネルパラメータの変更

# 公式サイトにある設定を追記し反映する
$ sudo vim /etc/sysctl.conf
$ sysctl -w

インストール

公式サイトにある手順に従い、インストールする。今回利用する環境は Ubuntu 12.04 なので、http://docs.fluentd.org/ja/articles/install-by-deb 書かれている方法で導入する。

$ curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-precise.sh | sh
$ /etc/init.d/td-agent restart
$ /etc/init.d/td-agent status

nginx のログを読み取るようにする

nginx のログは現在 ltsv 形式で出力するようにしている。
このログを fluentd に読み込ませるようにする。

ltsvの公式サイトおよびfluentd で LTSV がサポートされたのでメモ - 暇人じゃないを参考に設定ファイルに追記する。

# 設定ファイルのバックアップをとり追記する
$ sudo cp /etc/td-agent/td-agent.conf /etc/td-agent/td-agent.conf_bak
$ sudo vim /etc/td-agent/td-agent.conf

# restart
$ sudo /etc/init.d/td-agent restart

追記した内容は以下の通り

<source>  
  type tail
  path <アクセスログへのパス>
  time_format %d/%b/%Y:%H:%M:%S %z
  tag nginx.access
  pos_file /tmp/nginx-access.log.pos
  format ltsv
</source>  
<match nginx.access>  
  type file
  path /tmp/fluentd-test.log
</match>