模块 ngx_http_status_module
示例配置 指令 status status_format status_zone 数据 兼容性 |
ngx_http_status_module
模块提供对各种状态信息的访问。
此模块作为我们 商业订阅 的一部分,直到 1.13.10。它在 1.13.3 中被 ngx_http_api_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
此发行版附带一个简单的监控页面,在默认配置中可作为“/status.html
”访问。它要求“/status
”和“/status.html
”位置按上面所示进行配置。
指令
语法 |
status; |
---|---|
默认值 | — |
上下文 |
location |
可以从周围的位置访问状态信息。对该位置的访问应该 受限。
语法 |
status_format status_format |
---|---|
默认值 |
status_format json; |
上下文 |
http 、server 、location |
默认情况下,状态信息以 JSON 格式输出。
或者,数据可以作为 JSONP 输出。callback
参数指定回调函数的名称。参数值可以包含变量。如果省略参数,或者计算出的值为空字符串,则使用“ngx_status_jsonp_callback
”。
语法 |
status_zone |
---|---|
默认值 | — |
上下文 |
server |
启用在指定的 zone
中收集虚拟 http 或 stream (1.7.11) 服务器状态信息。多个服务器可以共享同一个区域。
数据
提供以下状态信息
version
- 提供的数据集的版本。当前版本为 8。
nginx_version
- nginx 的版本。
nginx_build
- nginx 构建的名称。
address
- 接受状态请求的服务器的地址。
generation
- 配置 重新加载 的总数。
load_timestamp
- 上次重新加载配置的时间,以自 Epoch 时代的毫秒数表示。
timestamp
- 自 Epoch 时代的当前时间,以毫秒数表示。
pid
- 处理状态请求的 worker 进程的 ID。
ppid
- 启动 worker 进程 的 master 进程的 ID。
processes
-
respawned
- 异常终止并重新生成的子进程的总数。
connections
-
accepted
- 已接受的客户端连接总数。
dropped
- 已断开的客户端连接总数。
active
- 当前活动客户端连接数。
idle
- 当前空闲客户端连接数。
ssl
-
handshakes
- 成功的 SSL 握手总数。
handshakes_failed
- 失败的 SSL 握手总数。
session_reuses
- SSL 握手期间会话重用的总数。
requests
-
total
- 客户端请求总数。
current
- 客户端请求的当前数量。
server_zones
-
对于每个 status_zone
processing
- 当前正在处理的客户端请求数。
requests
- received
从客户端接收到的客户端请求总数。
-
total
- responses
- 发送给客户端的响应总数。
-
1xx
,2xx
,3xx
,4xx
,5xx
状态代码为 1xx、2xx、3xx、4xx 和 5xx 的响应数。
- discarded
未发送响应即完成的请求总数。
- received
从客户端接收到的字节总数。
- sent
发送给客户端的字节总数。
-
slabs
对于每个使用 slab 分配器的共享内存区域
-
pages
- used
当前已使用的内存页数。
- free
当前空闲的内存页数。
-
slots
pages
- 对于每个内存槽大小(8、16、32、64、128 等),提供以下数据
当前已使用的内存页数。
- used
当前已使用的内存槽数。
- free
当前空闲的内存槽数。
- reqs
尝试分配指定大小内存的总数。
-
fails
尝试分配指定大小内存的失败次数。
-
对于每个 服务器,提供以下数据
id
- 服务器的 ID。
server
- 服务器的 地址。
name
- 在 server 指令中指定的服务器名称。
service
- server 指令的 service 参数值。
backup
- 一个布尔值,指示服务器是否为 备份 服务器。
weight
- 服务器的 权重。
state
-
当前状态,可能是“
up
”、“draining
”、“down
”、“unavail
”、“checking
”或“unhealthy
”之一。 active
- 活动连接的当前数量。
max_conns
- 服务器的 max_conns 限制。
requests
- 转发到此服务器的客户端请求的总数。
从客户端接收到的客户端请求总数。
-
total
- 从该服务器获得的响应总数。
- 发送给客户端的响应总数。
-
1xx
,2xx
,3xx
,4xx
,5xx
从客户端接收到的字节总数。
- 发送到该服务器的字节总数。
未发送响应即完成的请求总数。
- 从该服务器接收的字节总数。
当前空闲的内存槽数。
- 与服务器通信失败的尝试总数。
unavail
-
由于失败尝试次数达到 max_fails 阈值,服务器变为对客户端请求不可用(状态“
unavail
”)的次数。 health_checks
downtime
-
服务器处于“
unavail
”、“checking
”和“unhealthy
”状态的总时间。 downstart
-
服务器变为“
unavail
”、“checking
”或“unhealthy
”的时间(自 Epoch 以来以毫秒为单位)。 selected
- 服务器上次被选中处理请求的时间(自 Epoch 以来以毫秒为单位)(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
- 保存组的配置和运行时状态的共享内存zone的名称。
queue
-
对于请求队列,提供以下数据
size
- 当前队列中的请求数。
max_size
- 同一时间队列中可容纳的最大请求数。
overflows
- 因队列溢出而拒绝的请求总数。
caches
-
对于每个缓存(由proxy_cache_path等配置)
size
- 缓存的当前大小。
max_size
- 配置中指定的缓存最大大小限制。
cold
- 布尔值,指示“缓存加载程序”进程是否仍在将数据从磁盘加载到缓存中。
-
hit
、stale
、updating
、revalidated
-
从客户端接收到的客户端请求总数。
- 从缓存中读取的响应总数(命中或由于proxy_cache_use_stale等原因而导致的陈旧响应)。
bytes
- 从缓存中读取的字节总数。
-
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 完成的会话数。
状态代码为 1xx、2xx、3xx、4xx 和 5xx 的响应数。
- 未创建会话而完成的连接总数。
未发送响应即完成的请求总数。
- received
从客户端接收到的字节总数。
- sent
尝试分配指定大小内存的总数。
-
对于每个 可动态配置的 组,提供以下数据
尝试分配指定大小内存的失败次数。
-
对于每个 服务器,提供以下数据
id
- 服务器的 ID。
server
- 服务器的 地址。
name
- 在 server 指令中指定的服务器名称。
service
- server 指令的 service 参数值。
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 负载平衡方法时才提供此字段。
从客户端接收到的字节总数。
- 发送到该服务器的字节总数。
未发送响应即完成的请求总数。
- 从该服务器接收的字节总数。
当前空闲的内存槽数。
- 与服务器通信失败的尝试总数。
unavail
-
由于失败尝试次数达到 max_fails 阈值,服务器变得对客户端连接不可用(状态“
unavail
”)的次数。 health_checks
downtime
-
服务器处于“
unavail
”、“checking
”和“unhealthy
”状态的总时间。 downstart
-
服务器变为“
unavail
”、“checking
”或“unhealthy
”的时间(自 Epoch 以来以毫秒为单位)。 selected
- 服务器上次被选中处理连接的时间(自 Epoch 以来以毫秒为单位)。
zombies
- 从组中移除但仍在处理活动客户端连接的服务器的当前数量。
zone
- 保存组的配置和运行时状态的共享内存 zone 的名称。
兼容性
- zone 字段在 http 和 stream 上游中添加于 版本 8。
- 在版本 8 中添加了slabs 状态数据。
- 在版本 8 中添加了checking 状态。
- 在版本 8 中添加了http 和stream 上游中的name 和service 字段。
- 在版本 8 中添加了nginx_build 和ppid 字段。
- 在版本 7 中添加了sessions 状态数据和 streamserver_zones 中的discarded 字段。
- 在版本 6 中,zombies 字段从 nginxdebug 版本移出。
- 在版本 6 中添加了ssl 状态数据。
- 在版本 6 中添加了server_zones 中的discarded 字段。
- 在版本 6 中添加了queue 状态数据。
- 在版本 6 中添加了pid 字段。
- 在版本 6 中,upstreams 中的服务器列表被移到了peers 中。
-
在版本 5 中删除了上游服务器的
keepalive
字段。 - 在版本 5 中添加了stream 状态数据。
- 在版本 5 中添加了generation 字段。
- 在版本 5 中添加了processes 中的respawned 字段。
- 在版本 5 中添加了upstreams 中的header_time 和response_time 字段。
- 在版本 4 中添加了upstreams 中的selected 字段。
- 在版本 4 中添加了upstreams 中的draining 状态。
- 在版本 3 中添加了upstreams 中的id 和max_conns 字段。
-
在版本 3 中添加了caches 中的
revalidated
字段。 - server_zones、caches 和 load_timestamp 状态数据已在 版本 2 中添加。