ようへいの日々精進XP

よかろうもん

Debian squeeze に"最新の"MongoDB をインストールして fluentd から使う

きっかけ

  • apt-get でインストールした MongoDB が fluent-plugin-mongo に非対応っぽい
  • 最新のバージョンをインストールしてみることにした

apt-get でインストールしたバージョン

f:id:inokara:20130831061822p:plain


最新のバージョンをインストール

手順

ここを参考にしてインストールを行う。

GPG キーの登録

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

/etc/apt/sources.list.d/mongodb.list

echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

古いバージョンに敬意を込めてアンインストール

sudo aptitude purge mongodb-dev
sudo aptitude purge mongodb-clients
sudo aptitude purge mongodb-server 

apt-get update を行う

apt-get update

インストール可能な MongoDB のバージョンを確認

f:id:inokara:20130831063659p:plain

インストール

sudo apt-get install mongodb-10gen

インストール後の確認

f:id:inokara:20130831063947p:plain

大幅にバージョンアップ!


fluend から利用する

fluent-plugin-mongo をインストール

/usr/lib/fluent/ruby/bin/gem install fluent-plugin-mongo --no-ri --no-rdoc -V

古い MongoDB のバージョンだと...

以下のようなエラーが出て利用出来ない。

2013-08-31 06:10:24 +0900 [info]: adding match pattern="apache.**" type="mongo"
2013-08-31 06:10:24 +0900 [fatal]: Operation failed. Probably, 'mongod' needs an authentication: Database command 'buildInfo' failed: (errmsg: 'no such cmd'; bad cmd: '{"buil
dInfo"=>1}'; ok: '0.0').

データベースとコレクションの用意

mongo
> use hogehoge
> db.huga.save({a:1})

とりあえず、コレクション huga にダミーデータを突っ込んでコレクションを用意した。この方法が正しいかは確認が必要。

td-agent.conf

テスト用途なのでシンプルに...

td-agent を再起動

sudo /etc/init.d/td-agent configtest
sudo /etc/init.d/td-agent restart

0.10.38 から利用出来るようになった configtest を使ってみて、再起動。


おお、fluentd と MongoDB のコラボ!

適当に ab でアクセスしてみる

ab -n 10 -c 10 http://xxx.xxx.xxx.xxx/

MongoDB に記録されているレコードを確認する

MongoDB にログインして db.huga.find(); で確認すると...

f:id:inokara:20130831070231p:plain

登録されている。redis のレコード一覧(キー一覧)とはちょっとイメージが違う。以下は redis-server に登録されているレコード一覧。

f:id:inokara:20130831070604p:plain


ということで

  • MongoDB は初体験でした
  • パッと見は RDB っぽいなという印象