ngxtop — консольная *top утилита для анализа логов Nginx в режиме реального времени.
Для установки на сервере нужен будет только python, далее саму утилиту мы поставим с помощью pip:
# pip install ngxtop
Примеры использования.
При запуске ngxtop пытается получить информацию об access.log файле, с которым будет работать, из конфига nginx. Если в основном конфигурационном файле информации о логе нет, мы можем вручную указать путь до него при запуске программы:
# ngxtop -l /home/path/to/logs/sysadmin.pm.log
При этом, данные будут обновляться в автоматическом режиме по мере появления новых записей в логе:
Утилита удобна тем, что мы можем так же выполнять сортировку и выборку по нужным нам параметрам.
- Например, мы можем вывести топ 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
… и получим информацию по соединениям, которые были записаны за всё время жизни лог-файла.
Вот такая простая, но в то же время очень функциональная утилита, которую стоит взять на вооружение.
Утилита только для python 2 ?
Разработчик на это отвечает так:
apachetop аналог для апача)