Sobre el proyecto

BitCurrents Log Analyzer es una herramienta de análisis en tiempo real de registros Nginx, construida como una aplicación web de una sola página con backend Python/Flask y frontend JavaScript dinámico. Transforma registros brutos de acceso y error de Nginx en paneles interactivos enfocados en inteligencia de seguridad, monitoreo de rendimiento y visualización de datos. La aplicación ofrece tres modos de análisis distintos: **Modo General** — Proporciona una visión general del tráfico con tarjetas KPI (total de accesos, IPs únicas, conteos de impersonadores y sospechosos), gráficos para desglose del tráfico (humanos vs bots vs crawlers), tipos de dispositivo, distribución de SO y navegador, códigos de estado HTTP, países principales y páginas más accedidas. Incluye filtros para ocultar IPs ruidosas y alternar entre vistas de IPs únicas y todos los accesos. **Modo Seguridad** — Permite la búsqueda proactiva de amenazas con categorización dinámica de amenazas (exposición de configuración, webshells, sondeos WordPress) usando un archivo `security_patterns.json` configurable. Presenta visualizaciones dirigidas para las categorías de ataque y IPs atacantes principales, además de detección automática de impersonadores de bots que marcan tráfico que afirma ser crawlers legítimos pero proviene de rangos IP no verificados. **Modo Error** — Diagnostica problemas del servidor analizando inteligentemente mensajes comunes del registro `error.log` de Nginx (por ejemplo, "Backend Inaccesible", "Índice Prohibido"). Visualiza tipos y niveles de severidad de errores, con una guía de solución de problemas integrada para errores comunes. El proyecto utiliza la API IP2Location.io para geolocalización de alta fidelidad (país, ciudad, datos de ISP) y detección avanzada de bots más allá de coincidencias simples de cadenas user-agent. Mantiene un archivo de caché de IPs para conservar créditos de la API. ### Configuración y Uso Los requisitos previos incluyen pyenv y Python 3.13.0. Clone el repositorio, configure un entorno virtual e instale dependencias desde `requirements.txt`. Se debe configurar una clave API gratuita de IP2Location mediante un archivo `.env`. El backend se ejecuta con `python app.py`, y el frontend se abre directamente en un navegador como archivo local. Los usuarios apuntan la aplicación a su directorio de registros, listan archivos disponibles, especifican opcionalmente rutas a rastrear y hacen clic en Analizar. ### Configuración de Nginx Para obtener resultados óptimos, el formato del registro de acceso de Nginx debe incluir las variables `$http_referer` y `$http_user_agent`. Se proporciona una configuración de muestra en el README. Concepto por Ray Kooyenga (@deadflowers @rkooyenga). Creado para el Concurso de Programación Hackathon IP2Location 2025.