| 前 言 |
通过我们构建的HTTP服务器将Web发布后,随着不断被访问,Apache会记下每个访客的基本信息。CentOS的情况下,这些信息通常保存在位于/var/log/httpd/下的相应日志文件中。但Apache单调的日志,除了提供给我们一些最基本的服务器被访信息、以及出错信息之外,我们很难单纯的通过日志文件得到更多、更系统的关于时间、规律性、地点方面的信息。这也使得很难通过单纯的日志去系统的分析流量。
但通过Awstats,我们可以把Apache的日志作为一种有效资源,获得更加系统化的信息。
实质上,Awstats就是一套分析系统,它将日志文件统计学式的进行分析与统计,然后提供一个能够反映规律性的界面给我们。Awstats并不是仅能应用于分析Apache的日志,在邮件服务器等等方面,它也被广泛的应用。但在这一节中,只介绍在Web服务器中运用Awstats建立统计系统的方法。
|
首先下载并安装Awstats。
| wget http://nchc.dl.sourceforge.net/sourceforge/awstats/awstats-6.5-1.noarch.rpm ← 下载Awstats的rpm包 rpm -ivh awstats-6.5-1.noarch.rpm ← 安装Awstats |
然后删除安装后的遗留源文件。
| rm -f awstats-6.5-1.noarch.rpm ← 删除安装后的遗留源文件 |
|
接下来对Awstats进行初始配置。
| /usr/local/awstats/tools/awstats_configure.pl ← 运行初始配置脚本
y ← 选择y,同意安装到默认目录下 /etc/httpd/conf/httpd.conf ← 指定Apache配置文件所在位置 y ← 选择y,同意创建一个新的对象配置文件 www.centospub.com ← 为统计对象创建代号(推荐以网站URL作为代号) ← 直接按回车,接受将Awstats的配置文件置于/etc/awstats下 ← HTTP服务重新启动 ← 按回车继续进行配置 ← 按回车结束初始配置 |
然后对刚刚创建的对象配置文件进行配置。
| vi /etc/awstats/awstats.www.centospub.com.conf ← 修改对象配置文件(文件名与上一步初始配置中设置的域名对应) LogFile="/var/log/httpd/mylog.log" ← 找到这一行,修改日至文件所在位置(指定Apache的日志文件) ↓ LogFile="/var/log/httpd/access_log" ← 变为此状态 DirData="/var/lib/awstats" ← 找到这一行,更改Awstats数据的保存位置 ↓ DirData="." ← 变为此状态,让数据与awstats.pl脚本在同目录下 Lang="auto" ← 找到这一行,将auto改为cn ↓ Lang="cn" ← 变为此状态,让语言默认为中文 SkipHosts="" ← 找到这一行,在""之间添加无效访问规则 ↓ SkipHosts="127.0.0.1 REGEX[^192\.168\.]" ← 变为此状态,本地及内部的访问不做分析统计 LevelForWormsDetection=0 ← 找到这一行,将0改为2 ↓ LevelForWormsDetection=2 ← 变为此状态,将来自Worm的访问也不做分析统计 |
接下来,再对httpd.conf中面向Awstats的部分进行必要设置。
| vi /etc/httpd/conf/httpd.conf ← 编辑Apache的配置文件 ---------------------------------------------------- Alias /awstatsclasses " Alias /awstatscss " Alias /awstatsicons ScriptAlias /awstats/ " ---------------------------------------------------- 找到以上水平线间的语句群,对相应路径进行正确修改。变为下面水平线间状态: ---------------------------------------------------- Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/" Alias /awstatscss "/usr/local/awstats/wwwroot/css/" Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/" ---------------------------------------------------- <Directory "/root/wwwroot"> ← 找到这一行,对相应路径进行正确修改 ↓ <Directory "/usr/local/awstats/wwwroot"> ← 变为此状态 |
然后,重新启动HTTP服务,使新的设置生效。
| /etc/rc.d/init.d/httpd restart ← 重新启动HTTP服务,使设置生效 OKOK |
|
配置完毕后,我们可以通过各种适用于自己的方式,定义统计的方式以及输出的结果。在这里,介绍最简单,也是最广泛的统计方法,如下:
| vi /root/awstats.sh ← 建立统计用脚本如下: #!/bin/bash /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.centospub.com (以上紫色字体部分的域名请根据实际情况设置) chmod 700 /root/awstats.sh ← 赋予脚本可被执行的属性 /root/awstats.sh ← 运行脚本,开始进行统计(如日志量比较大的话,要花一段时间) |
然后在客户端的浏览器上访问 http://服务器IP地址(或你的域名)/awstats/awstats.pl?config=www.centospub.com 即可看到详细的分析统计资料,如下图:

|
[1] 完成以上配置,我们已经可以通过客户端的浏览器,掌握Web服务器的访问量、来路等等详细的信息,但由于Awstats的统计是基于Apache日志的, 我们必须通过awstats.pl对当前最新的日志文件进行统计才能得到最新的统计结果。也就是说,在我们运行自行创建的awstats.sh脚本之前, 当前在客户端能够看到的统计分析结果,只是上一次运行awstats.sh脚本时统计的结果。想得到最新的统计结果,必须再次运行awstats.sh。 在这里,我们将其设置为每天定时自动运行,以便于每天都能查看到最新的信息。如下:
| crontab -e ← 对定期任务执行时间表进行编辑,添加如下一行: 00 00 * * * /root/awstats.sh ← 添加此行到其中,让统计分析在每天0点更新 (以上操作方法与vi编辑器相同) |
[2] 在一些情况,可能并不希望外界看到日志统计分析的结果。对此,我们可以为Apache添加面向于Awstats的访问限制,如下:
| vi /etc/httpd/conf.d/awstats.conf ← 创建面向于Awstats的配置文件 <Files "awstats.pl"> AllowOverride None Order deny,allow Deny from all Allow from 192.168.0 ← 只允许局域网内访问 </Files> /etc/rc.d/init.d/httpd restart ← 重新启动HTTP服务,使设置生效 OKOK |
[3] 用Firefox浏览分析结果时,字体会显得很难看(因为Firefox和IE识别11px字体不一样),所以用Firefox浏览器的情况,可以通过修改awstats.pl输出css的相关字体尺寸进行修改,而达到用Firefox浏览时也和IE一样能够正确显示出适当尺寸的字体。方法就是直接编辑"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl",将文件中所有“11px”的地方都替换为“12px。

