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