過去18か月で最先端技術が大幅に変化し、はるかに優れた代替案が存在するため、この受け入れられた回答を改訂することにしました。
新しい回答
MongoDBは、スケーラブルなロギングソリューションの標準以下の選択肢です。これには通常の理由があります(たとえば、負荷がかかった状態での書き込みパフォーマンス)。もう1つ提案したいのは、ロギングソリューションの単一のユースケースのみを解決するということです。
強力なロギングソリューションは、少なくとも次の段階をカバーする必要があります。
- コレクション
- 輸送
- 処理
- ストレージ
- 検索
- 視覚化
選択肢としてのMongoDBは、ストレージのユースケースのみを解決します(多少不十分ですが)。完全なチェーンが分析されると、より適切な解決策があります。
@KazukiOhtaはいくつかのオプションについて言及しています。最近の私の好みのエンドツーエンドソリューションには、次のものが含まれます。
- Logstash-収集と輸送の転送者
- Logstash&Riemann for Processing
- ストレージとクエリのElasticSearch
- 可視化のためのKibana3
ログデータストレージのためのElasticSearchの基本的な使用法は、ロギングと検索のユースケースに現在の最高のNoSQLソリューションを使用します。 Logstash-Forwarder / Logstash / ElasticSearch / Kibana3がElasticSearchの傘下にあるという事実は、さらに説得力のある議論になります。
LogstashはGraphiteプロキシとしても機能できるため、(ログだけでなく)メトリックの収集と分析に関連する問題に対して非常に類似したチェーンを構築できます。
古い回答
MongoDBの上限付きコレクションは非常に人気があり、ロギングに適していますが、「スキーマレス」であるという追加のボーナスがあります。これは通常、ロギングにセマンティックに適合します。多くの場合、私たちはプロジェクトに何をうまくログインさせたいか、または本番環境で特定の問題が見つかった後でしかわかりません。このような場合、リレーショナルデータベースや厳密なスキーマを変更するのは難しい傾向があり、それらを「柔軟」にしようとすると、単に「遅く」なり、使用や理解が困難になる傾向があります。
しかし、暗闇の中でログを管理し、レーザーを使用して宇宙から来たように見せたい場合は、インフラストラクチャ全体の一部としてMongoDBを使用し、さらに多くの機能を提供するGraylog2が常にあります。一般的な拡張可能な形式、専用のログ収集サーバー、分散アーキテクチャ、ファンキーなUI。