Edited at

fluentd WindowsブランチをRuby 2.1上で動かす

More than 3 years have passed since last update.


0. 前書き

ついにWindowsにもRuby(Installer)の 2.1 がやってまいりました!(ちょっと前ですけどね)

ということでfluentd Windows版もRuby 2.1で動かします!

といってもやることは基本こちらの投稿と変わりませんが、2点異なる点があります。

Windowsでfluentdを動かす

変更点のみ記述します。


1. Ruby 2.1のインストール

Windowsでfluentdを動かす の「1. Windows用Rubyの導入」ではRubyの2.1系を選びましょう。

ruby21.jpg


2015/01/13 追記

kiyotoさんよりOpenSSL POODLE関連によりgemコマンドが使えないという点についてコメント頂きました。ありがとうございます。以下引用します。


こちらですが、OpenSSL POODLE事件により、現在だとRubyInstallerで同梱されているgemコマンド (v2.2.2)が使えなくなっております。解決策としては、gemコマンドをv2.2.3に上げる必要がありますが、gemがrubygemsと通信できなくなっているため、gem update --systemが使えません。

具体的には、ビルドされたgemコマンドインストールスクリプトを使うことになります。詳細はこちら>

https://gist.github.com/luislavena/f064211759ee0f806c88




2. fluentd gemパッケージ

Windowsでfluentdを動かす の「1. Windows用Rubyの導入」の「4. ダウンロードファイルに含まれているgemパッケージを使ってインストール」では pkg\fluentd-0.10.46.gem をインストールしていますが、現時点(2014/12/08)のpkgフォルダには fluentd-0.10.46.win141021001.gem というパッケージが含まれています。こちらをインストールします。

gem install fluentd-0.10.46.win141021001.gem

やや変則的なパッケージング/バージョニングですが、事情もあるようです。まぁ大目にみましょう。


3. その他

Windows上のRuby 2.1 ではコマンドプロンプトに対するシグナルの出方?が今までと違うみたいです。上記のfluentd Windows版ではその辺りの対応とバグ修正がおこなわれています。

以前のパッケージを利用するとfluentdの終了時に終了できず、CPUの使用率が異常にあがる状況が発生します。

また、その他Windows操作に関わるライブラリが自前ではなくdjberg96さんのものに、ごそっと入れ替わっており、コードの可読性とエラーのハンドリングの妥当性が向上しています。気になる人は注意しましょう。


2015/03/16 追記

@nidcodeさんより頂きました。ありがとうございます。

上記手順でfluentdの導入自体は完了しますが、実行時にmsgpackのLoadErrorがおきることがあります。この場合以下の手順で回避可能です。


gem uninstall msgpack

gem install msgpack --platform=ruby


本件、msgpackの中の人@nahiさんより以下のコメントをもらっていますので、参考にしてください。

https://github.com/msgpack/msgpack-ruby/issues/38


おわり。