Консольная утилита для анализа логов. Принимает обязательный параметр:
- --path, -p - путь к одному или нескольким NGINX лог-файлам
Принимает необязательные параметры:
- --format, -f - параметр, указывающий на формат вывода результатов. (json, markdown, adoc)
- --output, -o - путь до файла, куда должен быть сохранён результат работы программы
- --from, --to - два параметра с датами в формате ISO8601 для установления временного промежутка
Программа обрабатывает логи в следующем формате:
'$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'
Примеры логов:
93.180.71.3 - - [17/May/2015:08:05:32 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)"
93.180.71.3 - - [17/May/2015:08:05:23 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)"
На основании данных из логов, программа собирает следующую статистику:
- общее количество запросов
- средний и максимальный размер ответа от сервера
- 95% перцентиль размера ответа от сервера
- частота встречаемых кодов ответа
- топ-10 наиболее часто запрашиваемых ресурсов, отсортированных по убыванию
- распределение запросов по дням недели в процентом соотношении от общего числа
- уникальные используемые протоколы передачи данных (HTTP/1, HTTP/2, etc)