元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2008/10/12

Apacheやlighttpdへのアクセス状況をリアルタイムで確認できる「ApacheTop」を使ってみた


ApacheなどのWebサーバを運用していると、たまにリアルタイムで今現在の利用状況や負荷などがどうなっているかを確認したくなるときがあります。

そこで、UNIX/Linuxの"top"ライクに、Apacheの使用状況を確認することができるのが「ApacheTop」と呼ばれるツールです。


インストール

インストールはパッケージ管理されているものを使うので簡単です。


$ sudo apt-get install apachetop

UbuntuやDebianなど、APTを使っているなら↑のような感じ。

$ sudo yum install apachetop

Fedoraなど、YUMを使っているなら↑のような感じです。


早速使ってみる

使い方は、"-f"オプションでApacheのログファイルを指定して使います。

$ apachetop -f /var/log/apache2/access_log

上記コマンドを実行すると、↓のような"top"ライクな表示画面が出て、リアルタイムでApacheのアクセス状況が確認できます。

ちなみに"-f"オプションを省略すると、デフォルトで"/var/log/httpd/access_log"を確認してくれるようです。

また、ログは"common"もしくは"combined"形式である必要があるとのこと。ログフォーマットを変更している場合などには使えないかもしれません。


last hit: 16:39:38         atop runtime:  0 days, 00:02:42             16:39:39
All:          457 reqs (   3.2/sec)       1615.2K (   11.1K/sec)    3619.1B/req
2xx:     167 (36.5%) 3xx:     288 (63.0%) 4xx:     2 ( 0.4%) 5xx:     0 ( 0.0%)
R ( 30s):     116 reqs (   3.9/sec)        332.0K (   11.1K/sec)    2930.6B/req
2xx:      23 (19.8%) 3xx:      93 (80.2%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)

 REQS REQ/S    KB KB/S URL
    5  0.29 217.4 12.8*/
    5  0.36   1.0  0.1 /services/menu.js
    4  0.31   0.8  0.1 /services/footer.js
    4  0.31   0.1  0.0 /images/skip/icons/.png
    3  0.23  69.8  5.4 /rss.xml
    3  0.25   2.2  0.2 /mypage/ado_antennas/
    3  0.25   2.6  0.2 /mypage/load_rss_feed
    1  0.14   0.0  0.0 /javascripts/skip/effects.js
    1  0.14   8.6  1.2 /feed/recent_blogs/
    1  0.14   0.0  0.0 /javascripts/skip/controls.js
    1  0.14   0.0  0.0 /javascripts/skip/slider.js
    1  0.17   0.0  0.0 /images/arrow.jpg
    1  0.17   0.7  0.1 /favicon.ico
    1  0.17   0.0  0.0 /javascripts/skip/ufo.js
    1  0.17   0.0  0.0 /javascripts/application.js
    1  0.20   0.0  0.0 /javascripts/skip/skip_util.js
    1  0.20   0.0  0.0 /javascripts/skip/jquery.nyroModal.js
    1  0.20   0.0  0.0 /javascripts/skip/jquery.bgiframe.min.js
    1  0.20   0.0  0.0 /javascripts/skip/jquery.dimensions.js
    1  0.14   0.0  0.0 /javascripts/skip/dragdrop.js
    1  0.25   0.0  0.0 /javascripts/skip/jquery.autocomplete.js
    1  0.25   0.0  0.0 /javascripts/skip/jquery.jTagging.js
    1  0.14   0.0  0.0 /images/skip_download_logo.jpg
    1  0.25   0.1  0.0 /search
    1  0.25   0.0  0.0 /images/skip/icons/server_link.png
    1  0.25   0.0  0.0 /images/skip/icons/bullet_blue.png
    1  0.33   0.0  0.0 /images/skip/icons/bullet_green.png
    1  0.33   0.0  0.0 /images/skip/icons/door.png
    1  0.33   0.0  0.0 /images/skip/icons/report.png
    1  0.33   0.0  0.0 /images/skip/icons/book_open.png
    1  0.33   0.0  0.0 /images/skip/icons/disk_multiple.png
    1  0.33   0.0  0.0 /images/skip/icons/house.png
    1  0.33   0.0  0.0 /images/skip/icons/vcard.png
    1  0.33   0.0  0.0 /images/skip/icons/cog.png
    1  0.33   0.0  0.0 /images/default_picture.png
    1  0.33   0.0  0.0 /stylesheets/skins/silver/back.png
    1  0.33   0.0  0.0 /images/skip/icons/group.png

こんな感じ。

デフォルトで使用すると、直近の30秒でのアクセスに対してモニタされて、5秒毎に画面表示が更新されます。


オプション

ヘルプによるといくつかオプションがあります。

$ apachetop -h

ヘルプについては上記のコマンド、もしくは"man apachetop"を実行することで確認できるかと思います。


