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) 伺服器狀態資訊。多個伺服器可以共用同一個 zone。
資料
提供以下狀態資訊
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 握手期間的 session 重用總數。
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
- 對於每個 server,提供以下資料
id
- 伺服器的 ID。
server
- 伺服器的位址。
name
- 在 server 指令中指定的伺服器名稱。
service
- server 指令的 service 參數值。
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
- 由於失敗嘗試次數達到 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
-
responses
- 從快取讀取的回應總數 (命中,或由於 proxy_cache_use_stale 等而產生的過時回應)。
bytes
- 從快取讀取的總位元組數。
-
miss
、expired
、bypass
-
responses
- 未從快取取得的回應總數 (遺失、過期,或由於 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
- 對於每個動態設定的群組,提供以下資料
peers
- 對於每個伺服器,提供以下資料
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 負載平衡方法時才可用。
sent
- 傳送至此伺服器的總位元組數。
received
- 從此伺服器接收的總位元組數。
fails
- 與伺服器通訊失敗的總次數。
unavail
- 伺服器由於不成功的嘗試次數達到 max_fails 閾值而無法用於客戶端連線(狀態為「
unavail
」)的次數。 health_checks
downtime
- 伺服器處於「
unavail
」、「checking
」和「unhealthy
」狀態的總時間。 downstart
- 伺服器變為「
unavail
」、「checking
」或「unhealthy
」的時間 (自 Epoch 以來的毫秒數)。 selected
- 伺服器上次被選中處理連線的時間(自 Epoch 以來的毫秒數)。
zombies
- 目前從群組中移除但仍在處理活動客戶端連線的伺服器數量。
zone
- 用於儲存群組配置和執行時狀態的共享記憶體 區域 的名稱。
相容性
- http 和 stream 上游中的 zone 欄位是在 版本 8 中新增的。
- slabs 狀態資料是在 版本 8 中新增的。
- checking 狀態是在 版本 8 中新增的。
- http 和 stream 上游中的 name 和 service 欄位是在 版本 8 中新增的。
- nginx_build 和 ppid 欄位是在 版本 8 中新增的。
- sessions 狀態資料以及 stream server_zones 中的 discarded 欄位是在 版本 7 中新增的。
- zombies 欄位已從 nginx debug 版本中移出,在 版本 6 中。
- ssl 狀態資料是在 版本 6 中新增的。
- server_zones 中的 discarded 欄位是在 版本 6 中新增的。
- queue 狀態資料是在 版本 6 中新增的。
- pid 欄位是在 版本 6 中新增的。
- upstreams 中的伺服器列表已移至 peers 中,在 版本 6 中。
- 上游伺服器的
keepalive
欄位已在 版本 5 中移除。 - stream 狀態資料是在 版本 5 中新增的。
- generation 欄位是在 版本 5 中新增的。
- processes 中的 respawned 欄位是在 版本 5 中新增的。
- upstreams 中的 header_time 和 response_time 欄位是在 版本 5 中新增的。
- upstreams 中的 selected 欄位是在 版本 4 中新增的。
- upstreams 中的 draining 狀態是在 版本 4 中新增的。
- upstreams 中的 id 和 max_conns 欄位是在 版本 3 中新增的。
- caches 中的
revalidated
欄位是在 版本 3 中新增的。 - server_zones、caches 和 load_timestamp 狀態資料是在 版本 2 中新增的。