このページは、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"
のようなフォーマットを使います。
パラメータ | 説明 |
---|---|
pool | FPM プロセスプールの名前 |
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
に到達したリクエストの合計
|
パラメータ | 説明 |
---|---|
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になります。 なぜなら、リクエストの処理が終わった時にこの値は計算されるからです。 |
last request memory | 直近のリクエストが消費したメモリの最大値。 プロセスがアイドルでない場合、この値は0になります。 なぜなら、リクエストの処理が終わった時にこの値は計算されるからです。 |
注意:
プールに特有の全ての値は、FPM が再起動されるとリセットされます。
注意:
OpenMetrics フォーマットの出力は、 OpenMetrics に準拠した、異なるパラメータタイプを使います。 出力のパラメータとその説明は、 OpenMetrics フォーマット出力に含まれています。
バージョン | 説明 |
---|---|
8.1.0 | openmetrics フォーマットが追加されました。 |