2

現在、ロギングからファイルへの移行から、NoSQLデータベースへのロギングへの移行を検討しています。私たちの会社の別のチームがHBaseを使い始めていますが、それは私たちがやりたいことにはかなり複雑に見えました。私はMongoDBを見てきましたが、いくつか提案があります。

現在、さまざまなアプリケーション用にファーム内に数百台のサーバーがあります。アプリケーションの1つから問題を聞いたときはいつでも、アプリopsからログを取得する長いプロセスと、問題を見つけるためにそれらすべてをふるいにかける長いプロセスがあります。すべてのログを中央の場所に移動し、その周りにWeb UIを構築して、ログに簡単にアクセスしてクエリを実行できるようにすることを検討しています。

アプリケーションログの保存とクエリに適したNoSQLデータベースはどれですか?

4

3 に答える 3

6

多くの企業がMongoDBを使用してアプリケーションログを保存しているのを見てきました。そのスキーマフリーネスは、スキーマが時々変更される傾向があるアプリケーションログに対して非常に柔軟です。また、上限付きコレクション機能は、古いデータを自動的に削除してデータをメモリに収めるために非常に便利です。

人々は通常のGroupingまたはMapReduceによってログを集約しますが、それほど速くはありません。特に、MongoDBのMapReduceは単一のスレッド内でのみ機能し、JavaScriptの実行オーバーヘッドは膨大です。新しい集約フレームワークは、この問題を解決する可能性があります。

ロギングにMongoDBを使用する場合、懸念されるのは、高い書き込みスループットによるロックの競合です。MongoDBの挿入はデフォルトでファイアアンドフォーゲットスタイルですが、多くのinsert()を呼び出すと、書き込みロックの競合が激しくなります。これは、アプリケーションのパフォーマンスに影響を与え、リーダーが保存されたログを集約/フィルタリングできなくなる可能性があります。

1つの解決策は、 FluentdLogstashFlumeなどのログコレクターフレームワークを使用することです。これらのデーモンは、すべてのアプリケーションノードで起動されることになっており、アプリプロセスからログを取得します。

ログをバッファリングし、MongoDB / PostgreSQLなどの他のシステムにデータを非同期的に書き込みます。書き込みはバッチで行われるため、アプリから直接書き込むよりもはるかに効率的です。このリンクは、PHPプログラムからFluentdにログを入れる方法を説明しています。

MongoDB+Fluentdに関するチュートリアルをいくつか紹介します。

MongoDBの問題は、データボリュームがメモリサイズを超えると速度が低下し始めることです。その時点で、ApacheHadoopCassandraなどの他のソリューションに切り替えることができます。上記の分散ログレイヤーがある場合は、成長するにつれて別のソリューションに切り替えることができます。このチュートリアルでは、Fluentdを使用してログをHDFSに保存する方法について説明します。

于 2012-11-17T06:21:08.673 に答える
1

応答が遅いが、このケースは次の場合に最適のようです。

Logstash:受信ログを処理するLogstashのサーバーコンポーネント

Elasticsearch:すべてのログを保存します

Kibana:ログを検索および視覚化するためのWebインターフェイス

Logstash Forwarderを使用して、ログをLogstashに送信できます。ログ転送エージェントとして機能します。さまざまな形式のログファイル、データベース、メッセージストアを監視し、ElasticsearchDBに送り出すことができます。その後、Kibanawebuiを使用してすべてを監視します。この目的でSQL/NoSQLデータベースを使用してカスタムソリューションを構築しないでください。

Splunkは、同様のアーキテクチャでそれを行うもう1つの商用ソリューションです。


超リアルタイムのパフォーマンスが必要な場合は、Kafkaベースのソリューションをご覧ください。


詳細: https ://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-and-visualize-logs-on-ubuntu-14-04

https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying

于 2017-01-18T20:54:56.857 に答える
0

Couchbase 2.0(現在はDeveloper Previewですが、まもなくベータ版になります)は、このための高性能オプションを提供します。ロギングの場合、非常に高速な書き込み速度が必要になり、ビューとビュークエリは読み取り/検索/クエリの柔軟性を提供します。Couchbase 2.0には、ElasticSearch統合による全文検索もあります。

それをチェックしてください:www.couchbase.com

于 2012-08-14T20:02:36.857 に答える