職場では、分散アプリケーションを構築しています (LAN 上の複数のマシンにまたがる可能性があり、後で WAN + VPN 上の複数の大陸にまたがる可能性があります)。ログ ファイルを各マシンのローカルに置きたくない (ディスクがいっぱいになり、まとめて表示できない) ため、ネットワーク経由でログを集中化する必要があります。ほとんどのログは重要ではないため、UDP は問題ありませんが、一部は損失を被る重要なアラートであり、確実に配信する必要があり、TCP を意味します。ロギング プロトコルがおしゃべりすぎるとネットワークが混雑したり、アプリが応答しない場合にアプリがクロールにドラッグされたりするのではないかと心配しています。
私が検討したいくつかの可能性は次のとおりです。
- syslog (完璧に思えますが、私の上司はこれに反対しているので、選択できない可能性があります)。
- facebook からのスクライブ(ただし、すべてのマシンにサーバーがあると少し重いようです。すべてのログ メッセージに超信頼性が必要なわけではありません)。
- さまざまなレベルのトランザクション安全性に合わせて調整された複数のキューを持つことができるrabbitmqのようなメッセージ キューを使用します。
- 最悪の場合、自分でゼロから書くこともできます。
他の提案はありますか?どのような集中ログ ソリューションを使用しましたか? また、それらはどの程度うまく機能しましたか?
編集:ストアアンドフォワード設計により、実行中のアプリがネットワーク遅延から切り離されるため、スクライブに傾倒していました。しかし、それをインストールするのに苦労した後、(1) バイナリパッケージとして利用できないことを発見しました. そして最悪の場合、正しくコンパイルすることさえできません。これは、オープン ソースであっても、リリース品質のコードではありません。