Об этом проекте

ngtop — это CLI-утилита на языке Go для анализа логов доступа nginx. Она парсит записи логов в базу данных SQLite и позволяет пользователям выполнять фильтруемые запросы для получения статистики запросов. ### Установка Загрузите готовый бинарный файл из раздела releases или установите через Go: `go install github.com/facundoolano/ngtop@latest`. ### Принцип работы При каждом запуске ngtop находит логи доступа nginx (по умолчанию `/var/log/nginx/access.log*`), парсит их, используя формат combined, и сохраняет записи в базу данных SQLite (по умолчанию `./ngtop.db`). Последующие запуски обрабатывают только новые записи логов, которые еще не были сохранены. ### Возможности запросов Инструмент поддерживает фильтрацию и агрегацию по нескольким измерениям: - **Пути**: самые запрашиваемые URL с поддержкой сопоставления по шаблону (`/blog/%`) - **User agents**: группировка по браузеру, ОС, устройству или обнаружение ботов - **IP**: самые активные IP-адреса или самые популярные URL для каждого IP - **Рефереры**: основные источники переходов для определенных шаблонов URL - **Коды состояния**: подсчет ответов по HTTP-статусам, включая сопоставление по шаблону (например, `4%`, `5%`) - **Временные интервалы**: ограничение запросов последней секундой, минутой, часом, днем, неделей или месяцем с помощью `--since`/`-s`, и опционально `--until`/`-u` для задания окна - **Фильтры**: объединение нескольких условий с помощью `--where`/`-w`, используя операторы `=`, `!=` и `LIKE` ### Конфигурация Поведение управляется через переменные окружения: - `NGTOP_LOGS_PATH`: glob-шаблон для расположения файлов логов - `NGTOP_LOG_FORMAT`: строка пользовательского формата логов nginx - `NGTOP_DB`: путь к базе данных SQLite - `NGTOP_DEBUG`: включение внутреннего логирования Это делает ngtop легковесным аналитическим слоем с низкими затратами ресурсов для развертываний nginx, где полномасштабная агрегация логов нецелесообразна.