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;
コンテキスト http, server, location

デフォルトでは、ステータス情報はJSON形式で出力されます。

代わりに、データはJSONPとして出力される場合があります。 callback パラメーターは、コールバック関数の名前を指定します。 パラメーター値には変数を含めることができます。 パラメーターが省略されているか、計算された値が空の文字列の場合、「ngx_status_jsonp_callback」が使用されます。

構文 status_zone zone;
デフォルト
コンテキスト server

指定されたzoneで、仮想httpまたはstream (1.7.11)サーバーのステータス情報の収集を有効にします。 複数のサーバーが同じゾーンを共有できます。

データ

以下のステータス情報が提供されます

version
提供されるデータセットのバージョン。 現在のバージョンは8です。
nginx_version
nginxのバージョン。
nginx_build
nginxビルドの名前。
address
ステータスリクエストを受け入れたサーバーのアドレス。
generation
設定のリロードの総数。
load_timestamp
設定の最後のリロード時刻(エポックからのミリ秒)。
timestamp
現在の時刻(エポックからのミリ秒)。
pid
ステータスリクエストを処理したワーカープロセスのID。
ppid
ワーカープロセスを開始したマスタープロセスの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
クライアントから受信したクライアントリクエストの総数。
responses
total
クライアントに送信されたレスポンスの総数。
1xx, 2xx, 3xx, 4xx, 5xx
ステータスコードが1xx、2xx、3xx、4xx、および5xxのレスポンスの数。
discarded
レスポンスを送信せずに完了したリクエストの総数。
received
クライアントから受信したバイトの総数。
sent
クライアントに送信されたバイトの総数。
slabs
スラブアロケーターを使用する各共有メモリゾーンについて
pages
used
使用されているメモリページの現在の数。
free
空きメモリページの現在の数。
slots
各メモリ スロットサイズ (8, 16, 32, 64, 128など) について、以下のデータが提供されます
used
使用中のメモリ スロットの現在の数。
free
空きメモリ スロットの現在の数。
reqs
指定されたサイズのメモリを割り当てようとした試行の総数。
fails
指定されたサイズのメモリ割り当てに失敗した回数。
upstreams
動的に設定可能なグループについて、以下のデータが提供されます
peers
サーバーについて、以下のデータが提供されます
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
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
アイドル状態のキープアライブ接続の現在の数。
zombies
グループから削除されたが、まだアクティブなクライアントリクエストを処理しているサーバーの現在の数。
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
このサーバーに転送されたクライアント接続の総数。
接続時間
アップストリームサーバーへの平均接続時間。バージョン 1.11.6 より前は、このフィールドは least_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」になった時刻(エポックからのミリ秒)。
selected
サーバーが最後に接続の処理に選択された時刻(エポックからのミリ秒)。
zombies
グループから削除されたが、まだアクティブなクライアント接続を処理しているサーバーの現在の数。
zone
グループの設定と実行時状態を保持する共有メモリ ゾーン の名前。

互換性