Skip to content

Утилита для анализа лог-файлов сервера приложений NGINX Unit.

License

Notifications You must be signed in to change notification settings

andrey-tech/nginx-unit-log-analyzer-php

Repository files navigation

NGINX Unit log analyzer

NGINX Unit log analyzer logo

Latest Stable Version PHP Version Require License

NGINX Unit log analyzer — это утилита для анализа лог-файлов сервера приложений NGINX Unit.
Утилита анализирует продолжительность исполнения процессов NGINX Unit для запущенных приложений с точностью в одну секунду и формирует в консоли отчёты различных типов в табличной или графической форме.

Содержание

Установка

NGINX Unit log analyzer требует:

composer require --dev andrey-tech/nginx-unit-log-analyzer-php

Установка GNU Plot с помощью APT (Advanced Package Tool):

apt install gnuplot

Аргументы и опции командной строки

./vendor/bin/nginx-unit-log-analyzer <NGINX Unit log file> [OPTIONS]

где:

  • [OPTIONS] — опции командной строки,
  • <NGINX Unit log file> — путь к лог-файлу NGINX Unit, содержащему информацию о запущенных процессах приложений вида:
2024/06/13 13:31:06 [info] 657#657 "application-3" application started
2024/06/13 13:32:14 [notice] 151#151 app process 657 exited with code 0

Опции командной строки

Опция Описание Значение По умолчанию Пример использования
--log-timezone Часовой пояс лог-файла Имя часового пояса Часовой пояс скрипта --log-timezone Europe/Moscow
--report-type Тип формируемого отчёта day, top, graph graph --report-type day
--report-timezone Часовой пояс отчёта Имя часового пояса Часовой пояс скрипта --report-timezone Europe/Moscow
--filter-start-time-from Фильтр записей лога по времени, от Строка даты и времени --filter-start-time-from 2024-06-17 00:00:00 UTC
--filter-start-time-to Фильтр записей лога по времени, до Строка даты и времени --filter-start-time-to 2024-06-17 23:59:59 UTC
--filter-application-name Фильтр записей лога по приложению Имя приложения --filter-application-name application-1
--graph-file-name Имя файла графиков для отчёта типа graph Имя файла nginx-unit-log-analyzer.png --graph-file-name unit.png
--graph-types Типы графиков для отчёта graph quantity, median, average, maximal, minimal quantity и average --graph-types quantity --graph-types median
--no-color Отключение цветов в консоли --no-color

Типы формируемых отчётов

Утилита NGINX Unit log analyzer может формировать отчёты трех типов (--report-type):

  1. day — продолжительность исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час и разбиением по дням;
  2. top — топ-лист наиболее и наименее продолжительных процессов NGINX Unit для запущенных приложений с разбиением по дням;
  3. graph (по умолчанию) — графики продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час.

Отчёты типа day и top формируется в консоли в табличной форме.

Отчёт типа graph формируется в графическом файле формата PNG и требует для своего создания утилиту GNU Plot.

Отчёт типа graph может включать следующие виды графиков (--graph-types):

  • quantity (по умолчанию) — график количества процессов NGINX Unit для запущенных приложений с усреднением за один час;
  • average (по умолчанию) — график среднеарифметической продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час;
  • median — график медианной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час;
  • maximal — график максимальной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час;
  • minimal — график минимальной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час.

Отчёт типа day

Пример фрагмента отчёта типа day для одного дня:

NGINX Unit log analyzer. Report type day

В таблице отчёта:

  • DATE — анализируемая дата с указанием часового пояса;
  • APP — список имён приложений, которые были запущены за анализируемую дату;
  • Processes — информация о запущенных процессах NGINX Unit:
    • Start — анализируемый интервал времени, часы (от-до);
    • Amount — количество процессов, которые были запущены в течение интервала времени (+n — число незавершённых процессов);
  • Duration — информация о продолжительности исполнения процессов в течение временного интервала:

Формат значений продолжительности исполнения процессов NGINX Unit в таблице имеет вид:
d h m s, где: d — дни, h — часы, m — минуты, s — секунды.

Отчёт типа top

Пример фрагмента отчёта типа top для одного дня:

NGINX Unit log analyzer. Report type top

В таблице отчёта:

  • DATE — анализируемая дата с указанием часового пояса;
  • APP — список имён приложений, которые были запущены за анализируемую дату;
  • Duration — продолжительность исполнения процесса;
  • App name — имя приложения;
  • Start time — дата и время запуска процесса;
  • Exit time — дата и время завершения процесса;
  • Start — номер строки в лог-файле NGINX Unit, в которой был зафиксирован запуск процесса;
  • End — номер строки в лог-файле NGINX Unit, в которой было зафиксировано завершение процесса;
  • Idидентификатор процесса в NGINХ Unit.

В верхней части таблицы содержится список из 20 наиболее продолжительных процессов, которые были зафиксированы за анализируемую дату.

В нижней части таблицы содержится список из 5 наименее продолжительных процессов, которые были зафиксированы за анализируемую дату.

Списки отсортированы по убыванию продолжительности.

Отчёт типа graph

Пример отчёта типа graph, включающий 2 графика:

  • график количества процессов NGINX Unit для запущенных приложений с усреднением за один час;
  • график медианной продолжительности исполнения процессов.

NGINX Unit log analyzer. Report type graph

Формат значений продолжительности исполнения процессов NGINX Unit на графике имеет вид:
H:MM:SS, где: H — часы, MM — минуты, SS — секунды.

Авторы

© 2024 andrey-tech

Лицензия

Данная библиотека распространяется на условиях лицензии MIT.