Об этом проекте
BitCurrents Log Analyzer — это инструмент для анализа логов Nginx в реальном времени, реализованный как одностраничное веб-приложение с бэкендом на Python/Flask и динамическим JavaScript-фронтом. Он преобразует сырые логи доступа и ошибок Nginx в интерактивные дашборды, ориентированные на безопасность, мониторинг производительности и визуализацию данных.
Приложение предлагает три отдельных режима анализа:
**Общий режим** — предоставляет сводку по трафику с карточками KPI (общее количество запросов, уникальные IP, подозрительные и имитаторы ботов), графики распределения трафика (люди vs боты vs краулеры), типы устройств, ОС и браузеры, HTTP-коды ответов, топ-страны и наиболее посещаемые страницы. Включает фильтрацию шумных IP и переключение между видами «уникальные IP» и «все запросы».
**Режим безопасности** — позволяет активно выявлять угрозы с помощью динамической категоризации угроз (раскрытие конфигурации, веб-шеллы, сканирование WordPress) через настраиваемый файл `security_patterns.json`. Включает целевые визуализации для топ-категорий атак и IP-адресов атакующих, а также автоматическое обнаружение имитаторов ботов — трафика, выдающего себя за легитимных краулеров, но исходящего из непроверенных диапазонов IP.
**Режим ошибок** — диагностирует проблемы сервера путем интеллектуального разбора распространённых сообщений из `error.log` Nginx (например, "Backend Unreachable", "Index Forbidden"). Визуализирует типы и уровни серьёзности ошибок, а также содержит встроенный гайд по устранению распространённых проблем.
Проект использует API IP2Location.io для точной геолокации (страна, город, провайдер) и продвинутого обнаружения ботов, выходящего за рамки простого сравнения строк user-agent. Поддерживает кэширование IP для экономии кредитов API.
### Установка и использование
Требования: pyenv и Python 3.13.0. Клонируйте репозиторий, настройте виртуальное окружение и установите зависимости из `requirements.txt`. Бесплатный ключ API IP2Location должен быть настроен через файл `.env`. Бэкенд запускается командой `python app.py`, а фронтенд открывается в браузере как локальный файл. Пользователь указывает путь к директории с логами, выбирает доступные файлы, опционально задаёт пути для отслеживания и нажимает Анализировать.
### Конфигурация Nginx
Для оптимальных результатов формат лога доступа Nginx должен включать переменные `$http_referer` и `$http_user_agent`. Пример конфигурации приведён в README.
Концепция от Рэя Куенгена (@deadflowers @rkooyenga). Создано для хакатона IP2Location 2025.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.