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- 設定の最後のリロード時刻(エポックからのミリ秒)。
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_checksdowntime- サーバーが「
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_checksdowntime- サーバーが「
unavail」、「checking」、および「unhealthy」状態であった合計時間。 downstart- サーバーが「
unavail」、「checking」、または「unhealthy」になった時刻(エポックからのミリ秒)。 selected- サーバーが最後に接続の処理に選択された時刻(エポックからのミリ秒)。
zombies- グループから削除されたが、まだアクティブなクライアント接続を処理しているサーバーの現在の数。
zone- グループの設定と実行時状態を保持する共有メモリ ゾーン の名前。
互換性
- http および stream アップストリームの zone フィールドは、バージョン 8 で追加されました。
- slabs ステータスデータは、バージョン 8 で追加されました。
- checking 状態は、バージョン 8 で追加されました。
- http および stream アップストリームの name フィールドと service フィールドは、バージョン 8 で追加されました。
- nginx_build フィールドと ppid フィールドは、バージョン 8 で追加されました。
- sessions ステータスデータと、ストリーム server_zones の discarded フィールドは、バージョン 7 で追加されました。
- zombies フィールドは、バージョン 6 で nginx デバッグ バージョンから移動されました。
- ssl ステータスデータは、バージョン 6 で追加されました。
- server_zones の discarded フィールドは、バージョン 6 で追加されました。
- queue ステータスデータは、バージョン 6 で追加されました。
- pid フィールドは、バージョン 6 で追加されました。
- upstreams 内のサーバーのリストは、バージョン 6 で peers に移動されました。
- アップストリームサーバーの
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 で追加されました。