Мониторинг Nginx в реальном времени

Mar 21, 2016 09:52 · 339 words · 2 minute read monitoring nginx

Для сбора и отображения метрик веб-сервера Nginx часто используются Munin, Zabbix, Nagios и другие системы мониторинга.

Большинство из них приходится «допиливать» под свои нужды, так как «из коробки» доступно довольно мало информации. Давайте разберемся с утилитой Ngxtop для мониторинга Nginx в реальном времени!

Утилита Ngxtop парсит access-логи веб-сервера Nginx и выводит их в консоль в удобном (top-like) виде. Установка выполняется следующим образом:

pip install ngxtop

Синтаксис использования утилиты:

ngxtop [options]
ngxtop [options] (print|top|avg|sum) 

Список всех доступных опций можно посмотреть командой:

ngxtop --help

По умолчанию, Ngxtop самостоятельно определяет местоположение access-лога Nginx из конфигурационного файла /etc/nginx/nginx.conf. Если таких логов несколько, необходимо будет выбрать с каким именно логом работать:

ngxtop
Multiple access logs detected in configuration:
1. /var/log/nginx/access502.log
2. /var/log/nginx/access.api.log
3. /var/log/nginx/access.img.log
4. /var/log/nginx/access.log
5. /var/log/nginx/access404.log

Чтобы посмотреть запросы со статусом 404 можно воспользоваться командой:

ngxtop -i 'status == 404' print request status

результат выполнения в моем случае выглядит так:

running for 130 seconds, 150 records processed: 1.15 req/sec

request, status:
|request                                              |   status |
|-----------------------------------------------------+----------|
| GET /browserconfig.xml HTTP/1.1                     |  404     |
| GET /employer/my/archive/2107569/98483600/ HTTP/1.1 |  404     |
| GET /employer/my/archive/2107569/98483867/ HTTP/1.1 |  404     |
| GET /jobs/1045534/ HTTP/1.1                         |  404     |
| GET /jobs/1230564/ HTTP/1.1                         |  404     |
| GET /jobs/1254320/ HTTP/1.1                         |  404     |
| GET /jobs/1304769/ HTTP/1.1                         |  404     |
| GET /jobs/1326496/ HTTP/1.1                         |  404     |

Посмотреть IP-адреса, с которых приходит больше всего запросов можно командой:

ngxtop top remote_addr

результат выполнения:

running for 8 seconds, 1759 records processed: 217.15 req/sec

top remote_addr
| remote_addr     |   count |
|-----------------+---------|
| 92.60.184.91    |      45 |
| 66.249.78.10    |      42 |
| 77.120.121.122  |      42 |
| 66.249.89.63    |      28 |
| 91.206.201.152  |      19 |
| 37.229.17.176   |      17 |
| 77.87.193.40    |      17 |
| 157.55.39.7     |      16 |
| 188.115.135.245 |      16 |
| 89.184.80.168   |      16 |

Однако не следует забывать, что в каждом конкретном случае нужно применять соответствующий инструмент. Ngxtop может быть очень полезен для сравнительно небольших сайтов, но использование данной утилиты на высоконагруженных проектах (с десятками тысяч запросов в секунду) может быть неразумно.

tweet Share