あまり知られていないApacheの小技を1つ紹介する。

Apacheのリアルタイムなアクセス統計情報を表示させるために「mod_status」を利用する。(※おそらく大抵のconfigでデフォルトでこの記述があるはず)
まずは、mod_statusを読み込む必要があるため、httpd.confに以下を追加する。

LoadModule status_module modules/mod_status.so

続いて、ステータスレポート(リアルタイムの統計情報)を表示させたいコンテキスト内(サーバ設定ファイルorバーチャルホスト)で

Status を使用可能にする

example.com ドメインからのブラウザのみに対して ステータスの報告を使用可能にするには 以下のコードを httpd.conf 設定ファイルに追加します

<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .example.com
</Location>

引用元: mod_status - Apache HTTP サーバ

上記マニュアルにある通り、以下の設定を記述する。

<Location /server-status>
    SetHandler server-status

    Order Deny,Allow
    Deny from all
    Allow from 許可するホスト または IPアドレスのリスト
</Location>

で、Apache再起動の後に、http://○○○/server-status/ へアクセスすると・・・

status1

のような画面が表示される。
表示される内容は以下の通り。(マニュアル抜粋)

* リクエストを扱っているワーカーの数
* アイドル (訳注: リクエストを扱っていない) ワーカーの数
* サーバが起動もしくは再起動された時刻と動作している時間

但し、このままでは表示出来る情報がそれほど多くないので、

ExtendedStatus On

とすることで(この設定のコンテキストは「サーバ設定ファイル」のみ/バーチャルホスト内では使えない)

status3

上記の通り「ExtendedStatus Off」の時と比べて

* 各ワーカーの状態、ワーカーが扱ったリクエストの数、 ワーカーが送った総バイト数
* 総アクセス数と総バイト数
* 平均の 1 秒あたりのリクエスト数、1 秒あたりの送られたバイト数、 リクエストあたりのバイト数
* 各ワーカーと Apache 全体で使用されている CPU の割合
* 現時点のホストと処理されているリクエスト

上記情報が追加される。
これらの情報があれば問題発生時に色々と切り分け出来るのだが、その切り分け方法については後日・・・(多分書かない)

関連する投稿

このエントリは 2009年1月20日 07:41:09に投稿されました。 apacheの下にカテゴリされています。 RSS 2.0フィードを通してこのエントリのコメントをフォローすることが出来ます。 コメントするか、あなた自身のサイトからトラックバック出来ます。

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

コメントする?