Модуль 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 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
- Версия предоставляемого набора данных. Текущей является версия 6.
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-соединений.
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
- Суммарное число соединений, полученных от клиентов.
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
- Время (в миллисекундах с начала эпохи), когда сервер в последний раз был выбран для обработки соединения.
Совместимость
- Поля 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.