Nginx Log Analyzer

CLI-анализатор access-логов nginx: потоковая обработка, устойчивость к некорректным строкам и отчёты в JSON, Markdown и AsciiDoc.

Период
октябрь 2025 г. — июнь 2026 г.
Статус
Завершён
Моя роль
Единственный разработчик: парсер логов, агрегация статистики, форматы отчётов, типизация и тесты.

Стек

  • Python
  • Docker

Ключевые технические решения

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

Утилита командной строки, которая читает access-логи nginx и собирает по ним статистику: топ запрашиваемых ресурсов, коды ответов, перцентили размера ответа и распределение запросов по датам.

Логи nginx легко вырастают до гигабайтов — отсюда и требования к утилите: не держать файл в памяти целиком и продолжать обработку, даже если отдельные строки не соответствуют ожидаемому формату.