Модуль ngx_http_status_module Join us for the first quarterly NGINX Community Call on July 22nd to connect and discuss NGINX development. english русский новости [en] об nginx скачать безопасность [en] документация faq книги [en] сообщество компания x.com blog njs ingress controller gateway fabric Модуль ngx_http_status_moduleПример конфигурации Директивы status status_format status_zone Данные Совместимость Модуль ngx_http_status_module предоставляет доступ к информации о состоянии сервера. Этот модуль был доступен как часть коммерческой подписки до версии 1.13.10. Модуль был заменён модулем ngx_http_api_module в версии 1.13.3. Пример конфигурации http { upstream backend { zone http_backend 64k; server backend1.example.com weight=5; server backend2.example.com; } proxy_cache_path /data/nginx/cache_backend keys_zone=cache_backend:10m; server { server_name backend.example.com; location / { proxy_pass http://backend; proxy_cache cache_backend; health_check; } status_zone server_backend; } server { listen 127.0.0.1; location /upstream_conf { upstream_conf; } location /status { status; } location = /status.html { } } } stream { upstream backend { zone stream_backend 64k; server backend1.example.com:12345 weight=5; server backend2.example.com:12345; } server { listen 127.0.0.1:12345; proxy_pass backend; status_zone server_backend; health_check; } } Примеры запросов информации о состоянии, возможные с данной конфигурацией: http://127.0.0.1/status http://127.0.0.1/status/nginx_version http://127.0.0.1/status/caches/cache_backend http://127.0.0.1/status/upstreams http://127.0.0.1/status/upstreams/backend http://127.0.0.1/status/upstreams/backend/peers/1 http://127.0.0.1/status/upstreams/backend/peers/1/weight http://127.0.0.1/status/stream http://127.0.0.1/status/stream/upstreams http://127.0.0.1/status/stream/upstreams/backend http://127.0.0.1/status/stream/upstreams/backend/peers/1 http://127.0.0.1/status/stream/upstreams/backend/peers/1/weight В составе дистрибутива nginx имеется простая страница мониторинга, доступная по запросу “/status.html” в стандартной конфигурации. Для работы этой страницы требуется настроить location “/status” и location “/status.html” как показано выше. Директивы Синтаксис: status; Умолчание: — Контекст: location Информация о состоянии будет доступна из содержащего location. Доступ в location следует ограничить. Синтаксис: status_format json; status_format jsonp [callback]; Умолчание: status_format json; Контекст: http, server, location По умолчанию информация выводится в формате JSON. Также данные могут выводиться в формате JSONP. Параметр callback задаёт имя callback-функции. В значении параметра можно использовать переменные. Если параметр не задан или вычисленное значение является пустой строкой, используется имя “ngx_status_jsonp_callback”. Синтаксис: status_zone зона; Умолчание: — Контекст: server Включает сбор информации о состоянии виртуального сервера группы http или stream (1.7.11) в указанной зоне. В одной и той же зоне может одновременно собираться информация сразу по нескольким серверам. Данные Доступна следующая информация: version Версия предоставляемого набора данных. Текущей является версия 8. nginx_version Версия nginx. nginx_build Название сборки nginx. address Адрес сервера, принявшего запрос на получение информации о состоянии. generation Суммарное число перезагрузок конфигурации. load_timestamp Время последней перезагрузки конфигурации, в миллисекундах с начала эпохи. timestamp Текущее время в миллисекундах с начала эпохи. pid Идентификатор рабочего процесса, обработавшего запрос на получение информации о состоянии. ppid Идентификатор главного процесса, запустившего рабочий процесс. processes respawned Суммарное число перезапусков аварийно завершённых дочерних процессов. connections accepted Суммарное число принятых клиентских соединений. dropped Суммарное число отвергнутых клиентских соединений. active Текущее число активных клиентских соединений. idle Текущее число бездействующих клиентских соединений. ssl handshakes Суммарное число успешных операций SSL handshake. handshakes_failed Суммарное число неуспешных операций SSL handshake. session_reuses Суммарное число повторных использований SSL-сессий во время операций SSL handshake. requests total Суммарное число клиентских запросов. current Текущее число клиентских запросов. server_zones Для каждой status_zone: processing Число обрабатываемых в настоящий момент клиентских запросов. requests Суммарное число запросов, полученных от клиентов. responses total Суммарное число ответов, отправленных клиентам. 1xx, 2xx, 3xx, 4xx, 5xx Число ответов со статусами 1xx, 2xx, 3xx, 4xx и 5xx. discarded Суммарное число запросов, завершившихся без отправки ответа. received Суммарное число байт, полученных от клиентов. sent Суммарное число байт, отправленных клиентам. slabs Для каждой зоны разделяемой памяти, в которой используется распределение slab: pages used Текущее число занятых страниц памяти. free Текущее число свободных страниц памяти. slots Для каждого размера слота памяти (8, 16, 32, 64, 128 и т.д.) доступны следующие данные: used Текущее число занятых слотов памяти. free Текущее число свободных слотов памяти. reqs Суммарное число попыток выделения памяти указанного размера. fails Число неудачных попыток выделения памяти указанного размера. upstreams Для каждой динамически настраиваемой группы доступны следующие данные: peers Для каждого сервера доступны следующие данные: id Идентификатор сервера. server Адрес сервера. name Имя сервера, указанное в директиве server. service Значение параметра service директивы server. backup Логическое значение, означающее, является ли сервер запасным. weight Вес сервера. state Текущее состояние, которое может быть одним из “up”, “draining”, “down”, “unavail”, “checking” или “unhealthy”. active Текущее число активных соединений. max_conns Ограничение max_conns для сервера. requests Суммарное число клиентских запросов, перенаправленных на этот сервер. responses total Суммарное число ответов, полученных от этого сервера. 1xx, 2xx, 3xx, 4xx, 5xx Число ответов со статусами 1xx, 2xx, 3xx, 4xx и 5xx. sent Суммарное число байт, отправленных на этот сервер. received Суммарное число байт, полученных с этого сервера. fails Суммарное число неудачных попыток работы с этим сервером. unavail Количество раз, когда сервер становился недоступным для клиентских запросов (состояние “unavail”) из-за достижения порогового числа неудачных попыток max_fails. health_checks checks Суммарное число запросов проверки работоспособности. fails Число неудачных проверок работоспособности. unhealthy Количество раз, когда сервер становился неработоспособным (состояние “unhealthy”). last_passed Логическое значение, означающее, была ли последняя проверка работоспособности удачной и удовлетворял ли ответ заданным тестам. downtime Суммарное время, когда сервер находился в состояниях “unavail”, “checking” и “unhealthy”. downstart Время (в миллисекундах с начала эпохи), когда сервер стал “unavail”, “checking” или “unhealthy”. selected Время (в миллисекундах с начала эпохи), когда сервер в последний раз был выбран для обработки запроса (1.7.5). header_time Среднее время получения заголовка ответа от сервера (1.7.10). До версии 1.11.6 поле было доступно только при использовании метода балансировки least_time. response_time Среднее время получения всего ответа от сервера (1.7.10). До версии 1.11.6 поле было доступно только при использовании метода балансировки least_time. keepalive Текущее число бездействующих keepalive-соединений. zombies Текущее число серверов, удалённых из группы, но всё ещё обрабатывающих активные клиентские запросы. zone Имя зоны разделяемой памяти, в которой хранятся конфигурация группы и её рабочее состояние. queue Для очереди запросов доступны следующие данные: size Текущее число запросов в очереди. max_size Максимальное число запросов, которые могут одновременно находиться в очереди. overflows Суммарное число запросов, отклонённых из-за переполнения очереди. caches Для каждого кэша, сконфигурированного при помощи proxy_cache_path и аналогичных директив: size Текущий размер кэша. max_size Ограничение на максимальный размер кэша, заданное в конфигурации. cold Логическое значение, указывающее, продолжается ли загрузка данных процессом “cache loader” с диска в кэш. hit, stale, updating, revalidated responses Суммарное число ответов, прочитанных из кэша (попадания в кэш или просроченные ответы вследствие proxy_cache_use_stale и аналогичных директив). bytes Суммарное число байт, прочитанных из кэша. miss, expired, bypass responses Суммарное число ответов, взятых не из кэша (miss — отсутствие данных в кэше, expired — просроченные ответы, bypass — ответ не был взят из кэша вследствие proxy_cache_bypass и аналогичных директив). bytes Суммарное число байт, прочитанных с проксируемого сервера. responses_written Суммарное число ответов, записанных в кэш. bytes_written Суммарное число байт, записанных в кэш. stream server_zones Для каждой status_zone: processing Число обрабатываемых в настоящий момент клиентских соединений. connections Суммарное число соединений, полученных от клиентов. sessions total Суммарное число завершённых клиентских сессий. 2xx, 4xx, 5xx Число завершённых сессий со статусами 2xx, 4xx или 5xx. discarded Суммарное число соединений, завершённых без создания сессии. received Суммарное число байт, полученных от клиентов. sent Суммарное число байт, отправленных клиентам. upstreams Для каждого сервера в динамически настраиваемой группе доступны следующие данные: id Идентификатор сервера. server Адрес сервера. name Имя сервера, указанное в директиве server. service Значение параметра service директивы server. backup Логическое значение, означающее, является ли сервер запасным. weight Вес сервера. state Текущее состояние, которое может быть одним из “up”, “down”, “unavail”, “checking” или “unhealthy”. active Текущее число соединений. max_conns Ограничение max_conns для сервера. connections Суммарное число клиентских соединений, перенаправленных на этот сервер. connect_time Среднее время установки соединения с сервером группы. До версии 1.11.6 поле было доступно только при использовании метода балансировки least_time. first_byte_time Среднее время получения первого байта данных. До версии 1.11.6 поле было доступно только при использовании метода балансировки least_time. response_time Среднее время получения последнего байта данных. До версии 1.11.6 поле было доступно только при использовании метода балансировки least_time. sent Суммарное число байт, отправленных на этот сервер. received Суммарное число байт, полученных с этого сервера. fails Суммарное число неудачных попыток работы с этим сервером. unavail Количество раз, когда сервер становился недоступным для клиентских соединений (состояние “unavail”) из-за достижения порогового числа неудачных попыток max_fails. health_checks checks Суммарное число запросов проверки работоспособности. fails Число неудачных проверок работоспособности. unhealthy Количество раз, когда сервер становился неработоспособным (состояние “unhealthy”). last_passed Логическое значение, означающее, была ли последняя проверка работоспособности удачной и удовлетворял ли ответ заданным тестам. downtime Суммарное время, когда сервер находился в состояниях “unavail”, “checking” и “unhealthy”. downstart Время (в миллисекундах с начала эпохи), когда сервер стал “unavail”, “checking” или “unhealthy”. selected Время (в миллисекундах с начала эпохи), когда сервер в последний раз был выбран для обработки соединения. zombies Текущее число серверов, удалённых из группы, но всё ещё обрабатывающих активные клиентские соединения. zone Имя зоны разделяемой памяти, в которой хранятся конфигурация группы и её рабочее состояние. Совместимость Поле zone в http и stream upstreams было добавлено в версии 8. Поля slabs были добавлены в версии 8. Состояние checking было добавлено в версии 8. Поля name и service в http и stream upstreams были добавлены в версии 8. Поля nginx_build и ppid были добавлены в версии 8. Поля sessions и поле discarded в stream server_zones были добавлены в версии 7. Поле zombies было перемещено из debug-версии nginx в версии 6. Поля ssl были добавлены в версии 6. Поле discarded в server_zones было добавлено в версии 6. Поля queue были добавлены в версии 6. Поле pid было добавлено в версии 6. Список серверов в upstreams был перемещён в peers в версии 6. Поле keepalive сервера группы было удалено в версии 5. stream был добавлен в версии 5. Поле generation было добавлено в версии 5. Поле respawned в processes было добавлено в версии 5. Поля header_time и response_time в upstreams были добавлены в версии 5. Поле selected в upstreams было добавлено в версии 4. Состояние draining в upstreams было добавлено в версии 4. Поля id и max_conns в upstreams были добавлены в версии 3. Поле revalidated в caches было добавлено в версии 3. server_zones, caches и load_timestamp были добавлены в версии 2.