喜悦国际村 » linux技术 » 基于AWSTATS的WEB日志统计

页: [1]
anycan2008-2-1 06:16 AM
基于AWSTATS的WEB日志统计

AWSTATS是一个功能强大,界面美观的网站访问统计系统。
它分析APACHE产生的日志文件,利用PERL生成可视化的统计网页。

呵呵,不多说了,这就在Linux上配置AWSTATS。
我的系统是Fedora 7
#uname -a
inux [url]www.m6699.com[/url] 2.6.23.8-34.fc7 #1 SMP Thu Nov 22 23:05:33 EST 2007 i686 i686 i386 GNU/Linux

一、准备安装环境
1. Perl (版本高于5.50)
#perl -v
This is perl, v5.8.8 built for i386-linux-thread-multi

2. 打开APACHE配置文件/usr/local/apache/conf/httpd.conf
   查看全局CustomLog日志路径及日志文件名,并查看
   日志格式是否为combined。(注意:如果在虚拟主机部分指定了虚拟主机日志路径,则全局的CustomLog无效!)
3. 如果对日志进行了配置则要重起APACHE。

二、安装AWSTATS
可以在[url]http://awstats.sourceforge.net/[/url] 下载到最新版本的AWSTAS,本文中使用的是6.7
1、上传文件awstats-6.7.tar.gz到/usr/local
2、解压awstats-6.7.tar.gz
[root@www awstats]#tar -zxvf awstats-6.7.tar.gz .
[root@www awstats]#mv awstats-6.7 awstats
[root@www awstats]#cd awstats
[root@www awstats]# ls
conf  docs  README.TXT  tools  wwwroot
[root@www awstats]#cd tools

3、运行向导:  #perl awstats_configure.pl  (按照提示进行选择,仔细阅读都会看明白的!而且有步骤提示操作)
默认生成的配置文件会放在/etc/awstats/下面,名称为awstats.[url]www.m6699.com.conf[/url]
4、ln -s /usr/local/awstats/wwwroot /var/www/html/awstats

5、vi /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin [email]webmaster@mc333.com[/email]
    DocumentRoot "/var/www/html/awstats"
    ServerName awstats.m6699.com
    Alias /awstatsclasses "/var/www/html/awstats/classes/"
    Alias /awstatscss "/var/www/html/awstats/css/"
    Alias /awstatsicons "/var/www/html/awstats/icon/"
    ScriptAlias /awstats/ "/var/www/html/awstats/cgi-bin/"
    ErrorLog "logs/awstats.m6699.com/awstats.m6699.com.error_log"
    CustomLog "|/usr/local/sbin/cronolog /usr/local/apache2/logs/awstats.m6699.com/awstats.m6699.com.access_log.%Y%m%d" combined
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]
</VirtualHost>

#/usr/local/apache/bin/apachectl restart

三、配置AWSTATS
#vi /etc/awstas/awstats.[url]www.m6699.com.conf[/url]
更改:
LogFile (APCHE CustomLog日志的绝对路径)
LogFile="/usr/local/apache/logs/www.m6699.com/www.m6699.com_access_log.%YYYY-0%MM-0%DD-0"
表示当天的
LogFile="/usr/local/apache/logs/www.m6699.com/www.m6699.com_access_log.%YYYY-24%MM-24%DD-24"
就是昨天的了
DirData  (指定AWSTATS生成数据的存放目录,可以任意指定,但注意目录
           目录要具有读写权限,可以设置为777或755) ../../data
DirCgi   (cgi的路径,是相对于网站根目录的绝对路径:/yoursite/cgi-bin)
DirIcons  (icon的路径,是相对于网站根目录的绝对路径:/icon)
SiteDomain (输入你的域名:yourdomain)
HostAliases (主机别名,如果还有其他的二级域名或三级域名,请在此添加。)
AllowToUpdateStatsFromBrowser (是否允许用户从浏览器中实时更新统计。0:不允许;1:允许)
Lang="cn" (设置网页显示语言为简体中文。)

[root@www awstats]# cd /usr/local
[root@www local]# chown -R root:root awstats
[root@www local]# chmod -R 755 awstats
[root@www local]# cd awstats

[root@www awstats]# mkdir data

[root@www awstats]# chown -R daemon data          [daemon为apache运行用户]
[root@www awstats]# chmod -R 755 data

四、测试AWSTATS
#/yoursite/cgi-bin/awstats.pl -update -config=yourdomain
如果不出现错误信息并且得到统计数据回显则成功!如果出现错误,则多是DirData中设置的目录的权限问题。
访问地址:[url]http://yourdomain/awstats/awstats.pl?config=yourdomain[/url]
如:
[root@www awstats]#cd wwwroot/cgi-bin
[root@www cgi-bin]# perl awstats.pl -config=www.m6699.com -update -lang=cn
[root@www cgi-bin]# perl awstats.pl -config=www.m6699.com -output -staticlinks -lang=cn>awstats.[url]www.m6699.com.html[/url]
[root@www cgi-bin]# chmod 777 /usr/local/awstats/wwwroot/cgi-bin/*.pl



