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 json;
status_format jsonp [callback];
預設
status_format json;
上下文 httpserverlocation

預設情況下,狀態資訊以 JSON 格式輸出。

或者,資料可以 JSONP 形式輸出。callback 參數指定回呼函數的名稱。參數值可以包含變數。如果省略參數,或計算值為空字串,則使用「ngx_status_jsonp_callback」。

語法 status_zone zone;
預設
上下文 server

啟用在指定的 zone 中收集虛擬 httpstream (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
傳送至用戶端的回應總數。
1xx2xx3xx4xx5xx
狀態碼為 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
從此伺服器取得的回應總數。
1xx2xx3xx4xx5xx
狀態碼為 1xx、2xx、3xx、4xx 和 5xx 的回應數。
sent
傳送至此伺服器的總位元組數。
received
從此伺服器接收的總位元組數。
fails
與伺服器通訊失敗的總次數。
unavail
由於失敗嘗試次數達到 max_fails 閾值,伺服器無法處理用戶端請求 (狀態為「unavail」) 的次數。
health_checks
checks
進行的 健康檢查 請求總數。
fails
失敗的健康檢查次數。
unhealthy
伺服器變為不健康的次數 (狀態為「unhealthy」)。
last_passed
指示上次健康檢查請求是否成功並通過測試的布林值。
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
指示「快取載入器」進程是否仍在將資料從磁碟載入到快取中的布林值。
hitstaleupdatingrevalidated
responses
從快取讀取的回應總數 (命中,或由於 proxy_cache_use_stale 等而產生的過時回應)。
bytes
從快取讀取的總位元組數。
missexpiredbypass
responses
未從快取取得的回應總數 (遺失、過期,或由於 proxy_cache_bypass 等而產生的略過)。
bytes
從代理伺服器讀取的總位元組數。
responses_written
寫入快取的回應總數。
bytes_written
寫入快取的總位元組數。
stream
server_zones
對於每個 status_zone
processing
目前正在處理的用戶端連線數。
connections
從用戶端接受的連線總數。
sessions
total
完成的用戶端會期總數。
2xx4xx5xx
完成的會期數,其狀態碼為 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
checks
已發出的 健康檢查 請求總數。
fails
失敗的健康檢查次數。
unhealthy
伺服器變為不健康的次數 (狀態為「unhealthy」)。
last_passed
布林值,指示上次健康檢查請求是否成功並通過 測試
downtime
伺服器處於「unavail」、「checking」和「unhealthy」狀態的總時間。
downstart
伺服器變為「unavail」、「checking」或「unhealthy」的時間 (自 Epoch 以來的毫秒數)。
selected
伺服器上次被選中處理連線的時間(自 Epoch 以來的毫秒數)。
zombies
目前從群組中移除但仍在處理活動客戶端連線的伺服器數量。
zone
用於儲存群組配置和執行時狀態的共享記憶體 區域 的名稱。

相容性