FPM の情報ページ

このページは、FPM の情報ページをセットアップする方法の説明と、 表示される内容について記しています。 fpm_get_status() も参照ください。

設定

FPM の情報ページは、 FPM プールの設定にある pm.status_path パラメータを設定することで有効にできます。

警告

セキュリティを考慮して、 FPM の情報ページへのアクセスは、 内部的なリクエスト または既知のクライアントIPからのリクエストに限定すべきです。 なぜなら、この情報ページはリクエストURLや、 利用可能なリソースに関する情報を晒してしまっているからです。

ウェブサーバーの設定によっては、 PHP スクリプトをバイパスさせ、 このパスへの直接アクセスを許可する必要があるかもしれません。 Unix Domain Socket(UDS) 経由で listen している FPM と Apache を設定する例は、下記のようになります。 ここでは、 pm.status_path/fpm-status を設定しています:

<LocationMatch "/fpm-status"> Order Allow,Deny Allow from 127.0.0.1 ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/fpm-status" </LocationMatch>

FPM とウェブサーバーをリロードまたは再起動した後、 情報ページがブラウザからアクセスできるようになっているはずです。 (IP アドレス制限が設定されている場合は、 リクエストが許可したIPアドレスから来ている場合に限ります)

クエリパラメータ

情報ページの出力フォーマットは、以下のクエリパラメータのうちひとつを指定することで変更できます:

  • html
  • json
  • openmetrics
  • xml

クエリパラメータ full を使うことで、 追加の情報を出力させることもできます。

情報ページのURLの例は、下記のとおりです:

  • https://localhost/fpm-status - デフォルトのテキストフォーマットで、概要を出力します。
  • https://localhost/fpm-status?full - デフォルトのテキストフォーマットで、全ての情報を出力します。
  • https://localhost/fpm-status?json - JSON で 概要を出力します。
  • https://localhost/fpm-status?html&full - HTML フォーマットで、全ての情報を出力します。

表示される情報

日付/時刻 の値は、JSON と XML 出力では Unixタイムスタンプを使います。 それ以外の場合は、 "03/Jun/2021:07:21:46 +0100" のようなフォーマットを使います。

基本情報 - 常に表示されます
パラメータ説明
poolFPM プロセスプールの名前
proccess managerプロセスマネージャーのタイプ - static, dynamic, または ondemand.
start timeプロセスプールが最後に起動した日付/時刻
start sinceプロセスプールが最後に起動してから経過した秒数
accepted conn受け入れた接続の合計数
listen queue空きのプロセスを待っている(backlogに入っている)現在のリクエスト数
max listen queueある一時点でlisten キューに入ったリクエストの最大数
listen queue len許可されているlisten キューの最大サイズ
idle processes(リクエストを待っている)現在アイドルなプロセス数
active processes現在リクエストを処理しているプロセス数
total processes現在のプロセスの合計数
max active processes同時にアクティブになったプロセスの最大数
max children reached プロセスの最大数に達したことがあるかを示します。 ある場合、表示は 1 になります。 ない場合、表示は 0 になります。
slow requests 設定した request_slowlog_timeout に到達したリクエストの合計
プロセス単位の情報 - 出力モードが full の場合にだけ表示されます
パラメータ説明
pidプロセスの PID
stateプロセスの状態 - Idle, Running, ...
start timeプロセスが起動した日付/時刻
start sinceプロセスが起動後、経過した秒数
requests処理したリクエスト数
request duration直近のリクエストを処理するのに使った時間の合計(ミリ秒単位)
request method直近のリクエストの HTTP メソッド
request uri 最後に処理したリクエストのURL(webサーバーが処理した後のもの。フロントコントローラーパターンを使っている場合、常に /index.php になる場合があります)
content length直近のリクエストの、body の長さ(バイト単位)
user直近のリクエストの HTTP ユーザー (PHP_AUTH_USER)
script 直近のリクエストで実行されたスクリプトのフルパス。 適用できない場合(例: FPM 情報ページへのリクエスト)は、 '-' になります。
last request cpu 直近のリクエストの、%cpu の値。 プロセスがアイドルでない場合、この値は0になります。 なぜなら、リクエストの処理が終わった時にこの値は計算されるからです。 この値は100%を超えることがあります。 なぜならこのメトリクスは、 直近のリクエストで使われたCPU時間の合計をパーセント単位で示すからです - つまりこの値はすべてのコアのプロセスを考慮しますが、 コアがひとつの場合は、100% になります。
last request memory 直近のリクエストが消費したメモリの最大値。 プロセスがアイドルでない場合、この値は0になります。 なぜなら、リクエストの処理が終わった時にこの値は計算されるからです。

注意:

プールに特有の全ての値は、FPM が再起動されるとリセットされます。

注意:

OpenMetrics フォーマットの出力は、 OpenMetrics に準拠した、異なるパラメータタイプを使います。 出力のパラメータとその説明は、 OpenMetrics フォーマット出力に含まれています。

変更履歴

バージョン説明
8.1.0openmetrics フォーマットが追加されました。
To Top