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;
    }
}

この設定でのstatusリクエストの例:

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からアクセス可能でしょう。この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) サーバステータス情報のコレクションを有効にします。幾つかのサーバは同じzoneを共有するかも知れません。

データ

次の状況情報が提供されます:

バージョン
提供されたデータセットのバージョン現在のバージョンは8です。
nginx_version
nginxのバージョン。
nginx_build
nginxビルド名。
address
ステータスのリクエストを受け付けたサーバのアドレス。
generation
設定のreloads の総回数。
load_timestamp
最後に設定をリロードした時間の、Epochからのミリ秒
timestamp
現在の時間のEpocからのミリ秒。
pid
ステータスリクエストを処理したワーカープロセスのID。
ppid
ワーカープロセスを開始したマスタープロセスのID。
processes
respawned
子プロセスが異常終了してrespawnされた総回数。
接続
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, and 5xx の応答の数
discarded
応答を送信せずに完了したリクエストの総数。
received
クライアントから受け取った総バイト数
sent
クライアントに送信した総バイト数
slabs
slabアロケータを使う各共有メモリについて:
pages
used
使用されたメモリページの現在の数。
free
フリーなメモリページの現在の数。
slots
各メモリスロットサイズ (8, 16, 32, 64, 128, etc.) については、以下のデータが提供されます:
used
使用されたメモリスロットの現在の数。
free
フリーなメモリスロットの現在の数。
reqs
指定されたサイズのメモリを割り当てようとした総回数。
fails
指定されたサイズのメモリを割り当てようとして失敗した数。
upstreams
動的に設定可能なグループについて、以下のデータが提供されます:
peers
サーバについて、以下のデータが提供されます:
id
サーバのID。
server
サーバのアドレス
名前
server ディレクティブで指定されたサーバの名前。
service
serverディレクティブの service パラメータ値。
バックアップ
サーバが バックアップ サーバかどうかを示す真偽値
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, and 5xx の応答の数
sent
このサーバに送信された総バイト数
received
このサーバから受け取った総バイト数
fails
サーバと通信に失敗した総数
unavail
失敗の試行数がmax_failsの閾値に達したためにサーバがクライアントのリクエストに使えなくなった(state "unavail")回数
health_checks
checks
health check リクエストの総数
fails
health checkに失敗した数
unhealthy
何回サーバがunhealthy(state "unhealthy")になったか
last_passed
最後のhealth checkリクエストが成功してtestsに通ったかの真偽値
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
サーバから full response を受け取った平均タイム (1.7.10)。バージョン 1.11.6以前では、least_time ロードバランシングメソッドを使っている場合のみフィールドが利用可能でした。
keepalive
現在のアイドル状態のkeepalive 接続の数
zombies
グループから削除されたが、まだアクティブなクライアントリクエストを処理しているサーバの現在の数。
zone
グループの設定と実行状態を保持する共有メモリzoneの名前。
キュー
リクエストキューについて、以下のデータが提供されます:
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
キャッシュから取り出されなかった応答の総数(proxy_cache_bypass などによる misses, expires または bypasses)
bytes
プロキシされたサーバから読み込んだ総バイト数
responses_written
キャッシュに書き込まれた総応答数
bytes_written
キャッシュに書き込まれた総バイト数
stream
server_zones
それぞれのstatus_zoneについて:
processing
現在処理されているクライアント接続の数。
接続
クライアントに受け入れられた接続の総数。
sessions
total
完了したクライアントセッションの総数。
2xx, 4xx, 5xx
ステータスコード 2xx, 4xx, あるいは 5xx で完了したセッションの数。
discarded
セッションを生成せずに完了した接続の総数。
received
クライアントから受け取った総バイト数
sent
クライアントに送信した総バイト数
upstreams
動的に設定可能なグループについて、以下のデータが提供されます:
peers
サーバについて、以下のデータが提供されます:
id
サーバのID。
server
サーバのアドレス
名前
server ディレクティブで指定されたサーバの名前。
service
serverディレクティブの service パラメータ値。
バックアップ
サーバが バックアップ サーバかどうかを示す真偽値
weight
サーバの重み付け
state
現在のステータス。“up”, “down”, “unavail”, “checking” あるいは “unhealthy” のいずれかでしょう。
active
現在の接続の数。
max_conns
サーバの max_conns 制限。
接続
このサーバに転送されたクライアント接続の総数。
connect_time
upstreamサーバへの接続の平均タイム。バージョン 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閾値に達することにより、サーバが利用不可能(state “unavail”) になった回数。
health_checks
checks
health check リクエストの総数
fails
health checkに失敗した数
unhealthy
何回サーバがunhealthy(state "unhealthy")になったか
last_passed
最後のhealth checkリクエストが成功してtestsに通ったかの真偽値
downtime
サーバが “unavail”, “checking” および “unhealthy” の状態であった総時間。
downstart
サーバが“unavail”, “checking” または “unhealthy” になった時の時間(Epochからのミリ秒)。
selected
サーバが接続を処理するように最後に選択されてからの時間(Epochからのミリ秒)。
zombies
グループから削除されたが、まだアクティブなクライアント接続を処理しているサーバの現在の数。
zone
グループの設定と実行状態を保持する共有メモリzoneの名前。

互換性

TOP
inserted by FC2 system