ngxtop — для анализа логов Nginx

ngxtop — консольная *top утилита для анализа логов Nginx в режиме реального времени.

Для установки на сервере нужен будет только python, далее саму утилиту мы поставим с помощью pip:

# pip install ngxtop

Примеры использования.

При запуске ngxtop пытается получить информацию об access.log файле, с которым будет работать, из конфига nginx. Если в основном конфигурационном файле информации о логе нет, мы можем вручную указать путь до него при запуске программы:

# ngxtop -l /home/path/to/logs/sysadmin.pm.log

При этом, данные будут обновляться в автоматическом режиме по мере появления новых записей в логе:

ngxtop

Утилита удобна тем, что мы можем так же выполнять сортировку и выборку по нужным нам параметрам.

  • Например, мы можем вывести топ IP адресов, которые подключаются к сайту:

# ngxtop —group-by remote_addr -l /home/path/to/logs/sysadmin.pm.log

  • Или вывести информацию только о тех соединениях, которые получили ответ от сервера 200, показав при этом, их рефер:

# ngxtop -i ‘status == 200’ print request status http_referer -l /home/path/to/logs/sysadmin.pm.log

  • Можем так же и обрабатывать данные фильтруя их по вхожению в адрес на сайте. Например, показать статистику только для соединений с кодом ответа 200, для адресов, которые начинаются с «/nginx»:

# ngxtop —filter ‘status == 200 and request_path.startswith(«/nginx»)’ -l /home/path/to/logs/sysadmin.pm.log

  • Разумеется, мы можем так же и проанализировать уже записанный лог, для этого, воспользуемся параметром —no-follow:

# ngxtop —no-follow -l /home/path/to/logs/sysadmin.pm.log

… и получим информацию по соединениям, которые были записаны за всё время жизни лог-файла.

ngxtop

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