Sobre o projeto

BitCurrents Log Analyzer é uma ferramenta de análise em tempo real de logs do Nginx, construída como uma aplicação web de página única com backend Python/Flask e frontend JavaScript dinâmico. Transforma logs brutos de acesso e erro do Nginx em painéis interativos focados em inteligência de segurança, monitoramento de desempenho e visualização de dados. O aplicativo oferece três modos distintos de análise: **Modo Geral** — Fornece uma visão geral rápida do tráfego com cartões KPI (total de hits, IPs únicos, contagem de impostores e suspeitos), gráficos de distribuição de tráfego (humanos vs bots vs crawlers), tipos de dispositivo, sistemas operacionais e navegadores, códigos de status HTTP, países mais acessados e páginas mais visitadas. Inclui filtros para ocultar IPs ruidosos e alternar entre visualizações de IPs únicos e todos os hits. **Modo Segurança** — Permite caça proativa a ameaças com categorização dinâmica de ameaças (exposição de configuração, webshells, sondas WordPress) usando um arquivo `security_patterns.json` configurável. Apresenta visualizações direcionadas para as principais categorias de ataque e IPs atacantes, além de detecção automática de impostores de bots que flagam tráfego alegando ser crawlers legítimos, mas originado de faixas de IP não verificadas. **Modo Erro** — Diagnostica problemas do servidor analisando inteligentemente mensagens comuns do log `error.log` do Nginx (ex: "Backend Inacessível", "Índice Proibido"). Visualiza tipos e níveis de severidade de erros, com guia de solução de problemas integrado para erros comuns. O projeto utiliza a API IP2Location.io para geolocalização de alta fidelidade (país, cidade, dados de ISP) e detecção avançada de bots além da simples correspondência de strings User-Agent. Mantém um arquivo de cache de IPs para economizar créditos da API. ### Configuração e Uso Pré-requisitos incluem pyenv e Python 3.13.0. Clone o repositório, configure um ambiente virtual e instale dependências a partir de `requirements.txt`. Uma chave gratuita da API IP2Location deve ser configurada via arquivo `.env`. O backend executa com `python app.py`, e o frontend é aberto diretamente no navegador como arquivo local. O usuário aponta o aplicativo para seu diretório de logs, lista arquivos disponíveis, opcionalmente especifica caminhos para rastrear e clica em Analisar. ### Configuração do Nginx Para resultados ideais, o formato do log de acesso do Nginx deve incluir as variáveis `$http_referer` e `$http_user_agent`. Exemplo de configuração está disponível no README. Conceito por Ray Kooyenga (@deadflowers @rkooyenga). Criado para o Concurso de Programação Hackathon IP2Location 2025.