この記事では、主に PHP で実装されたログ収集システムを紹介します。これは、必要な友人に参考にしていただけるよう、共有します。制限 テクノロジースタックを拡張するというアイデアは、PHP を使用して実装されました。
実装プロセス中に注意が必要ないくつかの点が次のように記録されます。
1. アクティブな取得。 Flume などのアーキテクチャを使用する場合、各サーバーにソフトウェアをインストールする必要があります。そのため、コレクターがアクティブに取得する方法を使用します。
2. SSH 接続。各サーバーには SSH 接続権限が設定されており、PHP の ssh2 拡張機能を使用してサーバーのコンテンツにリモート接続します。
3. 各サーバーのログ ファイルは同じディレクトリ ルールに従って配置されます。
4 .CLI 操作は継続的に実行されるプログラムです。このとき使用される INI ファイルに問題があることに注意してください。
5. 、ネットワークの問題により、SSH 接続または検証が失敗し、遅延しています。もう一度お試しください。
6. 通常、当社の運用およびメンテナンスでは、毎日一定の時間にログの切り捨てと圧縮が行われます。読み取る必要があるファイルの種類: 圧縮と圧縮されていないログは個別に処理する必要があります。
7. ログ内のタイムスタンプは秒単位では不十分なので、ミリ秒単位で測定するために $msec を増やします。同じミリ秒以内、同じ IP ソース、同じ UA がリクエストと見なされます。
それ以外の場合は、最後に処理された位置から続行するために直接位置決め (fseek) することができます。
15 . 通常のルールを使用して、スペースと区切り文字に従って区別します。また、メモリのオーバーヘッドを節約するために、Iterator コルーチン モードを使用することもできます。
16 .ログの重み判定。IP と UA を事前に読み取ります。ログの保存には MYSQL を使用します。 MYSQL のログは 1 行ごとに非常に膨大になります。実行時間を無駄にするために、SSH 接続の失敗に加えて、それらをすべて一度に挿入することもできます。読み取り、分解が失敗し、この時点でメイン プログラムによって例外がスローされ、再度実行されます。
関連する推奨事項:
php ログ書き込み関数
phpはログ機能を実装します
以上がPHPで実装されたログ収集システムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。