Spec-Zone.ru › nginx

Модуль 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

Простая страница мониторинга поставляется с этой дистрибуцией, доступная как “/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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API