私は、それぞれが特定のタスクを実行する 7 つのサーバーに分散されたモバイル サービスを使用しています。それらから情報をログに記録し、後でそれらからビジネス インテリジェンスを引き出したいと考えています。Flume に丸めました。情報収集にどう活かす?私のシステムは PHP で書かれています。Flume は PHP で動作しますか?
2 に答える
それはあなたのニーズとあなたのサーバー環境がどのようなものかによります。私が言えることの1つは、FlumeにはPHPとの直接の統合がないということです。ただし、これを回避する方法は他にもあります。
rsyslogとflumeの組み合わせを実行しているAmazonEC2でホストされているサーバーを実行しています。私のセットアップでは、Linuxサーバーで実行されているnginxを実行しているサーバーからWebログを収集します。nginxサーバーは、Web要求ログをsyslogメッセージとしてrsyslogに送信します。rsyslogは、中央のFlumeコレクターにtcp要求を行います。水路コレクターは、syslogTcpシンクを使用してこれらのメッセージをリッスンします。水路コレクターはメッセージをAmazonS3に転送します。次に、後でAmazonEMRを使用してログファイルを分析します。
あなたの状況では、PHPはsyslogに書き込むように設定することもできます(http://php.net/manual/en/function.syslog.php); したがって、同様の設定を行い、syslogにログを中央のFlumeコレクターノードに転送させることができます。
syslogメッセージに依存したくない場合は、サーバー上でFlumeクライアントを実行することもできます。flumeクライアントは、ローカルログファイルをflumeのテールシンクでテールするように構成できます。または、指定されたディレクトリ内のすべてのログファイルをflumeのtailDirシンクでテールし、それらをFlumeコレクターにストリーミングすることができます。
flumeの優れた利点は、重要なメッセージの宛先に到達する可能性が非常に高いメッセージを配信するように構成できる一方で、他のメッセージはより低い配信要件で送信できることです。
水路ユーザーガイドは、より詳細な情報を入手するのに最適な場所です:http: //flume.apache.org/FlumeUserGuide.html
もう1つの良い場所は、freenodeにジャンプして、#flumeチャネルに参加することです。
Flume エージェントは、Windows や Linux など、さまざまな OS 上に配置できます。
つまり、これらのオペレーティング システムのいずれかでホストしている場合、flume を使用して複数のボックスからログを集約できない理由はありません。