Модуль ngx_http_status_module
Модуль 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
Простая страница мониторинга поставляется с этой дистрибуцией, доступная как “/status.html” в стандартной конфигурации. Для неё требуется настройка расположений “/status” и “/status.html” как показано выше.
Директивы
| Синтаксис: | status; |
|---|---|
| Значение по умолчанию: | — |
| Контекст: | location |
Информация о статусе будет доступна из окружающего расположения. Доступ к этому расположению должен быть ограничен.
| Синтаксис: | status_format json;status_format jsonp [callback]; |
|---|---|
| Значение по умолчанию: | status_format json; |
| Контекст: | http, server, location |
По умолчанию информация о статусе выводится в формате JSON.
В качестве альтернативы данные могут быть выведены в формате JSONP. Параметр callback указывает имя функции обратного вызова. Значение параметра может содержать переменные. Если параметр опущен или вычисленное значение является пустой строкой, используется “ngx_status_jsonp_callback”.
| Синтаксис: | status_zone zone; |
|---|---|
| Значение по умолчанию: | — |
| Контекст: | server |
Включает сбор информации о статусе виртуальных http или stream (1.7.11) серверов в указанной zone. Несколько серверов могут использовать одну зону.
Данные
Предоставляется следующая информация о статусе:
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.
handshakes_failed- Общее количество неудачных рукопожатий SSL.
session_reuses- Общее количество повторных использований сессий во время рукопожатия SSL.
requests-
total- Общее количество запросов клиентов.
current- Текущее количество запросов клиентов.
server_zones- Для каждой зоны статуса:
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- Логическое значение, указывающее, загружает ли процесс “загрузчика кэша” данные с диска в кэш.
-
hit,stale,updating,revalidated -
responses- Общее количество ответов, прочитанных из кэша (попадания или устаревшие ответы из-за proxy_cache_use_stale и т.п.).
bytes- Общее количество байтов, прочитанных из кэша.
-
miss,expired,bypass -
responses- Общее количество ответов, не взятых из кэша (промахи, истечения срока действия или обходы из-за 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- Для каждой динамически настраиваемой группы, предоставляются следующие данные:
peers- Для каждого сервера предоставляются следующие данные:
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, которая хранит конфигурацию группы и её состояние во время выполнения.
Совместимость
- Поле 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 было перенесено из отладочной версии 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.
© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_status_module.html