このプロジェクトについて

BitCurrents Log AnalyzerはPython/Flaskバックエンドと動的JavaScriptフロントエンドを備えたシングルページWebアプリケーションとして構築されたリアルタイムNginxログ分析ツールです。生のNginxアクセスログおよびエラーログを、セキュリティインテリジェンス、パフォーマンスモニタリング、データ可視化に特化したインタラクティブダッシュボードに変換します。 アプリケーションは3つの分析モードを提供します: **General Mode** — KPIカード(総ヒット数、ユニークIP数、偽装ボットおよび疑わしいアクセス数)、トラフィック内訳(人間 vs ボット vs クローラー)のチャート、デバイスタイプ、OSおよびブラウザ分布、HTTPステータスコード、主要国別、アクセス頻度の高いページを一目で確認できます。ノイズの多いIPを非表示にするフィルタリング機能や、ユニークIP表示と全ヒット表示の切り替えが可能です。 **Security Mode** — 構成可能な`security_patterns.json`を使用した動的な脅威分類(設定ファイル露出、Webシェル、WordPressスキャンなど)で能動的な脅威検知を実現します。主要な攻撃カテゴリおよび攻撃元IPのターゲット可視化に加え、正当なクローラーを装ったが検証済みIP範囲外からのアクセスを自動検知する偽装ボット検知機能を搭載しています。 **Error Mode** — Nginx `error.log`の一般的なメッセージ(例:"Backend Unreachable"、"Index Forbidden")をインテリジェントに解析し、サーバー問題を診断します。エラータイプと重大度レベルを可視化し、一般的なエラーに対するアプリ内トラブルシューティングガイドを提供します。 本プロジェクトはIP2Location.io APIを活用し、高精度のジオロケーション(国・都市・ISPデータ)とユーザーエージェント文字列マッチングを超えた高度なボット検出を実現しています。APIクレジット節約のためIPキャッシュファイルを維持します。 ### セットアップと使用方法 前提条件としてpyenvおよびPython 3.13.0が必要です。リポジトリをクローンし、仮想環境を構築して`requirements.txt`から依存関係をインストールします。`.env`ファイル経由で無料のIP2Location APIキーを設定する必要があります。バックエンドは`python app.py`で起動し、フロントエンドはローカルファイルとして直接ブラウザで開きます。ユーザーはログディレクトリをアプリに指定し、利用可能なファイル一覧を表示、追跡するパスを任意で指定して「Analyze」をクリックします。 ### Nginx設定 最適な結果を得るため、Nginxアクセスログフォーマットには`$http_referer`および`$http_user_agent`変数を含める必要があります。サンプル設定はREADMEに記載されています。 Concept by Ray Kooyenga (@deadflowers @rkooyenga). Created for the IP2Location 2025 Hackathon Programming Contest.