動作状況の確認

広告

Apacheでは「mod_status」モジュールに「server-status」と言うハンドラーが用意されています。(ハンドラーとはある動作をさせる関数のようなものです。プログラムの集まりだと考えておいて下さい)。

「server-status」ハンドラーを呼び出すことでApacheの動作状況を取得する事ができます。そこでブラウザから「server-status」ハンドラーを呼び出し、動作状況をブラウザ上で確認できるようにしましょう。

mod_statusモジュールの読み込み

まず「mod_status」モジュールを利用出来るように「LoadModule」でモジュールを読み込みます。「httpd.conf」ファイルで「mod_status」で検索して下さい。デフォルトでは109行目付近に記述があります。

#LoadModule status_module modules/mod_status.so

先頭に「#」が記述されている場合は「#」を外して下さい。

LoadModule status_module modules/mod_status.so

次に「server-status」ハンドラーを呼び出す設定をします。Apache2.2系では「httpd-info.conf」ファイルに設定を記述します。その為「Include」を使って「httpd-info.conf」ファイルを読み込みます。「httpd.conf」ファイルで「httpd-info.conf」で検索して下さい。デフォルトでは471行目付近に記述があります。

# 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」ファイルを編集します。まずクライアントからどのように呼び出すかのURLを指定します。通常は「/server-status」で呼び出すように設定するようです。そこで「Location」を使って「/server-status」と言うURLパスに対する設定を記述します。

<Location /server-status>
  ...
  ...
</Location>

まず「/server-status」と言うURLパスで呼ばれた時に「server-status」ハンドラーを呼び出して実行する設定を「SetHandler」を使って行います。

<Location /server-status>

    SetHandler server-status

</Location>

このように記述すると「http://localhost/server-status」とブラウザからリクエストがあった場合、「server-status」ハンドラを実行して結果を返してくれます。

またサーバの動作状況は誰にでも公開するものではありません。そこでローカルホストからのみアクセスを許可します。設定の最終的な形は次のようになります。

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost
</Location>

上記を「httpd-info.conf」ファイルに記述して下さい。(デフォルトでほぼ同じ内容が書かれていますが「localhost」の前に「.」が付いている場合があります)。

実際に試してみる

ではローカルホストから「http://localhost/server-status」へアクセスして下さい。

server-status

無事アクセスできれば上記のようにApacheの動作状況をモニタリングできます。

指定した時間で自動更新

ローカルホストからアクセスする際にURLの末尾に「?refresh=秒数」と記述すると、指定した秒数毎に最新の情報を取得しなおすようになります。

では5秒単位で自動更新してみます。「http://localhost/server-status?refresh=5」と言うURLでアクセスして下さい。

server-status

server-status

上記のように5秒単位で自動的に最新の情報を取得しなおして表示します。

( Written by Tatsuo Ikura )