WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

mod_statusによるApache動作情報の取得

   

mod_statusとは

mod_statusは、Apacheの動作状況と性能に関する情報を提供するモジュールです。

mod_statusの有効化

まず、mod_statusがコンパイル時に組み込まれているかどうかを確認します。

$ sudo apache2 -l
Compiled in modules:
  core.c
  mod_log_config.c
  mod_logio.c
  prefork.c
  http_core.c
  mod_so.c

コマンドの実行結果として出力されるモジュールの一覧にmod_status.cがあればすでに組み込まれています。
上例のように、組み込まれていない場合は設定ファイルのExtendedStatusディレクティブを”ON”にして有効化します。

$ vi /etc/apache2/mods-available/status.conf
ExtendedStatus On

CentOSなどRed Hat系のディストリビューションではhttpd.conf 内の”#LoadModule status_module modules/mod_status.so”のコメントアウトを解除してください。

$ vi /etc/httpd/conf/httpd.conf
LoadModule status_module modules/mod_status.so

設定ファイルの編集がしたらApacheを再起動して設定を反映させてください。

情報の取得

httpを経由してローカルホストのserver-statusというパス(http://your.server.name/server-status?auto)にアクセスすると、mod_statusが提供する情報を取得することができます。

$ curl "http://127.0.0.1/server-status?auto"
Total Accesses: 593278
Total kBytes: 1544617
CPULoad: .000590889
Uptime: 1533284
ReqPerSec: .386933
BytesPerSec: 1031.57
BytesPerReq: 2666.01
BusyWorkers: 4
IdleWorkers: 4
Scoreboard: _..GG........_.W.G_..................._.........................................................................................................................................................................................................................

autoはHTMLによるマークアップなどを省くためのパラメータです。
ブラウザからアクセスする場合は”http://127.0.0.1/server-status”のようにautoを省くとHTMLで整形された情報を見ることができます。

また、”http://127.0.0.1/server-status?refresh=5″のようにrefreshパラメータを付加すると、指定した秒数の間隔で自動的に最新の情報に更新してくれます。

デフォルトでローカルホストからのアクセスだけを許可するようにIP制限がかかっているので、監視サーバなど任意のサーバからのアクセスを許可したいときは適宜設定ファイルを編集する必要があります。

 - WEBサーバ構築 ,