以下の問題の解決策を改善するための指針を探しています。私は Unix ツールチェーンを使用していますが、実装よりも一般的なアプローチを求めています。
どうぞ:
Web サイトへのすべてのアクセスをログに記録し、ビジネス ユーザーがほぼリアルタイムでレポートできるようにする必要があります (5 分の遅延は許容されます)。レポートは、ユーザーまたは期間、またはその両方の組み合わせによってフィルター処理されます。
匿名ユーザーのアクセスもログに記録され、匿名ユーザーがログインすると、ログイン前の情報が登録ユーザーに関連付けられる必要があります。
すべてのページ アクセス (GET または POST) と、すべてのパラメーターとタイムスタンプをログに記録したいと考えています。
レポートの要件は次のとおりです。
そして、応答は次のようになります。
- 11:15:23 に彼はホームページに来ました。
- 11:15:49 に、彼は私たちについてのページに行きました。
- 11:16:23 に、彼はログイン ページに移動しました。
- 11:16:34 に、彼はユーザー名「hacked」でログインを試みました。
- 11:16:38 にログイン要求が失敗しました - ユーザー名/パスワードが正しくありません
- 11:16:45 に、彼はユーザー名「myuser」でログインしました
- 11:17:12 に彼は製品ページに行きました。
解決策は、セッション ID を主キーとして使用し、アカウント ID と要求データをデータベースに挿入することです。
DB が停滞しないように、その間にメッセージ キューを挿入し、データベースへの書き込みを遅らせます。
ただし、データベース内のデータ量が増えると、レポート作成がすぐに遅くなる可能性があります。
woopraのようなソリューションは知っていますが、訪問者データを内部で保持したいと考えています。また、データへの社内の役割ベースのアクセスを使用した社内レポートのアイデアも気に入っています。
編集:過去にこのようなことをどのように行いましたか、またはオプションを完全に選択できるとしたら、どのように取り組みますか?