日志监控与分析:

1,ApacheTop

通过apachetop这个工具可以动态的查看apache的日志文件,还可以直观的看到访问的每个地址的请求数、速度及流量等信息。

安装apachetop

# rpm -ivh  http://mirrors.sohu.com/fedora-epel/6Server/x86_64/epel-release-6-8.noarch.rpm

# yum install apachetop

使用apachetop监控apache日志

# apachetop -f /usr/local/apache22/logs/access_log

wKioL1O6U2exKFdvAAN1cn59gRw303.jpg

简单解释一下前五行数据:

第一行左中右,分别是上次点击时的时间、apachetop运行总时间、现在的时间。

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

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

几个常用的参数说明:

# apachetop –h //查看参数帮助

-f:logfile打开被监控的日志文件

-H hits:窗口显示最新的hits条访问记录.例:-H 10

-T sec:窗口显示的url访问记录清空时间间隔,默认30秒..

-d secs:窗口显示的数据刷新时间,默认5秒刷新一次.例:-d 2

一般监控时应该把-T设置时间长一些、-d设置时间短一些吧,-H不用设,好像默认是没有限制的,呵呵,我是这么觉得!

例:# apachetop -f /usr/local/apache22/logs/access_log -T 1000 -d 2

监控时可执行的窗口命令:

ONE-TOUCH COMMANDS

d          : 切换urls/referrers/hosts显示模式开关 

n          : 切换hits & bytes或返回代码开关

h or ?     : 帮助信息

p          : (un)暂停显示 (冻结更新)

q          : 退出 ApacheTop

up/down    : 移动星标 up/down

right/left : 进入/退出逐条显示模式

子菜单:

s:  排序: [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:  固定显示 ON/OFF:

       u) urls  r) referrers  h) hosts


f:  使用过滤器:

       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

这里主要说一下过滤器的使用,在监控窗口内,按f键,打开过滤菜单如下:按h键或?键,在命令窗口和监控窗口之间切换。

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

再按a键,选择过滤器的添加/编辑选项然后出现如下菜单:

filters: add.. u) to URLS r) to REFERRERS h) to HOSTS

选择用网址过滤,按u键,在窗口左下角出现Filter:,输入关键字,按回车就可以过滤了!


2,GoAccess

GoAccess 是一个用来统计 Apache Web 服务器的访问日志的工具,可即时生成统计报表,速度非常快。
项目地址 http://sourceforge.net/projects/goaccess/
300M的日志10秒就分析完了。在网站被***的时候用于快速定位非常有用。
在Centos下的安装步骤如下:

# yum install glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-devel


如果yum库找不到Geo-IP 那么需要单独安装了

# cd /usr/local/src

# wget wget  http://sourceforge.net/projects/goaccess/files/0.5/goaccess-0.5.tar.gz/download

# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz


安装GeoIP库
# tar xzvf GeoIP-1.4.6.tar.gz
# cd GeoIP-1.4.6
# ./configure && make && make install
# mv GeoIP.dat.gz /usr/local/share/GeoIP/


安装goaccess
# tar xzvf goaccess-0.5.tar.gz
# cd goaccess-0.5
# ./configure --enable-geoip --enable-utf8  

# make && make install

启动参数介绍:

   -b 流量消耗统计,如果想要提高解析速度,不要开启这个选项。缺省值为不开启此选项
    -f 日志文件路径。
    -s HTTP 状态码报告,为了能够更好的解析日志,选项被默认关闭。
    -e 指定IP地址的访问统计。
    -a 通过代理的请求统计。

菜单介绍:

    F1 帮助菜单
    F5 刷新
    q 退出当前口窗、菜单、或是当前查看的选项
    o 打开当前的选项、菜单
    c 改变窗口配色(目前只有两种 默认和绿色)
    SHIFT + TAB 从当前选定模块向后切换
    RIGHT 打开当前选中模块,查看详细信息
    s 通过日期排序,只会在访问请求模块起作用
    S 通过点击次数排序,只会在访问请求模块起作用
    / 查看详细信息的窗口进行搜索
    n 通过/进行查找后,查找下个匹配的内容的位置,如果没有则在窗口底部显示“search hit BOTTOM”
    t 在查看详细信息窗口,移动指针到最顶部
    b 在查看详细信息窗口,移动指针到最底部

使用实例:

最简单、快速的使用方式
     goaccess -f access.log

产生完整、全面统计数据的使用方式
     goaccess -f access.log -a -s -b

用压缩包直接分析
    zcat access-2012-10-10.log.tar.gz | goaccess 


3,Analog

4,AWStats

5,Google Analytics

6,SiteMeter

7,Webalizer


压力测试工具:

1,Siegi

2,httperf + autobench

3,Webbench

4,http_load

5,webload

6,Pylot

7,OpenSTA

8,Multi-Mechanize

9,JMeter