Apache | Apacheサーバー管理(mod_status) | 稼働状態の確認(server-status)

Apacheでは、mod_status モジュールに server-status というハンドラが用意されている。ハンドラとは、特定の動作を行う関数のようなもので、プログラムのまとまりと考えればよい。

server-status ハンドラを呼び出すことで、Apacheの稼働状況を確認できる。それでは、ブラウザから server-status ハンドラを呼び出して稼働状況を確認できるようにしてみよう。

mod_statusモジュールの読み込み

まず mod_status モジュールを利用できるように、LoadModule でモジュールを読み込む。httpd.conf ファイルで mod_status を検索すると、次のような内容が見つかるはずである。

#LoadModule status_module modules/mod_status.so

LoadModule の前に # がある場合は、# を削除する。

LoadModule status_module modules/mod_status.so

次に、server-status ハンドラを呼び出す設定を行う。Include を使用して httpd-info.conf ファイルを読み込む。httpd.conf ファイルで httpd-info.conf を検索すると、次のような内容が見つかるはずである。

# Real-time info on requests and configuration
#Include conf/extra/httpd-info.conf

Include の前に # がある場合は、# を削除する。

# Real-time info on requests and configuration
Include conf/extra/httpd-info.conf

httpd-info.confファイルの確認

次に、httpd-info.conf ファイルで /server-status を検索すると、次のような内容が見つかるはずである。

<Location /server-status>
    SetHandler server-status
    Require host .example.com
    Require ip 127
</Location>

Location を使用してURLパスを /server-status に設定しており、URLパス /server-status が呼び出されたときに server-status ハンドラを呼び出して実行する設定が SetHandler で指定されている。

このように記述すると、ブラウザで http://localhost/server-status をリクエストしたときに server-status ハンドラが実行され、結果が返される。 また、サーバーの稼働状況は誰にでも公開するものではないため、localhostからのみアクセスを許可する。

実行確認

ローカルで http://127.0.0.1/server-status にアクセスする。

server-status

このようにURLへアクセスできれば、上のようにApacheの稼働状態を監視できる。

指定した時間で自動更新

localhostから接続する際、URLにパラメータとして ?refresh=秒 のように付けると、指定した秒数ごとに最新情報を再取得する。

それでは、5秒単位で自動更新するように http://127.0.0.1/server-status?refresh=5 とURLを入力する。

server-status

上のように、5秒ごとに自動で最新情報を再取得して表示されることを確認できる。