apachetopをいれて使ってみる
apachetopをいれて使ってみる
0.改訂履歴
1.はじめに
このドキュメントでは,apachetopの導入と利用手順について説明する. apachetopとは,その名の通りUNIX系OSでは標準搭載に近いtopコマンドのapache版で,リアルタイムにapacheの解析が行える. リアルタイムといってもapacheのログファイルをウォッチしているのだが,リクエストされたファイル,HTTPのステータスコードやレスポンスタイムがわかるので,ちょっとした分析に便利だと考えられる. 今回,このプログラムを知ったのはJPCERT/CCによるセキュリティ勧告でセキュリティホールがあるというアナウンスがされたからである. なお,今回あまり調べていないので,このバージョンはセキュリティホールがあるものかもしれないので,用途によってはよく調べてから利用する.
なお,使用しているOSは,RedHat Linux ES3.0である.
2.モジュールを入手する
- Terminalを起動する.
- 今回は,RedHat ES3用のrpmを,理研のサーバからダウンロードした.
[shinnai@juno Download]$ wget http://ftp.riken.jp/Linux/dag/dries/packages/
apachetop/el3-i386/apachetop-0.12-1.1.el3.rf.i386.rpm
--10:44:46-- http://ftp.riken.jp/Linux/dag/dries/packages/apachetop/el3-i386/
apachetop-0.12-1.1.el3.rf.i386.rpm
=> `apachetop-0.12-1.1.el3.rf.i386.rpm'
Resolving ftp.riken.jp... 134.160.38.1
Connecting to ftp.riken.jp[134.160.38.1]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 31,612 [text/plain]
100%[====================================>] 31,612 --.--K/s
10:44:46 (465.50 KB/s) - `apachetop-0.12-1.1.el3.rf.i386.rpm' saved [31,612/
31,612]
[shinnai@juno Download]$
|
[shinnai@juno Download]$ ls -la apachetop-0.12-1.1.el3.rf.i386.rpm
-rw-rw-r-- 1 shinnai shinnai 31612 Jul 5 04:33 apachetop-0.12-1.1.el3.
rf.i386.rpm
[shinnai@juno Download]$
|
[root@juno Download]# rpm -ihv apachetop-0.12-1.1.el3.rf.i386.rpm
warning: apachetop-0.12-1.1.el3.rf.i386.rpm: V3 DSA signature: NOKEY, key ID
1aa78495
Preparing... ########################################### [100%]
1:apachetop ########################################### [100%]
[root@juno Download]#
|
[root@juno Download]# rpm -qa | grep apachetop
apachetop-0.12-1.1.el3.rf
[root@juno Download]#
|
[root@juno Download]# rpm -ql apachetop-0.12-1.1.el3.rf
/usr/sbin/apachetop
/usr/share/doc/apachetop-0.12
/usr/share/doc/apachetop-0.12/AUTHORS
/usr/share/doc/apachetop-0.12/ChangeLog
/usr/share/doc/apachetop-0.12/LICENSE
/usr/share/doc/apachetop-0.12/NEWS
/usr/share/doc/apachetop-0.12/README
/usr/share/doc/apachetop-0.12/TODO
/usr/share/man/man1/apachetop.1.gz
[root@juno Download]#
|
3.利用してみる
[root@juno logs]# ls -la
total 396
drwxr-xr-x 2 root root 4096 Oct 13 15:01 .
drwxr-xr-x 5 root root 4096 Oct 6 17:49 ..
-rw-r--r-- 1 root root 224693 Oct 13 00:27 acc_log.1128556800
-rw-r--r-- 1 root root 146175 Oct 14 10:47 acc_log.1129161600
-rw-r--r-- 1 root root 9012 Oct 12 01:57 err_log.1128556800
-rw-r--r-- 1 root root 873 Oct 13 23:01 err_log.1129161600
[root@juno logs]# /usr/sbin/apachetop -f acc_log.1129161600
|
- 現在利用されているログファイルを確認し,-fオプションでログファイルを指定する.
- 次のような画面になる.
last hit: 00:00:00 atop runtime: 0 days, 00:00:10 01:49:31
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 ( 10s): 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%)
|
- Webブラウザなどで該当サイトをアクセスしてみる.
last hit: 01:50:33 atop runtime: 0 days, 00:00:35 01:50:41
All: 18 reqs ( 0.5/sec) 0.0B ( 0.0B/sec) 0.0B/req
2xx: 0 ( 0.0%) 3xx: 18 ( 100%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%)
R ( 30s): 12 reqs ( 0.4/sec) 0.0B ( 0.0B/sec) 0.0B/req
2xx: 0 ( 0.0%) 3xx: 12 ( 100%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%)
2xx 3xx 4xx 5xx URL
0 8 0 0*/openex.js
0 11 0 0 /img/map_thum.gif
0 1 1 0 0 /img/5_thum.jpg
0 1 1 0 0 /img/3_thum.jpg
0 1 1 0 0 /img/6_thum.jpg
|
- リクエストされたファイルが確認できた.
- このまま放置しておくと,30秒でリフレッシュされて,画面情報ファイル一覧は消えてしまう.
- apachetopのコマンド一覧を確認する.
[root@juno logs]# /usr/sbin/apachetop -h
ApacheTop v0.12 - Usage:
File options:
-f logfile open logfile (assumed common/combined) [/var/log/httpd/access_log]
(repeat option for more than one source)
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 this help
Compile Options: -HAVE_KQUEUE -HAVE_FAM -ENABLE_PCRE
Polling Method: stat
[root@juno logs]#
|
- -Tオプションで秒数を指定すると,その時間画面上で過去のステータスを覚えている.
- デフォルトでは30秒分.