Nginx Log Analyzer
CLI-анализатор access-логов nginx: потоковая обработка, устойчивость к некорректным строкам и отчёты в JSON, Markdown и AsciiDoc.
Стек
- Python
- Docker
Ключевые технические решения
- Потоковое чтение вместо загрузки файла в память: держать в RAM весь лог не требуется.
- Битые строки не прерывают разбор, а пропускаются, и подсчёт продолжается по остальным.
- Источником может быть локальный файл, glob-шаблон или URL.
- Один набор агрегатов рендерится в три формата: JSON для автоматической обработки, Markdown и AsciiDoc для чтения.
- В рантайме только стандартная библиотека Python, внешних зависимостей нет.
- Строгая типизация с проверкой mypy, модульные тесты на pytest, линтинг, Docker и CI.
Утилита командной строки, которая читает access-логи nginx и собирает по ним статистику: топ запрашиваемых ресурсов, коды ответов, перцентили размера ответа и распределение запросов по датам.
Логи nginx легко вырастают до гигабайтов — отсюда и требования к утилите: не держать файл в памяти целиком и продолжать обработку, даже если отдельные строки не соответствуют ожидаемому формату.