Модуль ngx_http_status_module

Пример конфигурации
Директивы
     status
     status_format
     status_zone
Данные
Совместимость

Модуль ngx_http_status_module предоставляет доступ к информации о состоянии сервера.

Модуль доступен как часть коммерческой подписки.

Пример конфигурации

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
Версия предоставляемого набора данных. Текущей является версия 7.
nginx_version
Версия nginx.
address
Адрес сервера, принявшего запрос на получение информации о состоянии.
generation
Суммарное число перезагрузок конфигурации.
load_timestamp
Время последней перезагрузки конфигурации, в миллисекундах с начала эпохи.
timestamp
Текущее время в миллисекундах с начала эпохи.
pid
Идентификатор рабочего процесса, обработавшего запрос на получение информации о состоянии.
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
Суммарное число байт, отправленных клиентам.
upstreams
Для каждой динамически настраиваемой группы доступны следующие данные:
peers
Для каждого сервера доступны следующие данные:
id
Идентификатор сервера.
server
Адрес сервера.
backup
Логическое значение, означающее, является ли сервер запасным.
weight
Вес сервера.
state
Текущее состояние, которое может быть одним из “up”, “draining”, “down”, “unavail” или “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” и “unhealthy”.
downstart
Время (в миллисекундах с начала эпохи), когда сервер стал “unavail” или “unhealthy”.
selected
Время (в миллисекундах с начала эпохи), когда сервер в последний раз был выбран для обработки запроса (1.7.5).
header_time
Среднее время получения заголовка ответа от сервера (1.7.10). Поле доступно при использовании метода балансировки least_time.
response_time
Среднее время получения всего ответа от сервера (1.7.10). Поле доступно при использовании метода балансировки least_time.
keepalive
Текущее число бездействующих keepalive-соединений.
zombies
Текущее число серверов, удалённых из группы, но всё ещё обрабатывающих активные клиентские запросы.
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
Адрес сервера.
backup
Логическое значение, означающее, является ли сервер запасным.
weight
Вес сервера.
state
Текущее состояние, которое может быть одним из “up”, “down”, “unavail” или “unhealthy”.
active
Текущее число соединений.
connections
Суммарное число клиентских соединений, перенаправленных на этот сервер.
connect_time
Среднее время установки соединения с сервером группы. Поле доступно при использовании метода балансировки least_time.
first_byte_time
Среднее время получения первого байта данных. Поле доступно при использовании метода балансировки least_time.
response_time
Среднее время получения последнего байта данных. Поле доступно при использовании метода балансировки least_time.
sent
Суммарное число байт, отправленных на этот сервер.
received
Суммарное число байт, полученных с этого сервера.
fails
Суммарное число неудачных попыток работы с этим сервером.
unavail
Количество раз, когда сервер становился недоступным для клиентских соединений (состояние “unavail”) из-за достижения порогового числа неудачных попыток max_fails.
health_checks
checks
Суммарное число запросов проверки работоспособности.
fails
Число неудачных проверок работоспособности.
unhealthy
Количество раз, когда сервер становился неработоспособным (состояние “unhealthy”).
last_passed
Логическое значение, означающее, была ли последняя проверка работоспособности удачной и удовлетворял ли ответ заданным тестам.
downtime
Суммарное время, когда сервер находился в состояниях “unavail” и “unhealthy”.
downstart
Время (в миллисекундах с начала эпохи), когда сервер стал “unavail” или “unhealthy”.
selected
Время (в миллисекундах с начала эпохи), когда сервер в последний раз был выбран для обработки соединения.

Совместимость