node.js+fluentdを使ってMongoLabのMongoDBでログを収集

Fluentdのインストールはこちらを参考に
nodeへの設定方法はこちらを参考にしました。

td-agent.conf

/etc/td-agent/td-agent.confは以下になりました。

<source>
  type forward
  port 24224
</source>
<match fluentd.mongo.**>
  type mongo

  database dbname
  collection logs

  host ds000000.mongolab.com
  port 99999

  user username
  password password

  flush_interval 10s
</match>

サンプルコード

var logger = require('fluent-logger');
logger.configure('fluentd.mongo', {host: 'localhost', port: 24224});

logger.emit('test', {message: 'hoge'});

出力結果

mongolabのブラウザから確認するとログが取得できてました。

{
    "_id": {
        "$oid": "51501392d3df673162000001"
    },
    "message": "hoge",
    "time": {
        "$date": "2013-03-25T09:06:20.163Z"
    }
}

別のInputプラグインを使用すれば他の言語でも簡単に組み込めそうです。