tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

apachetopでアクセス状況、負荷状況を手軽にモニタリング&フィルタリングするメモ(インストールから使い方まで)

はじめに

サーバ状況の手軽なモニタリングの代表といえばtopコマンドですが、
そんなtopコマンドライクにapacheのアクセス状況や負荷状況を手軽にモニタリングできるapachetopというツールがあります

周りでも使ったことないor知らない人もちょこちょこいたので紹介がてらにメモ
(これ見ればわかるよっていう手抜き用w)

ながれ

  1. 入れてみた環境
  2. インストール
  3. 使ってみる

1. 入れてみた環境

# cat /etc/redhat-release
CentOS release 6.5 (Final)

# uname -a
Linux hoge.co.jp 2.6.32-431.el6.x86_64 #1 SMP Mon Dec 16 12:35:39 JST 2013 x86_64 x86_64 x86_64 GNU/Linux


# /usr/local/apache-2.4/bin/apachectl -v
Server version: Apache/2.4.4 (Unix)
Server built:   Dec 20 2013 16:03:49

2. インストール

インストールはrpmで行います(yumこちらを参考に)

rpmをチョイス

64bitOSなのでrpmも64のものをこちらからチョイス
http://pkgs.repoforge.org/apachetop/

チョイスしたrpmをインストール

rpmwgetして下記のようにインストール

# cd /usr/local/src

# wget http://pkgs.repoforge.org/apachetop/apachetop-0.12.6-3.el6.rf.x86_64.rpm

# rpm -Kv apachetop-0.12.6-3.el6.rf.x86_64.rpm

# rpm -ivh --nodeps apachetop-0.12.6-3.el6.rf.x86_64.rpm
オプションを軽く補足
オプション 説明
-K, –checksig パッケージ署名を検査
-v, –verbose 進捗メッセージなど、より多くの情報を画面表示
-i, –install パッケージをインストール
-h, –hash インストール状況を「#」と割合で表示す

参考
RPMパッケージの管理に使うRPMコマンド使えるオプション一覧

3. 使ってみる

使い方

基本的な使い方はこうコマンドを打つだけです
オプションについては後述で少し触れます

# /usr/bin/apachetop -f 'accessログのパス'
表示

表示はこんな感じになります。

アクセスがないとき
last hit: 00:00:00         atop runtime:  0 days, 00:00:00             06:56:15
All:            0 reqs (   0.0/sec)          0.0B (    0.0B/sec)       0.0B/req
2xx:       0 ( 0.0%) 3xx:       0 ( 0.0%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)
R (  1s):       0 reqs (   0.0/sec)          0.0B (    0.0B/sec)       0.0B/req
2xx:       0 ( 0.0%) 3xx:       0 ( 0.0%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)
アクセスがあるとき
last hit: 06:56:29         atop runtime:  0 days, 00:00:15             06:56:30
All:           18 reqs (   6.0/sec)        463.3K (  154.4K/sec)      25.7K/req
2xx:      14 (77.8%) 3xx:       4 (22.2%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)
R ( 15s):      18 reqs (   1.2/sec)        463.3K (   30.9K/sec)      25.7K/req
2xx:      14 (77.8%) 3xx:       4 (22.2%) 4xx:     0 ( 0.0%) 5xx:     0 ( 0.0%)

 REQS REQ/S    KB KB/S URL
    2  0.67  77.2 25.7*/mypage
    2  0.67   0.0  0.0 /
    1  1.00   4.0  4.0 /js/libs/jquery.enqt.js
    1  1.00  11.5 11.5 /js/mypage/main.js
    1  1.00   2.0  2.0 /js/libs/jquery.htmlaudio.js
    1  1.00  34.2 34.2 /js/project.js
    1  1.00   4.3  4.3 /js/common.js
    1  1.00  25.8 25.8 /js/libs/preloadjs-0.3.1.min.js
    1  1.00 115.8  116 /img/project/parts/640/base.png
    1  1.00 106.6  107 /img/project/parts/640/back_hair.png
    1  1.00  53.8 53.8 /img/project/parts/640/body.png
    1  1.00   0.1  0.1 /img/project/parts/640/face.png
    1  1.00   2.0  2.0 /img/project/parts/640/closed_mouth.png
    1  1.00  15.0 15.0 /img/project/parts/640/closed_eyes.png
    1  1.00  10.9 10.9 /img/project/parts/640/eye.png
オプションとか

オプションは大きくわけて実行時オプション実行中オプションがあります

実行時オプション

-hでhelpが見れますが、良く使うのを列挙しておきます

オプション 説明
-T [n] n秒ごとモニタリング
-d [n] n秒ごとに描画
-H [n] n数分表示。-Tと併用は不可
-s [n] URLを第nセグメントまで表示
実行中オプション(フィルタリング)

基本的な使い方として、実行中にfを押すとフィルタリングメニューが表示されます
こんな感じで選択肢が表示されるのでそれにしたがってフィルタリングしましょう

 filters.. a) add/edit menu  c) clear all  s) show active

f→a→u→'mypage'と入力した場合

'mypage'という文字列を含むアクセスについてフィルタリング

  • その他オプション

その他のオプションをあげておきます
表の見方ですが、階層になってるところはtype1→type2→type3と順番にタイプするイメージです。
(上記の例でいうf→a→uとたどる)

type1 type2 type3 説明or例
f フィルタ選択
a add/editフィルタ選択
u type3の後入力した文字列でurlでフィルタ
r type3の後入力した文字列でreferrerでフィルタ
h type3の後入力した文字列でhostでフィルタ
c フィルタクリア
s sortフィルタ
d 繰り返し押すとurl、host、referrerについてを表示切り替え
↑or↓ 詳細を表示したい行(*)のついた行)を切り替え
→or← *が付いてるアクセスについて詳細表示⇔通常表示を切り替え
  • 終わりにする

終わりにするときはtopと同じでqと入力するだけです

まとめ

真新しいものではないですが、
アクセスについてのモニタリングには結構役立つので使ってみてはいかがでしょうか!
enjoy!╭( ・ㅂ・)و