[2012-11-11-1] で Solaris 11.1 で fluentd を動かせたので,メモ.
#osoljp に spec ファイルをコミットしてあるので,
SFEruby-*.spec をビルドして runtime/ruby-19 と library/ruby-19/* を
インストール.
適当に PATH の通っている場所にリンクをはる
sudo ln -s /usr/ruby/1.9/bin/ruby /usr/bin/ruby19
sudo ln -s /usr/ruby/1.9/lib/ruby/gems/1.9.1/gems/fluentd-0.10.28/bin/fluent* /usr/bin/
これはパッケージ側でやっておいた方がいいので,
そのうち修正する.
セットアップ
ruby19 /usr/bin/fluentd -s ~/tmp/fluent
fluentd の shebang が
#!/usr/bin/env ruby
なので,ruby19 を指定している.
ここもパッケージ作る際に,書き換えておいた方がよい.
とりあえず,log 収集用のコンフィグと
apache のアクセスログを読むコンフィグを用意する.
~/tmp/fluent/log_server.conf
<source>
type forward
</source>
<match apache.access>
type file
path /home/fumi/tmp/fluent/logs/access_log
</match>
~/tmp/fluent/web_server.conf
<source>
type tail
format apache
path /var/apache2/2.2/logs/access_log
pos_file /tmp/web_server.pos
tag apache.access
</source>
<match apache.access>
type forward
<server>
host 127.0.0.1
</server>
</match>
ログ収集側の起動
sudo LIBEV_FLAGS=3 ruby19 /usr/bin/fluentd -v -c ~/tmp/fluent/log_server.conf
apache のログを読む方の起動
sudo LIBEV_FLAGS=3 ruby19 /usr/bin/fluentd -v -c ~/tmp/fluent/web_server.conf
環境変数 LIBEV_FLAGS=3 を指定しないと,
以下のようなログがでる
(libev) port_getn (see http://bugs.opensolaris.org/view_bug.do?bug_id=6268715, try LIBEV_FLAGS=3 env variable): Timer expired
ちゃんと動作すれば,
~/tmp/fluent/logs 以下にログが書き出される.
あとは,SMF マニフェストを用意して,
fluent-plugin のパッケージを作りまくればよさげ.