試しに動かして見たのでメモ
riakのインストール
riakのインストールは前回の記事で。
Ubuntuにriakインストールしたメモ
fluentのインストール
fluentはgemからインストールします。
$ sudo gem install fluentd
fluentのriakプラグインをインストール
$ sudo gem install fluent-plugin-riak
fluentがログ保存先にriakを使うように設定
まだ作ってないなら設定ファイル生成
$ sudo fluentd --setup
githubのREADME.mdを参考にして、riakを使うように設定ファイルを編集
/etc/fluent/fluent.conf
<match hoge_app.**>
type riak
buffer_type memory
flush_interval 10s
retry_limit 5
retry_wait 1s
buffer_chunk_limit 256m
buffer_queue_limit 8096
# pb port
nodes 127.0.0.1:8087
</match>
nodesは自分の環境のRiakのホストとポートに。複数設定する場合はスペースで区切るようです。
fluent起動
$ /usr/local/bin/fluentd
試しにログを保存してみる
試しにやるならfluent-catで試せるようです。
$ echo "{\"name\": \"shin\", \"age\":37}" | fluent-cat hoge_app.debug
Rubyからログを保存してみる
github にやり方が書いてあります。
$ sudo gem install fluent-logger
require 'fluent-logger'
log = Fluent::Logger::FluentLogger.new(nil, :host=>'localhost', :port=>24224)
log.post("myapp.access", {"agent"=>"foo"})
保存の確認
riakからキーのリストを取得してみます。
$ curl --insecure https://localhost:8098/buckets/fluentlog/keys?keys=true
キーは "yyyy-mm-dd-uuid" のようなフォーマットになっていました。
{"keys":["2013-02-13-c58a2fdf-04a0-41ff-8080-e25927c07c4d",
"2013-02-13-f2cc72df-fce4-4f47-87c0-81090c021f3d","2013-02-13-
de5b48ea-fb28-4022-9840-87e0953452e7",
....
キーから値を取得してみる
$ curl --insecure https://localhost:8098/buckets/fluentlog/keys/2013-02-13-f2cc72df-fce4-4f47-87c0-83090a023f3d
ひとつのキーに対して、複数のログがリストで保存されていました。
0.0.1の時はキーがTime.now.to_iしたものでしたが、0.0.2からは"yyyy-mm-dd-uid"フォーマットの文字列に変わりました。
まだしばらくは大きな仕様変更があるかもしれません。