集中型ネットワークロギング-syslogと代替[閉まっている]
-
05-07-2019 - |
質問
職場では、分散アプリケーションを構築しています(おそらくLAN上の複数のマシンにまたがって、おそらくWAN + VPNの複数の大陸にまたがって)。各マシンにローカルなログファイル(ディスクがいっぱいになり、集約して表示することはできません)が望ましくないため、ネットワーク経由でログを集中管理する必要があります。ほとんどのログは重要ではないため、UDPはそれらにとっては問題ありませんが、一部のログはお金を失う重要なアラートであり、TCPを暗示して確実に配信する必要があります。ロギングプロトコルのチャットが多すぎる場合はネットワークが混雑すること、または応答しない場合はアプリをクロールにドラッグすることが心配です。
検討した可能性は次のとおりです。
- syslog (完璧に思えますが、上司がこれに反対しているため、選択できない可能性があります)。 facebookからの
- scribe (ただし、すべてのログメッセージに超信頼性が必要なわけではありません。
- トランザクションの安全性のさまざまなレベルに合わせて複数のキューを調整できる rabbitmq などのメッセージキューを使用します。
- 最悪の場合、自分で最初から書くことができます。
他に提案はありますか?どの集中ログソリューションを使用しましたか?また、どの程度うまく機能しましたか?
編集:ストアアンドフォワード設計により、実行中のアプリがネットワーク遅延から切り離されるため、筆記者に傾倒していました。しかし、それをインストールするのに苦労した後、私は(1)バイナリパッケージとして利用できないことを発見しました-今日では許されません-そして(2)それはバイナリパッケージとしても利用できないライブラリ(thrift)に密接に依存しています!そして最悪なのは、適切にコンパイルさえできないことです。オープンソースであっても、リリース品質のコードではありません。
解決
あなたのような分散アプリケーションシナリオのログに ZeroMQ を使用しました。非常に信頼性が高く、非常に高速です。 Spread による実装があまり成功しなかった後、ZeroMQに移行しました。このセットアップでは、1台のZeroMQサーバーで、中程度から高いビジー状態の分散アプリケーションまで、70を超えるさまざまなログを処理できます。 LANおよびインターネット経由でデータを受信します。
キューサーバーの詳細な比較が必要な場合は、 Second Life wikiのこのページをご覧ください。
お役に立てばと思います!
他のヒント
最近、いくつかの選択肢があります。特に、Scribeはもうメンテナンスされていません。 FacebookはCaligraphusと呼ばれる後継機を開発しましたが、オープンソースではありません。選択肢のリストを次に示します。
- syslog:すべてのLinuxディストリビューションにインストールされます
- Fluentd :ログをJSONストリームとして処理するC + Rubyベースの軽量ロガー
- Flume :Clouderaで開発され、Javaで記述されており、Hadoopエコシステムとうまく機能します
- Apache Kafka :LinkedInで開発された、プルベースのアーキテクチャ
- Scribe:Facebookによってオープンソース化されましたが、現在は維持されていません
免責事項:私はFluentdプロジェクトのコミッターです。
Syslogは、インフラストラクチャログ(システムレベルなど)のみに注目する場合に適しています。 KIWI Syslog Server は良いと聞きましたが、自分では試しませんでした。一方、アプリケーション関連のものをログに記録する場合は、おそらくsyslogがこれに最適なオプションではありません。 Apacheログサービス(log4j、log4xxxおよびその他)を使用する場合、 logFaces が適切です特に複数のアプリケーションを1か所に集約するために構築されたソリューション。 TCPまたはUDP接続の両方で動作し、適切なログビューアーとデータベース統合を備えています。
開示:私はこの製品の著者です。
他の例も素晴らしいかもしれませんが、 Syslog-NG 。非常に柔軟で構成可能です。ただし、簡単に取り出して、便利なことをすばやく実行できます。
SNMPアラートの使用を検討することもできます。
このスレッドで推奨されるすべての代替案をレビューしました。 pythonで動く何かを探しました。さらにGoogleを検索し、歩ry https://getsentry.com/welcome/ を発見しました。これに基づいたビジネスがあるので、商業的に信頼できるはずです。