Мониторинг Nginx в реальном времени
Mar 21, 2016 09:52 · 339 words · 2 minute read
Для сбора и отображения метрик веб-сервера 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
может быть очень полезен для сравнительно небольших сайтов, но использование данной утилиты на высоконагруженных проектах (с десятками тысяч запросов в секунду) может быть неразумно.