Web日志监控工具-Apachetop
2014-10-23 09:49:22 阿炯

Apachetop工具可以动态的查看apache的日志文件,还可以直观的看到访问的每个地址的请求数、速度及流量等信息。服务器的实时运行情况,比如哪些URL的访问量最大,服务器每秒的请求数等等。如果你在使用Nginx,它也有款类似的工具,但是还是不如apachetop给的那么详细。采用Apachev2.0协议授权。


This is a console-based (non-gui) monitoring tool which reads the server-status pages from one or more Apache servers and combines the information onto one easy monitoring screen. It displays the current number of reads, writes, keepalives etc, plus the overall number of requests/hits processed, the amount of data transferred, the number of requests & data processed per second since the Apache servers were started, and the 'current' per second numbers.

安装过程:
wget http://www.webta.org/apachetop/apachetop-0.12.6.tar.gz
yum install readline-devel
yum install ncurses-devel
或在debian下
apt-get install ncurses-dev
apt-get install libreadline5-dev

tar xvzf apachetop-0.12.6.tar.gz
cd apachetop-0.12.6
./configure
make

命令行参数

默认情况下,apachetop 会在 apache http 服务器的默认日志路径上面来查找日志文件,以便于通过这些日志文件来生成实时检测报告,但如果你的日志文件没有在默认的位置,那么 apachetop 就没办法 找到它了。 这时候可以使用 -f 参数来明确的指定日志文件的位置。

apachetop 的列表视图,默认情况下是不显示出 URL 参数的, 如果你还需要显示 URL 参数,那么可以使用 -q 参数。

apachetop 会使用一个缓存区域来存放一定数量的日志记录,以生成最终的实时检测报表,默认情况下会以保存 30 秒之内的请求记录。它提供了两个参数可以让你来控制这个缓存区的大小。

-H num 以请求数来计算,比如你想让 apachetop 记录 1000 次点击之内的情况。

-T sec 以时间进行来计算,比如记录 20秒之内的请求。


显示如下图所示:


简单解释一下前五行数据:
第一行左中右,分别是上次点击时的时间、apachetop运行总时间、现在的时间。

第二行和第四行,表示的意义基本相同,都表示的是请求数、平均每秒请求数、平均每秒传输量、平均每请求传输量; 不同的是,第二行是从apachetop开始运行计算的,第四行是从上一次清空请求时开始计算的,在行首的括号里的时间,这个时间和下面提到的-T和-d参数是有关系的,-T是多少,这个时间最大就是多少,-d是多少,这个时间就一次增加几,直到和-T的时间相等,就不变了。

第三行和第五行表示的意义相同,表示的是 2xx/3xx/4xx/5xx 这四种类型 breakdown of return codes的请求数及所占总请求数的百分比。

再往后的数据则从访问量大小排列出了是哪些程序在被访问,格式照上也很好理解。

还有几个很有用的参数值的学习一下:
-f:这个参数指定了apachetop命令观察的对象。并不是每个人的apache的日志都在默认的位置,甚至你为了统计的方便,使用多个日志文件来区分不同的端口(80、443)、正确和错误的访问日志等等。这个时候可以使用这个参数来指定log文件,尤其有用的是,你可能需要同时查看多个log的情况,这时你可以多次使用-f参数来制定,如: apachetop -f file1 -f file2。

-d:默认情况下,显示界面每5秒刷新一次,如果你觉得刷新频率不爽,你可以使用这个参数来做改变。

-T:上面的例子中,我们在最后面看到的是最近30秒的情况。如果你觉得密度不够,可以使用这个参数来做改变。

-H:还是上面的例子,可以看到最近30秒的请求总数是:1606+85+1+0=1692次。如果你想让每请求N次刷新一次界面怎么办?哈,就是使用这个命令了!

注意:-T和-H参数是不能同时使用的,否则会提示你:“-T and -H are mutually exclusive. Specify only one.”
-q:有一些程序,在使用的时候是可以带参数的,即get方式。如果你想看看都是些什么参数,就可以使用这个命令了!

最新版本:0.12


项目主页:
http://www.webta.org/projects/apachetop/

http://code.google.com/p/apachetop/