rubyで出力したログをfluentdで待ち受ける手順を確認します。

[root@node01 init.d]# vi /etc/td-agent/td-agent.conf



<source>
        type forward
        port 24225
</source>
<match fluentd.test.**>
        type stdout
</match>


設定ファイルtd-agent.confを編集します。
<source>~</source>の部分は入力の部分で例では24225ポートで入力を待ち受けています。
<match>~</match>の部分は出力の部分で例ではfluentd.test.**にマッチするログを標準入出力に出力します。

[root@node01 init.d]# service td-agent restart
Shutting down td-agent:                                    [  OK  ]
Starting td-agent:                                         [  OK  ]


設定ファイルを編集した後はサービスを再起動します。

[root@node01 fluent]# gem i fluent-logger
Fetching: fluent-logger-0.5.0.gem (100%)
Successfully installed fluent-logger-0.5.0
Parsing documentation for fluent-logger-0.5.0
Installing ri documentation for fluent-logger-0.5.0
Done installing documentation for fluent-logger after 0 seconds
1 gem installed


rubyでfluentdへの入力を扱うにはfluent-loggerというパッケージが必要なようです。
gemコマンドでインストールします。

[root@node01 fluent]# vi test.rb
require 'fluent-logger'
Fluent::Logger::FluentLogger.open(nil, :host=>'localhost', :port=>24225)
Fluent::Logger.post("fluentd.test.follow", {"from"=>"userA", "to"=>"userB"})


準備が整ったので早速、rubyスクリプトを作成します。

[root@node01 fluent]# ruby test.rb
[root@node01 fluent]# less /var/log/td-agent/td-agent.log
2015-10-25 01:08:49 +0900 fluentd.test.follow: {"from":"userA","to":"userB"}

作成したrubyスクリプトを実行します。
td-agent.logにログが出力されているのが確認できました。