fluentd
の話題をよく聞くような気がしたのでcentosにインストールしてみました。
まずは準備です。
vi /etc/security/limits.conf
に以下を追加します。
---------------
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
---------------
追加したら
reboot
再起動後
ulimit -n
として
65535
となることを確認します。
そして
vi /etc/sysctl.conf
以下を追加します。
---------------
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
---------------
そして設定を反映させます。
sysctl -w
fluentdをインストールします。
インストールの仕方にはいくつかあるのですが、以下の手段でインストールします。
curl -L http://toolbelt.treasuredata.com/sh/install-redhat.sh | sh
これでfluentdがtd-agentという名前でインストールされます。
fluentdの起動は以下のとおりです。
/etc/init.d/td-agent start
設定ファイルは以下になります。
/etc/td-agent/td-agent.conf
インストールされて正しく動くことを確認です。
curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
以下を実行して上記のjsonの内容が出力されていることを確認します。
cat /var/log/td-agent/td-agent.log
fluentdがインストールできたので、rubyからデータを投げて見ます。
rubyからデータを投げるためにfluent-loggerを利用してみます。
他にもいくつかgemがありそうな気配ではあります。
まずはインストール
gem install fluent-logger
データを投げるプログラムを作ります。
vi test.rb
require 'fluent-logger' log = Fluent::Logger::FluentLogger.new(nil, :host=>'localhost', :port=>24224) unless log.post("debug.aaaa", {"agent"=>"foo","bbbb"=>"cccc"}) p log.last_error # You can get last error object via last_error method end
ruby test.rb
を実行して、以下に投げたjsonデータが出てきていることを確認します。
cat /var/log/td-agent/td-agent.log
0 件のコメント:
コメントを投稿