URL/host/referrer munging options:
  -q          keep query strings [no]
  -l          lowercase all URLs [no]
  -s num      keep num path segments of URL [all]
  -p          preserve protocol at front of referrers [no]
  -r          resolve hostnames/IPs into each other [no]

Stats options:
  Supply up to one of the following two. default: [-T 30]
  -H hits     remember stats for this many hits
  -T secs     remember stats for this many seconds

  -d secs     refresh delay in seconds [5]

実行時のオプションについては、↑の通りです。

  • "-H"オプション
    • 直近の指定されたアクセス数を対象に表示
  • "-T"オプション
    • 直近で指定された秒数でのアクセスを対象に表示
  • "-d"オプション
    • 画面表示の更新周期

よく使うのは、こんなところです。

"-H"や"-T"オプションで大きめの数字を入力しておけば、解析元データが多く取られるため、長時間の統計を見ることも可能ですし、"-d"オプションを小さくすることで更新周期が短くなるので、よりリアルタイム性の高いデータを確認することが可能です。


ApacheTop version 0.12.6, Copyright (c) 2003-2004, Chris Elsworth

ONE-TOUCH COMMANDS
d          : switch item display between urls/referrers/hosts
n          : switch numbers display between hits & bytes or return codes
h or ?     : this help window
p          : (un)pause display (freeze updates)
q          : quit ApacheTop
up/down    : move marker asterisk up/down
right/left : enter/exit detailed subdisplay mode

SUBMENUS:
s:  SORT BY: [the appropriate menu will appear for your display]
        r) requests  R) reqs/sec  b) bytes  B) bytes/sec
        2) 2xx   3) 3xx   4) 4xx   5) 5xx

t:  TOGGLE SUBDISPLAYS ON/OFF:
        u) urls  r) referrers  h) hosts

f:  MANIPULATE FILTERS:
        a) add/edit menu c) clear all  s) show active (not done yet)
        a:  ADD FILTER SUBMENU
                u) to urls  r) to referrers  h) to hosts

apachetopを実行中のときに使うコマンドが上記です。"h"キーを押すと↑のヘルプが参照できます。

  • "d"コマンド
    • URL、リファラ、アクセス元の表示切替え
  • "n"コマンド
    • HTTPレスポンスのステータスコードの表示
  • "p"コマンド
    • Pause、その時点のもので固定表示
  • "s"コマンド
    • 表示内容を各項目でソートして表示

と、よく使うのはこんなところ。

リアルタイムにステータスコードの解析ができるのは、地味に便利かもしれません。


Apache以外でも使える

「ApacheTop」は、"Apache"から出力されるログデータを元に解析しているので、Apacheのログに準拠したWebサーバであれば、利用可能だと思います。

例えば、↓は"lighttpd"のアクセスログで試してみたのですが、問題なく動作を確認することが出来ました。


last hit: 08:57:03         atop runtime:  0 days, 00:01:30             08:57:08
All:          224 reqs (   2.7/sec)       4606.1K (   55.5K/sec)      20.6K/req
2xx:     219 (97.8%) 3xx:       5 ( 2.2%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)
R ( 30s):      62 reqs (   2.1/sec)       1405.6K (   46.9K/sec)      22.7K/req
2xx:      59 (95.2%) 3xx:       3 ( 4.8%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)

 REQS REQ/S    KB KB/S URL
    4  0.15   7.0  0.3*/mypage/ado_antennas/
    4  0.15 172.0  6.4 /
    4  0.16  61.5  2.5 /stylesheets/skip.style.css
    4  0.17   5.0  0.2 /stylesheets/skins/green/skin.css
    4  0.17   1.7  0.1 /stylesheets/mypage.css
    4  0.17   4.0  0.2 /stylesheets/skip/jquery.autocomplete.css
    4  0.17  10.4  0.4 /stylesheets/skip/nyroModal.full.css
    4  0.22   3.5  0.2 /mypage/load_rss_feed
    4  0.17   7.8  0.3 /stylesheets/groups.css
    4  0.22   5.2  0.3 /services/footer.js
    4  0.21   9.4  0.5 /services/menu.js
    3  0.12 540.5 22.5 /javascripts/prototype.all.js
    3  0.17 186.3 10.4 /pictures/picture/2.png
    2  0.10  21.5  1.0 /javascripts/skip/ufo.js
    2  0.09 333.9 14.5 /javascripts/jquery.all.js
    2  0.11   3.0  0.2 /images/skip/indicator.gif
    2  0.10  19.8  1.0 /javascripts/application.js
    2  0.10  11.6  0.6 /javascripts/skip/skip_util.js
    2  0.08   1.5  0.1 /favicon.ico

Webサーバの状況をリアルタイムに確認したい場合の1つの手段としてご参考になれば。


関連リンク


アクセスログ解析の教科書

アクセスログ解析の教科書

  • 作者: (有)いなかどっとコム, 石井研二
  • 出版社/メーカー: 翔泳社
  • 発売日: 2004/09/17
  • メディア: 単行本

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/rx7/20081012/p2

オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)