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