awstat安装与Geo插件的添加

本文可自由转载,但请遵循“署名-非商业用途-保持一致”的创作共用协议。 永久链接:JoeCen's 小猫窝
-----------------------------

以前在chcedong那里看到过awstat安装方法,也使用过awstat来分析公司服务器到日志。但是自从自己到站点转移到dreamhost上后,一直没有时间对使用情况进行分析。前一段时间使用了performancing的metrics,但对它分析结果总不是非常满意。于是,我决定将awstats架到我的dreamhost上。
当时看中dreamhost的原因除了它有优惠之外,很重要的一点是它有CLI(到目前为止,我都没有有过它都ftp功能),所以现在我就可以在这里安装awstats了。
awstats的安装其实很简单,下载最新版本,解压后我们会看到几个文件和文件夹:

docs
README.TXT
tools
wwwroot

docs是一些html格式到文档,里面有安装和使用到方法;
README.TXT是软件到介绍和权利申明等;
tools文件夹里面是一些脚本和配置文件,比如批量update的脚本、转换静态html文件的脚本、httpd.conf的配置文件等,一般不需要使用到;
wwwroot文件夹里面的东西才是最重要的,下面详细介绍:

wwwroot里面又有4个文件夹:awstats、css、js、icon、和classes。
从我的使用情况上看,有用的只有awstats和icon 文件夹。如果你是自己的服务器,自己能控制apache的服务的配置文件,那么你可以使用tools/awstats_configure.pl脚本来进行安装。你只需要指出httpd.conf的位置即可。
如果你和我一样,没有完全控制apache的权限,那么你只需要将wwwroot/awstats文件夹放有cgi权限的目录下,或者用ScriptAlias来映射 awstats目录。然后将wwwroot/icon目录拷到你到网站的根目录下,比如http://www.joecen.com/icon即可。

接下来我们为站点建立配置文件,在wwwroot/awstats/目录下有一个名叫"awstats.model.conf"的配置文件,将它改为"awstats.www.joecen.com.conf"。然后编辑该文件,有几个地方必须要修改:

LogFile
指定日志文件的路径和名称,比如:

LogFile="/home/joecen/logs/access.log.2006-07-06"

也可以用动态的变量指定:

LogFile="/home/joecen/logs/access.log.%YYYY-24-%MM-24-%DD-24"

这样就可以自动取到上一天的日志了。

LogType=W
使用web日志;
LogFormat=1

使用apache的combined格式的日志。

SiteDomain="www.joecen.com"
站点名称。

HostAliases="localhost 127.0.0.1 REGEX[joecen\.com$]"
如果站点有其它的域名的话也可以在这里加进来,也一并计算入内。

DirData="/data"
指定存放数据文件的目录,默认是当前目录,为了与其它文件区别,我将其放到一个新的“data”目录中,注意该目录需要运行脚本的用户有写入权限。awstats默认按照月来存放文件,也就是说每个月一个文件。(注意要使用绝对路径)

该配置文件中还有很多选项,可以做一些细微的调节或者添加插件等,在文件中都有详细的介绍。

接下来是要对日志进行分析,运行命令:

./wwwroot/awstats/awstats.pl -config=www.joecen.com -update

将该命令写入crontab中,每天自动运行。

查看:
查看也是用这个CGI脚本,也是用“config" 参数,比如:

http://www.joecen.com/awstats/awstats.pl?config=www.joecen.com

加入IP插件:
awstats可以使用GeoIP的IP库和perl库。

下载需要安装两个软件包:C库GeoIP C 和 Perl库GeoIP Perl ,并解包。

我使用的是”GeoIP-1.3.17“和”Geo-IP-1.27“。

由于没有服务器的root权限,所以只能安装在自己的目录下:
安装C库:

cd GeoIP
./configure --prefix=/home/joecen/GeoIP
make
make install

注意,GeoIP需要zlib库支持,否则configure不能完成。如果zlib库也是安装在自己的目录下的,可以指定lib和include目录进行GeoIP的configure:

LDFLAGS=-L/home/joecen/zlib/lib CPPFLAGS=-I/home/joecen/zlib/include ./configure --prefix=/home/joecen/GeoIP

安装perl库:

cd Geo-IP
perl Makefile.PL LIBS='-L/home/joecen/GeoIP/lib' INC='-I/home/joecen/GeoIP/include'
vi Makefile
PREFIX变量从"/usr"改为"/home/joecen"。
make
make install

从maxmind的网站下载免费的City的IP文件,解压保存为"/home/joecen/GeoIP/share/GeoIP/GeoLiteCity.dat"。

修改atstats.www.joecen.com.conf配置文件,将Plugin:GeoIP和Plugin: GeoIP_City_Maxmind打开,如:

LoadPlugin="geoip GEOIP_STANDARD /home/joecen/GeoIP/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD
/home/joecen/GeoIP/share/GeoIP/GeoLiteCity.dat"

最后修改wwwroot/awstats.pl文件,在"require 5.005;"下面,大概是第11行,加入:

BEGIN { push @INC, '/home/joecen/Geo-IP/local/lib/perl/5.8.4' }

让perl能找到Geo的perl模板。

这样就可以在awstats里面看到来源IP的国家和城市的信息。

如果有root权限,则不必这么麻烦,安装GeoIP的时候不必加"prefix"等参数了。

链接:
awstats.sourceforce.net,awstats官网。
maxmaind,GeoIP的开发公司。
车东的:AWStats: Apache/IIS的日志分析工具

随机日志

  • 使用Perl DBI接口连接MySQL
  • xen error: “you need to load the kernel first”
  • 一个文件编码的问题
  • 为什么要转用WP?
  • laptop升级到karmic (9.10)
  • Leave a Reply