Модуль 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 status_format  | 
                
|---|---|
| Умолчание: | 
            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.