五、设置crond
shell>; crontab -e
增加命令:(可设置为每天零时进行更新)
/yoursite/cgi-bin/awstats.pl -update -config=yourdomain


59 23 * * * (cd /usr/local/awstats/wwwroot/cgi-bin;./awstats.pl -config=www.m6699.com -update -lang=cn)

[url]http://awstats.m6699.com/awstats/awstats.pl?config=www.m6699.com[/url]

六、配置Geo-IP
安装配置全程脚本:
# 下载
wget [url]http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.3.tar.gz[/url]
wget [url]http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.30.tar.gz[/url]
wget [url]http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz[/url]

# 安装
tar zxf GeoIP-1.4.3.tar.gz
cd GeoIP-1.4.3
./configure
make
make install
cd ..

tar zxf Geo-IP-1.30.tar.gz
cd Geo-IP-1.30
perl Makefile.PL
make
make install
cd ..

gunzip GeoLiteCity.dat.gz
cp -a GeoLiteCity.dat /usr/local/share/GeoIP/

# 更新动态库路径
echo /usr/local/lib > /etc/ld.so.conf.d/geoip-i386.conf
ldconfig -v

# 修改 awstats 配置
最后,在/etc/awstats/awstats.[url]www.m6699.com.conf[/url]中开启Geo::IPfree插件。
LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/share/GeoIP/GeoLiteCity.dat"

下次 update 数据和 build pages 就可以看到
国家或地区 (前 10) 和 主机 (前 10) 中的IP地理位置信息
awstats/tools/awstats_updateall.pl now
awstats/tools/awstats_buildstaticpages.pl -config=configdomainname -month=$M -lang=cn

GeoIP Country 链接到 #countries
GeoIP City    链接到 awstats.$configdomainname.plugin_geoip_city_maxmind.html


更新统计、刷新网站,如果能出现访问者国家的国旗图标就成功了。

另外,如果想对多个虚拟主机配置不同的访问统计,可以生成多个awstats.domain.conf文件,并对其中的域名进行
更改,然后如法炮制的进行配置。注意,如果使用虚拟主机日志的话,则APACHE不会启用全局日志记录!







七、珊瑚虫IP统计:
awstats是一个极好用的网站访问日志统计工具,它可以统计每天/每月的访问量,大家通过哪些搜索引擎,搜的什么关键字才来到你的网站的. 访问你的人都来自那些IP,那些国家,使用什么浏览器等等。 使用这样的工具,你就能更好的把握你的网站的用户群的爱好,呵呵

这次,我介绍一下显示来访者地区的插件。awstats是可以增加插件的。我做的这个qqhostinfo插件,可以在访问主机表格中增加一列,显示ip对应的位置。当然这个资料来源于著名的QQWry.Dat文件。上一篇blog我介绍了一个用perl脚本写的查询ip地址位置的程序。刚好,awstats的插件也需要perl来写。

[url]http://www.ieasy.org/download/qqhostinfo.pm[/url]
[url]http://www.ieasy.org/download/qqwry.pl[/url]
下载并复制到/usr/local/awstats/wwwroot/cgi-bin/plugins/目录下。

QQ纯真库IP库:
[url]http://www.cz88.net/fox/[/url]
官方网站打不开,也可以从华军/天空等下载站找到;
下载解包,将QQwry.Dat文件复制到awstats/ 下;

修改,qqwry.pl中:
./QQWry.Dat 修改为 ${DIR}/plugins/QQWry.Dat
在配置文件中:增加
vi /etc/awstats/awstats.[url]www.m6699.com.conf[/url]
去掉下面前面的"#"。
LoadPlugin="qqhostinfo"
现在打开网页看看,效果是: (Location这一列)

八、美观及提示
打开标题提示:

vi /etc/awstats/awstats.[url]www.m6699.com.conf[/url]
LoadPlugin="tooltips"
LoadPlugin="decodeutfkeys"


来源:[url]http://cndefu.blog.163.cn[/url]

jdk_cn2008-2-14 12:39 PM
QQWry.Dat  哪里提取最新版本呢

anycan2008-2-20 05:21 AM
QQWry.Dat  哪里提取最新版本呢
网上有大把的呀

osdn2008-2-22 07:41 AM
強烈支持一下.好文章!


查看完整版本: 基于AWSTATS的WEB日志统计


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.006204 second(s), 2 queries