Об этом проекте
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, где полномасштабная агрегация логов нецелесообразна.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.