À propos du projet
BitCurrents Log Analyzer est un outil d'analyse en temps réel des journaux Nginx, conçu comme une application web monopage avec backend Python/Flask et frontend JavaScript dynamique. Il convertit les journaux d'accès et d'erreurs Nginx bruts en tableaux de bord interactifs axés sur l'intelligence de sécurité, la surveillance des performances et la visualisation des données.
L'application propose trois modes d'analyse distincts :
**Mode Général** — Offre une vue d'ensemble du trafic avec des cartes KPI (hits totaux, IPs uniques, comptages d'usurpateurs et suspects), des graphiques de répartition (humains vs bots vs crawlers), types d'appareils, systèmes d'exploitation et navigateurs, codes statut HTTP, pays les plus visités et pages les plus consultées. Inclut des filtres pour masquer les IPs bruyantes et basculer entre vues IPs uniques et hits totaux.
**Mode Sécurité** — Permet la détection proactive de menaces avec catégorisation dynamique (exposition de config, webshells, sondes WordPress) via un fichier `security_patterns.json` configurable. Présente des visualisations ciblées pour catégories d'attaques et IPs attaquantes, avec détection automatique des usurpateurs de bots signalant le trafic prétendant être des crawlers légitimes mais provenant de plages IP non vérifiées.
**Mode Erreurs** — Diagnostique les problèmes serveur en analysant intelligemment les messages courants de `error.log` Nginx (ex. "Backend Injoignable", "Index Interdit"). Visualise types et niveaux de gravité des erreurs, avec guide de dépannage intégré pour problèmes fréquents.
Le projet utilise l'API IP2Location.io pour une géolocalisation précise (pays, ville, données ISP) et une détection avancée de bots allant au-delà de la simple correspondance des user-agent. Il conserve un fichier cache d'IPs pour économiser les crédits API.
### Configuration et Utilisation
Prérequis : pyenv et Python 3.13.0. Cloner le dépôt, configurer un environnement virtuel et installer les dépendances depuis `requirements.txt`. Une clé API IP2Location gratuite doit être configurée via un fichier `.env`. Le backend s'exécute avec `python app.py`, le frontend s'ouvre directement dans un navigateur comme fichier local. L'utilisateur indique le répertoire des journaux, liste les fichiers disponibles, spécifie éventuellement les chemins à suivre, puis clique sur Analyser.
### Configuration Nginx
Pour des résultats optimaux, le format du journal d'accès Nginx doit inclure les variables `$http_referer` et `$http_user_agent`. Une configuration type est fournie dans le README.
Concept de Ray Kooyenga (@deadflowers @rkooyenga). Créé pour le concours de programmation IP2Location 2025 Hackathon.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.