読者です 読者をやめる 読者になる 読者になる

fluentdでfluent-plugin-mongo使おうとしたらちょっとはまった

rubyなれてる人ならはまらないんだろうけど、fluentdでfluent-plugin-mongoを入れてつかおうかなぁと思って

gem intall fluent-plugin-mongo

して、fluentdを再起動したら下記のように言われるわけです。

**Notice: C extension not loaded. This is required for optimum MongoDB Ruby driver performance.
  You can install the extension as follows:
  gem install bson_ext

  If you continue to receive this message after installing, make sure that the
  bson_ext gem is in your load path and that the bson_ext and mongo gems are of the same version.

当然

gem install bson_ext

こうするじゃないですか。

でも再起動すると全く同じことを言われる。

あ、よく読んでなかった。mongoとbson_ext同じバージョンいれればいいのか。
っておもって

gem install mongo -v=1.8.1
gem install bson_ext -v=1.8.1

ってしたんですが、相変わらず出続ける。。。。

gem list

すると

bson_ext (1.6.4 1.8.1)
mongo(1.6.4 1.8.1)

となってるから問題ないよなぁとか思ってて頭ひねってたんですが、ひょっとしたらと思って

gem uninstall bson_ext -v=x.x.x
gem uninstall mongo -v=x.x.x

とバージョン一個だけに絞ったらうまくロードされました。

このへんの仕組みあとでちゃんと追っとこう。。。orz

https://github.com/fluent/fluent-plugin-mongo