Nginx статистика в реальном времени

На просторах сети Интернет размещено множество руководств по настройке веб-сервера Nginx, но, почему-то, крайне редко упоминается о встроенном механизме мониторинга активных соединений. А ведь это очень полезная информация, которая поможет следить за состоянием сервера, а также пригодится при настройке и оптимизации Nginx.

За сбор и вывод статистики отвечает модуль ngx_http_stub_status_module.


Проверить установлен ли данный модуль можно выполнив команду:

Если в ответ получили строку:

значит модуль установлен. В противном случае нужно пересобирать пакет Nginx с флагом

или, если у Вас Ubuntu, установить пакет nginx-full.

Если необходимый модуль присутствует, нужно настроить специальный location блок для уже существующего сайта, или можно повесить его на localhost.

Добавляем в конфиг виртуального хоста:

До версии 1.7.5 синтаксис директивы требовал наличия произвольного аргумента, например “stub_status on”, после достаточно просто“stub_status”. Обратите на это внимание, так как, например, на дистрибутиве Debian 8 из стандартного репозитория устанавливается версия Nginx 1.6.2.

Для безопасности, доступ к странице был ограничен с IP 192.168.1.1, замените его на IP-адрес с которого Вы обращаетесь к сайту.

Теперь при обращении к странице nginx_status_page (например http://yor-site.com/nginx_status_page) Nginx сгенерирует простую веб-страницу с основной информацией о состоянии, вида:

Где:

  • Active connections — Текущее число активных клиентских соединений, включая Waiting-соединения. Это значение не показывает количество пользователей, т.к. один пользователь, для одного просмотра страницы, может открыть множество параллельных подключений к вашему серверу.
  • Server accepts handled requests — показывает три значения:
    • первое — accepts, общее количество принятых подключений;
    • второе — handled, общее количество обработанных подключений. Обычно совпадает с первым значением,если не достигнуто какое-нибудь системное ограничение (например, лимит worker_connections);
    • третье — requests, суммарное число клиентских запросов;
    • разделив третье значение на второе Вы получите количество запросов на одно соединение. В примере выше, 10993 / 7368 = 1.49 запросов на соединение.
  • Reading — текущее число соединений, в которых nginx в настоящий момент читает заголовок запроса.
  • Writing — текущее число соединений, в которых nginx в настоящий момент отвечает клиенту.
  • Waiting — текущее число бездействующих клиентских соединений в ожидании запроса.

Еще один вариант конфигурации, создать виртуальный хост привязав его к localhost:

В данном случае посмотреть статистику можно выполнив команду в консоле сервера:

И напоследок, как посмотреть количество подключений к Nginx без  модуля ngx_http_stub_status_module.

Исключаем из вывода утилиты netstat -an строки содержащие TIME_WAIT или выбираем только строки с ESTABLISHED:

или


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *