環境: CentOS6.4
Documentを参照しながら進めていきます
fluentd Document
fluentdはgemを使ってインストールも出来るようですが今回はCentOSということもあり、RPMパッケージを使ってインストールしてみたいと思います。
Installing Fluentd Using rpm Package
Step0: Before Installation(まずやっておくこと)
Documentに従い、Before Installing fluentdを行う。
Set Up NTP(ntpサーバーをセットアップ)
参考サイト: http://centossrv.com/ntp.shtml
$ yum install -y ntp
NTP設定
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
↓
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
↓
# server 0.centos.pool.ntp.org
# server 1.centos.pool.ntp.org
# server 2.centos.pool.ntp.org
server ntp.nict.jp # 日本標準時を提供しているNTPサーバー
server ntp.jst.mfeed.ad.jp # 上記サーバーと直接同期しているNTPサーバー
サーバーのタイムゾーンを日本に設定
$ cp -p /usr/share/zoneinfo/Japan /etc/localtime
NTPサーバー起動時に大幅に時刻がずれているとNTPサーバーが起動できないので、いったん、手動で時刻を合わせる
$ ntpdate ntp.nict.jp
NTPサーバー起動
$ /etc/rc.d/init.d/ntpd start
$ chkconfig ntpd on
下記のようにサーバー名の左に*がついていれば同期がとれている証拠
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp-a3.nict.go. .NICT. 1 u 53 64 177 14.559 -221.38 134.998
+ntp2.jst.mfeed. 133.243.236.19 2 u 18 64 377 14.413 -240.87 154.688
Increase Max # of File Descriptors(File descriptorsの最大値をあげる)
File Descriptors: http://e-words.jp/w/E38395E382A1E382A4E383ABE38387E382A3E382B9E382AFE383AAE38397E382BF.html
現在のFile Descriptorsの最大値を確認
$ ulimit -n
1024
1024では宜しくないということなのでDocumentに従い上限をあげる
# 下記を追加
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
そしてサーバーを再起動
上限が上がったか確認
$ ulimit -n
65536
Optimize Network Kernel Parameters(Network Kernelパラメータの最適化)
sysctl.confファイルをいじることでLinuxはカーネルのチューニングができるようです
http://sourceforge.jp/magazine/08/09/12/0134255
Documentに従いパラメータを追加します
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
設定を反映
$ sysctl -w
Step1: Install from rpm Repository(RPMレポジトリからインストール)
install-redhat.shなるものを使うと自動でtd-agentをインストールしてくれるらしいのでやってみる
$ curl -L http://toolbelt.treasure-data.com/sh/install-redhat.sh | sh
td.repoとtd-agentパッケージがあるか確認
$ ls /etc/yum.repos.d/
td.repo
$ rpm -qa | grep td-agent
td-agent-1.1.17-0.x86_64
ある
Step2: Launch Daemon(デーモンを開始する)
Step1で/etc/init.d/td-agentスクリプトが作成されているのでそれを使う
$ sudo /etc/init.d/td-agent start
Starting td-agent: [ OK ]
start, stop, restart, statusコマンドが使えるそうな
ちなみにconfigファイルは下記ディレクトリ
/etc/td-agent/td-agent.conf
Step3: Post Sample Logs via HTTP(HTTP経由でサンプルログを出す)
デフォルトでログファイルは/var/log/td-agent/td-agent.logにはき出されるようになっています。
Documentに従ってcurlでPOSTリクエストを投げます
$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
ログが出てるか確認
$ tail -f /var/log/td-agent/td-agent.log
2013-10-14 17:56:49 +0000 debug.test: {"json":"message"}
出た
デフォルトの設定はポート8888に向けてJsonかMsgpackのパラメータを含ませたHTTPリクエストを投げるとログに記載されるようです
これでfluentdが使えるようになったのであとはconfigファイルをカスタマイズするだけです。
Next Stepsという形で各言語などのログを抽出する方法もDocumentに載っているので確認しましょう。