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