Awstats安装使用说明


日志统计系统在站点的用户行为分析中扮演了重要的角色,尤其是对于来自搜索引擎的关键词访问统计:是很有效的用户行为分析数据来源。随着互联网多年的发展,WEB日志统计工具已经越来越成熟,功能也越来越丰富。其中有很多是开放源代码的,AWStats就是其中非常优秀的一款。本文将介绍在debian下从源码安装其的相关过程。
AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,
AWStats二进制包安装过程
1. 下载地址
http://awstats.sourceforge.net/
2. 安装
2.1 rpm或apt
具体过程略。
2.2 tar包安装
直接解压到某一目录下就行,awstats采用perl编写,只要安装好它所需要的perl组件即可。
3. 运行配置脚本生成awstats的配置文件
cd /var/www/awstats/tools
perl awstats_configure.pl
配置脚本询问域名等问题,假设回答的域名为mysite.freeoa.net
3.1 生成的配置文件会放在/etc/awstats/下面
3.2 生成的配置文件的名称为awstats.mysite.freeoa.net.conf
3.3 配置脚本只能修改主要的log日志为combined,如果设置了虚拟主机,需要分别修改虚拟主机中的日志配置。
格式设置 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
自定义的日志采用什么格式 CustomLog logs/mysite.freeoa.net.access.log combined
4. 编辑awstats.mysite.freeoa.net.conf,保证awstats的正常运行
4.1 设置web server的logfile位置
编辑LogFile为web server的log文件位置
LogFile=/var/log/apache2/mysite.freeoa.net.access.log
一定保证和apache2.conf中的log文件保证一致,apache2.conf中log名称为
logs/mysite.freeoa.net.access.log
4.2 设置要分析的服务日志类型
LogType=W
w表示为WEB日志
4.3 设置日志格式
LogFormat=1
1表示采用NCSA apache combined/ELF/XLF log format
(1)多日志合并分析
LogFile="tools/logresolvemerge.pl /var/logs/nginx/30.0206.log /var/logs/nginx/31.0206.log|"
或
LogFile="tools/logresolvemerge.pl /var/logs/nginx/*.0206.log|"
(2)分析使用gzip压缩过的日志文件
LogFile="gzip -d </var/logs/apache2/access.log.gz|"
数据源日志格式和按天的截断规则
对于Apache:日志格式好设置:设置成combined格式即可,日志截断麻烦一点:需要安装cronolog工具,将日志设置成按天截断:
CustomLog "|/usr/sbin/cronolog /var/logs/apache2/mysite.freeoa.net.access.log.%Y%m%d" combined
比如:logs/mysite.freeoa.net.access.log.20100326
日志是压缩格式,可以使用'gzip -d < /var/logs/apache2/mysite.freeoa.net.access.log.%YYYY-24%MM-24%DD-24.gz |' 动态解压缩统计。对于IIS:缺省有比较好的日志按天截断规则,但是IIS的日志格式比较不适合AWStats统计,因此最好直接去掉所有日志字段,然后严格按照以下列表设置:
日期 date
时间 time
客户IP地址 c-ip
用户名 cs-username
方法 cs-method
URI资源 cs-uri-stem
协议状态 sc-status
发送字节数 sc-bytes
协议版本 cs-version
用户代理 cs(User-Agent)
参照 cs(Referer)
相比IIS缺省设置:
减少的有:
服务器IP地址
服务器端口
URI查询
增加的有:
发送字节数
协议版本
参照
注意:AWStats缺省不过滤swf文件,会把.swf算成PageView,所以如果站点上swf文件主要是广告的话最好还是要过滤掉:
4.4 设置所要分析网站域名
SiteDomain="mysite.freeoa.net"
引号中一定要填上域名,或者服务器主机名
4.5 设置awstats的数据库存放目录
DirData="./"
5. 创建awstats初始化数据库
perl awstats.pl -config=mysite.freeoa.net.conf -update
6. 创建awstats的初始化静态统计页面
perl awstats.pl -config=mysite.freeoa.net.conf -output -staticlinks lang=cn -update > awstats.site.html
7. 通过浏览器刷新统计页面
参考 http://awstats.sourceforge.net/docs/awstats_setup.html 页面,其中有其在apache下配置方法。
7.1 修改awstats.mysite.freeoa.net.conf中
AllowToUpdateStatsFromBrowser=1
这样可以通过在浏览器最上端的"立即更新"可以立刻进行更新现有的统计信息。
7.2 修改awstats的存放数据目录的属性为apache的运行用户可读写
chown -R www-data /var/www/awstats/data
7.3 检查/var/www/awstats/cgi-bin/*.pl 是否有执行权限
chmod +x /var/www/awstats/cgi-bin/*.pl
8. 设置需要认证才能访问流量统计页面
8.1 设置用户admin有权访问该页面
cd /var/www/awstats/cgi-bin/
/usr/bin/htpasswd -c ./paswd admin
按提示连续输入两次密码,这样就创建了admin用户才能访问流量统计页面。
8.2 设置apache2.conf中的awstats条目增加如下内容
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /var/www/awstats/cgi-bin/paswd
Require user admin
或者:
<Files "awstats.pl">
AuthType Basic
AuthName "awstat access"
AuthUserFile "/etc/awstats/htpasswd"
Require valid-user
</Files>
9. 两种观看日志分析方法的比较
9.1 静态页面分析方法的优点
a. 安全性高,因为分析过程可以在后台通过crontab来执行,不需要执行cgi.
b. 统计分析页面响应速度快,因为是自动生成的静态页面,所以速度快过动态生成的页面。
9.2 动态页面分析方法的优点
a. 实时查看,可以随时在页面动态刷新统计分析结果。
10. awstats在apache虚拟主机下的配置
10.1 虚拟主机有2个
site.freeoa.net
diy.freeoa.net
10.2 生成并修改对应虚拟主机的配置文件
cd /etc/awstats
cp awstats.mysite.freeoa.net.conf awstats.site.freeoa.net.conf
cp awstats.mysite.freeoa.net.conf awstats.diy.freeoa.net.conf
10.3 修改配置文件中的下列各项
LogFile=/var/logs/apache2/mysite.freeoa.net.access.log
修改为实际的虚拟主机的log文件位置
SiteDomain="site.freeoa.net"
修改为实际各虚拟主机的域名
10.4 修改apache2.conf各虚拟主机中的配置
CustomLog logs/testmysite-mysite.freeoa.net.access.log combined
主要是修改日志格式保证apache输出的日志格式和awstats配置文件中配置一致。
12. 观看流量统计方法
#./awstats.pl -update -config=sitename -lang=cn
比如:./awstats.pl -update -config=mysite.freeoa.net
会自动调用awstats.mysite.freeoa.net.conf这个配置文件
日志统计自动运行
GNU/Linux上:crontab -e: 每天8点10分运行
#update awstats
10 8 * * * (cd /var/www/awstats/cgi-bin/awstats.pl -update -config=mysite.freeoa.net)
12.1 在浏览器输入
查看相关分析
http://mysite.freeoa.net/awstats/awstats.pl?config=mysite.freeoa.net
13 相关组件源码包安装过程
13.1 升级国内主要搜索引擎和蜘蛛定义,安装GeoIP的应用库
GeoIP和Geo::IPfree都免费的是国家/IP的映射表,比通过DNS反相解析域名得到的统计准确,而且速度快。GeoIP的API都是免费的,缺省库是免费的,收费的是它的数据更新服务。Geo::IPfree不仅代码是公开的,而且库数据也是公开的。从网站http://www.maxmind.com/download/geoip/api/c/ 下载解包,编译安装。
perl -MCPAN -e 'install "Geo::IP"'
或者使用纯Perl包 perl -MCPAN -e 'install "Geo::IP::PurePerl"',在debian下可以通过'apt-get install libgeo-ip-perl'安装。
MaxMind目前免费提供了GeoIP和GeoIPCityLite数据包:可以定期每个月从以下地址下载:
http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://www.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
或直接编译之
GeoIP安装:
先下载C库:GeoIP C解包后
%./configure; make
#make install
然后下载Perl库:GeoIP Perl解包后
%perl MakeFile.PL; make
#make install
Geo::IPfree安装:
下载Geo::IPfree解 包
%perl Makefile
%make
#make install
或通过apt安装其:
# apt-get install libgeo-ipfree-perl libgeo-ip-perl libnet-ip-perl libnet-dns-perl
访问此处可以得知其安装的具体过程。http://antezeta.com/awstats/geoip.html
13.2 配置
将缺省awstats.model.conf 命名成common.conf
修改其中的一些配置选项:
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /var/www/awstats/libs/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /var/www/awstats/libs/GeoLiteCity.dat"
创建awstats下创建:data 目录用于统计数据输出
按照一下样例设置配置文件:
Include "common.conf"
LogFile="/var/logs/apache2/mysite.freeoa.net.access.log.%YYYY-24%MM-24%DD-24"
SiteDomain="mysite.freeoa.net"
HostAliases="freeoa.net"
DefaultFile="index.html"
DirData="/var/www/awstats/cgi-bin/data"
14 运行模式
14.1 AWStats的运行模式是这样的:
分析日志:运行后将这样的日志统计结果归档到一个AWStats的数据库(纯文本)里;
然后是输出:分两种形式:一种是通过cgi程序读取统计结果数据库输出;一种是运行后台脚本将输出导出成静态文件;
14.2 统计指标说明
参观者:按来访者不重复的IP统计,一个IP代表一个参观者;
参观次数:一个参观者可能1天之内参观多次(比如:上午一次,下午一次),所以按一定时间内(比如:1个小时),不重复的IP数统计,参观者 的访问次数;
网页数:不包括图片,CSS, JavaScript文件等的纯页面访问总数,但如果一个页面使用了多个帧,每个帧都算一个页面请求;
文件数:来自浏览器客户端的文件请求总数,包括图片,CSS,JavaScript等,用户请求一个页面是,如果页面中包含图片等,所以对服 务器会发出多次文件请求,文件请求数一般远远大于文件数;
字节:传给客户端的数据总流量;
来自REFERER中的数据:日志中的参考(REFERER)字段,记录了访问相应网页之前地址,因此如果用户是通过搜索引擎的搜索结果点击进入网站的,日志中就会有用户在相应搜索引擎的查询地址,这个地址中就可以通过解析将用户查询使用的关键词提取出来:
比如:
203.208.60.90 - - [11/Sep/2011:06:44:04 +0800] "GET /index.php/news/15-puductnews/341-windows-xp-sp2-sp3 HTTP/1.1" 200 7156 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
AWStats在搜索引擎的关键短语和关键词统计方面的功能还是比较完整的:可以对全世界3百多种机器爬虫进行识别,并且可以识别大部分主流国际化搜索引 擎和很多地区的本地语言搜索引擎。
15. 理解配置文件
配置文件及指令说明
AWStats配置文件为awstats.virtualhostname.conf(其中virualhostname为你指定的配置名)或awstats.conf,必须在 /etc/awstats、 /usr/local/etc/awstats、 /etc目录或与awstats.pl脚本文件在同一目录,具体位置由执行3.3节中awstats_configure.pl脚本时指定。
AWStats安装完毕会生成一个配置模板文件,在安装目录的wwwroot/cgi-bin目录,文件名为awstats.model.conf,可以把此文件另存为你的配置文件并按实际进行修改。
AWStats配置文件中使用的指令非常多,一般而言默认值即可满足需要,本文重点介绍以下常用指令,完全的指令说明请查看AWStats配置指令官方文档:LogFile、LogType、LogFormat、LogSeparator、SiteDomain、HostAliases、DNSLookup、DirData、DirCgi、DirIcons、AllowToUpdateStatsFromBrowser、 AllowFullYearView、EnableLockForUpdate、LoadPlugin、Include。
每条指令都可以重复多次指定,先前的值被后面的值覆盖,最后一个指定的值有效。
下面是常用指令的说明:
LogFile:指定要分析的日志文件。
格式:LogFile="filename"
filename可以有多种格式:
a. 绝对路径文件名或相对awstats.pl的相对路径文件名
比如:
"/var/log/apache/access.log"
"../log/mycombinedlog.log"
b. 文件名模板,即使用基于日期时间的AWStats标签的动态文件名,下面是这些AWStats标签的含意:
%YYYY-n n小时以前的带世纪的4位数字表示的年
%YY-n n小时以前的不带世纪的2位数字表示的年
%MM-n n小时以前的2位数字表示的月
%MO-n n小时以前的3个字符表示的缩写形式表示的月
%DD-n n小时以前的2位数字表示的日期
%HH-n n小时以前的2位数字表示的小时
%NS-n Unix时间戳
%WM-n 当月的第几周(1-5)
%Wm-n 当月的第几周(0-4)
%WY-n 当年的第几周(01-52)
%Wy-n 当年的第几周(00-51)
%DW-n 一周的第几天(1-7, 1=sunday) ,如果需要(1-7,1=monday) , n用24替换 .
%Dw-n 一周的第几天(0-6, 0=sunday) ,如果需要(0-6,0=monday) ,n用24替换 .
以上标签中,n为数字,如果需要使用当前的年、月、日、时等,n用0替换
例如:
"/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
"/var/log/access_log.%YY-24%MM-24%DD-24.log"
c. 日志来自于一个管道(pipe)
例如:
使用gzip压缩格式的日志文件:
"gzip -d </var/log/apache/access.log.gz |"
合并负载均衡的多台服务器日志文件:
"/pathtotools/logresolvemerge.pl *.log |"
本文示例为用4小时前的年、月、日拼出文件名的日志文件:
LogFile="/usr/local/apache-2.2.6/logs/access_log.%YYYY-4%MM-4%DD-4"
LogType:指定要分析的日志文件的类型。
格式:LogType=typename
typename为下面的值:
W - web日志,默认值
M - mail日志
F - ftp日志
本文示例为:
LogType=W
LogFormat:指定日志的格式,必须与你的日志格式匹配。
格式:LogFormat=number|"your_own_personalized_log_format"
number为预定义的格式号:
1 - Apache 或 Lotus Notes/Domino native combined格式 (NCSA combined/XLF/ELF日志格式)
2 - IIS 或 ISA 格式 (IIS W3C 日志格式)
3 - Webstar native 日志格式
4 - Apache 或 Squid native common 日志格式 (NCSA common/CLF日志格式)
当LogFormat=4时, 部分属性(browsers, os, keywords...) 功能不能工作。
your_own_personalized_log_format为自定义日志格式,如果日志格式不属于以上4种预定义格式,则需要使用下面的关键词tag自定义日志格式:
%host 客户端主机名或IP地址(对于mail日志,为发送主机)
%host_r 接收的主机名或IP地址 (仅用于mail日志)
%lognamequot 带双引号的 经认证的 登录/用户 格式为: "alex"
%logname 经认证的 登录/用户 格式为: format: alex
%time1 日期和时间 格式为: [dd/mon/yyyy:hh:mm:ss +0000] 或 [dd/mon/yyyy:hh:mm:ss]
%time2 日期和时间 格式为: yyyy-mm-dd hh-mm-ss
%time3 日期和时间 格式为: Mon dd hh:mm:ss or Mon dd hh:mm:ss yyyy
%time4 日期和时间 格式为unix时间戳: dddddddddd
%methodurl 请求方式和URL 格式为: "GET /index.html HTTP/x.x"
%methodurlnoprot 请求方式和URL 格式为: "GET /index.html"
%method 请求方式 格式为: GET
%url 请求的URL 格式为: /index.html
%query 查询字符串(被URLWithQuery选项使用)
%code 返回的状态代码(web日志的格式为: 999)
%bytesd 档案的大小,以字节bytes为单位
%refererquot Referer页面 格式为: "http://from.com/from.htm"
%referer Referer页面 格式为: http://from.com/from.htm
%uaquot User agent 格式为: "Mozilla/4.0 (compatible, ...)"
%ua User agent 格式为: Mozilla/4.0_(compatible...)
%gzipin mod_gzip压缩输入的字节(bytes) 格式为: In:XXX
%gzipout mod_gzip压缩输出的字节和压缩比率(bytes & ratio) 格式为: Out:YYY:ZZpct.
%gzipratio mod_gzip压缩比率(ratio) 格式为: ZZpct.
%deflateratio mod_deflate压缩比率(ratio) 格式为: (ZZ)
%email EMail发送者 (仅用于mail日志)
%email_r EMail接收者 (for mail log)
%virtualname web服务器虚拟主机名.当同一日志文件中包含多个虚拟主机的数据时使用,AWStats会抛弃虚拟主机名不在SiteDomain或HostAliases指令中的记录
%cluster 如果日志文件来自不同的主机(使用logresolvemerge.pl合并的), 这个tag定义cluster id
%extraX X为数字,你计划使用ExtraSection属性来生成个性化报告的一个字段
如果日志中有一些字段不包括在上面列表的关键词tag中,使用
%other 其它不使用双引号的字段 格式为: other
%otherquot 其它使用双引号的字段 格式为:"other"
本文示例为:
LogFormat=1
等效的自定义格式为:
LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
LogSeparator:日志字段的分隔符。
格式:LogSeparator="separator"
AWStats默认的日志字段分隔符是空格,如果日志文件不是以空格为字段分隔符,则需要使用此指令指定特定的字段分隔符。如果LogFormat指令的值为预定义的(1、2、3、4),此指令将被忽略。
separator可以是空格、任意字符、以反斜线开始的转义字符(\t 、\| 等)。
默认值及本文示例为:
LogSeparator=" "
SiteDomain:指定站点的主域名或虚拟主机名。
格式:SiteDomain="DomainName"
示例:SiteDomain="www.domain.com"
DomainName默认为空,如果为空,AWStats将拒绝执行。
如果多个虚拟主机使用同一个日志文件(日志格式包括%virtualname字段),此指令告诉AWStats只分析%virtualname字段的值为DomainName的记录;对于单主机日志文件,当ShowLinksOnUrl选项被设置为1时,此指令用来产生完全的URL链接。
本文示例为:
SiteDomain="www.entage.net"
HostAliases:站点的别名,用来访问站点的所有域名、IP地址、虚拟主机名。
格式:HostAliases="AliasesList"
示例:HostAliases="www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$] @/tmp/domainlist.txt"
这个指令用来分析日志文件的refere字段,帮助AWStats区分一个refere字段的URL是同一站点的自身URL还是其它外站的URL。
AliasesList是空格分隔的别名列表,可以使用下面形式的正则表达式值:REGEX[value] ,如果别名列表在一个文件中,也可以使用@/mypath/myfile形式加载文件内容。
本文示例:
HostAliases="www.entage.net 127.0.0.1 localhost"
DNSLookup:是否将访问者的IP地址反向解析为完整的主机名。
格式:DNSLookup=TypeValue
TypeValue 的值为:
0 - 不进行DNS反向解析
1 - 完全启用DNS反向解析,会大大降低处理速度,不要用于访问量非常大的站点
2 - 仅通过静态DNS缓存文件(如果存在)进行DNS反向解析,为默认值
本文示例:
DNSLookup=2
DirData:指定AWSTATS生成数据的存放目录。
格式:DirData="DirName"
DirName为执行AWStats脚本的用户可读写目录,如果启用AllowToUpdateStatsFromBrowser,则运行WEB服务的用户也需要对此目录的读写权限。
本文示例:
DirData="/var/lib/awstats"
DirCgi:指定AWStats的cgi-bin目录的相对或绝对URL。
此指令仅用于AWStats从命令行带-output参数运行时,目的是产生HTML报告页面的链接。
本文示例:
DirCgi="/awstats"
DirIcons:指定AWStats的图标目录的相对或绝对URL。
如果你要生成静态报告("... -output > outputpath/output.html"),指定相对于outputpath的相对路径。
本文示例及默认值:
DirIcons="/awstatsicons"
AllowToUpdateStatsFromBrowser:指定是否允许从浏览器更新数据。
格式:AllowToUpdateStatsFromBrowser=value
value为:
0 - 只允许从命令行或计划任务执行更新
1 - 在报告页面上增加一个update按钮,允许从浏览器更新数据,不建议
本文示例及默认值:
AllowToUpdateStatsFromBrowser=0
AllowFullYearView:是否允许以年为单位分析日志。
格式:AllowFullYearView=value
AWStats默认是以月为单位分析日志数据,此指令设置哪种方式可以按年为单分析日志。
value为以下值之一:
0 - 不允许以年为单位分析日志
1 - 仅允许从命令行以年为单位分析日志,-Year- 值在combo中不可见
2 - 仅允许从命令行以年为单位分析日志,-Year- 值在combo中可见但不可用
3 - 允许从命令行和CGI以年为单位分析日志
本文示例及默认值:
AllowFullYearView=2
EnableLockForUpdate:指定AWStats进行update操作时是否建立锁。
格式:EnableLockForUpdate=value
value为:
0 - 不建锁,可以任意多个进程同时进行update操作
1 - 建立锁,同一时间只能一个进程进行update操作
本文示例及默认值:
EnableLockForUpdate=0
LoadPlugin:加载AWStats插件
格式:LoadPlugin "PluginName PluginOptions"
插件是保存在AWStats安装目录中wwwroot/cgi-bin/plugins目录中的扩展名为.pm的perl模块。
Include:把其它配置文件包括到配置文件中
格式:Include "ConfigFileName"
ConfigFileName为任何有效的AWStats配置文件。
这个指令对于有大量虚拟主机的用户非常有用,可以把所有虚拟主机共同的配置存为一主配置文件,每个虚拟主机的配置文件首行通过此指令把主配置文件包括进来,接下来只需要在虚拟主机配置文件中用少量的需要单独配置的指令来覆盖主配置文件中的指令即可。
15.1 插件配置
AWStats安装包附带有多种实用插件,在配置模板中增加了相应的插件加载指令(默认被注释掉),使用时只需去掉相应指令前的注释符即可,但要注意的是有些插件需要安装特定的Perl模块才能正常使用。
4.7.1 插件介绍
Tooltips:在html报告中增加一些提示信息,会增加报告的大小,查看报告时需占用更多带宽,不推荐加载。
加载指令为:LoadPlugin="tooltips"
DecodeUTFKeys:处理搜索引擎UTF8编码的关键字(keywords/keyphrases )
要求的Perl模块:Encode 、 URI::Escape
加载指令为:LoadPlugin="decodeutfkeys"
IPv6:使AWStats支持IPv6地址的反向解析
要求的Perl模块:Net::IP 、Net::DNS
加载指令:LoadPlugin="ipv6"
HashFiles:把AWStats的DNS缓存文件作为native hash文件进行读写,大大提高DNS缓存文件加载速
要求的Perl模块:Storable
加载指令:LoadPlugin="hashfiles"
GeoIP:从Internet IP-Country数据库生成访问者来自国家的统计图表,将会降低8%的处理速度。其IP-Country数据库更新频率快,可以从GeoIP和后面介绍的GeoIPfree两者中选择其一使用。
要求的Perl模块:Geo::IP 或 Geo::IP::PurePerl (from Maxmind)
加载指令:LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"
GeoIPfree:从Internet IP-Country数据库生成访问者来自国家的统计图表,将会降低10%的处理速度。其IP-Country数据库很少更新,可以从GeoIPfree和前面介绍的GeoIP两者中选择其一使用。
要求的Perl模块:Geo::IPfree version 0.2+ (from Graciliano M.P.)
加载指令:LoadPlugin="geoipfree"
GeoIP_Region_Maxmind:增加按访问者来自区域的统计图表,只能检测美国和加拿大的区域。此插件需要从Maxmind订购Region数据库。
要求的Perl模块:Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_region_maxmind GEOIP_STANDARD /pathto/GeoIPRegion.dat"
GeoIP_City_Maxmind:增加按访问者来自城市(主要国家和区域)的统计图表。此插件需要从Maxmind订购完全的商业GeoCity数据库或免费的GeoLiteCity数据库。
要求的Perl模块: Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /pathto/GeoIPCity.dat"
GeoIP_ISP_Maxmind:增加按访问者来自ISP的统计图表。此插件需要从Maxmind订购ISP数据库。
要求的Perl模块: Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /pathto/GeoIPISP.dat"
GeoIP_Org_Maxmind:增加按访问者来自组织的统计图表。此插件需要从Maxmind订购Org数据库
要求的Perl模块: Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_org_maxmind GEOIP_STANDARD /pathto/GeoIPOrg.dat"
UserInfo:在认证用户的报告中的每个登录信息后面增加一段文本(Firtname, Lastname, Office Department, ...) 。在DirData目录中必须建立一个名为userinfo.myconfig.txt的文件(本文示例为:userinfo.www.entage.net.txt) ,文件内容为tab分隔的两个字段,第一个字段为登录名,第二个字段为要显示的信息。
加载指令: LoadPlugin="userinfo"
HostInfo:在主机信息图表中增加一列,点击该列的链接可打开一个弹出窗口,显示主机的详细信息(比如whois信息)。
要求的Perl模块:Net::XWhois
加载指令:LoadPlugin="hostinfo"
ClusterInfo:在Cluster报告中的cluster number后增加一列文本信息(例如完全的主机名)。在DirData目录中必须建立一个名为clusterinfo.myconfig.txt的文件(本文示例为:clusterinfo.www.entage.net.txt) ,文件内容为tab分隔的两个字段,第一个字段为cluster number,第二个字段为要显示的信息。当ShowClusterStats设置为0或定制日志格式中不使用%cluster 时,此插件不将被忽略。
加载指令:LoadPlugin="clusterinfo"
UrlAliases:在URL报告中URL之前增加一列文本信息(Page title, description...)。在DirData目录中必须建立一个名为urlalias.myconfig.txt的文件(本文示例为:urlalias.www.entage.net.txt) ,文件内容为tab分隔的两个字段,第一个字段为URL,第二个字段为要显示的信息。
加载指令:LoadPlugin="urlalias"
TimeHiRes:用-showsteps选项生成以millisecond为单位的时间报告,仅在高度(Debug)时使用。
要求的Perl模块: Time::HiRes (if Perl < 5.8)
加载指令:LoadPlugin="timehires"
TimeZone:用来纠正错误的时区,对于apache和大部分版本的IIS,不需要此插件。此插件会降低40%的处理速度。
要求的Perl模块:Time::Local
加载指令:LoadPlugin="timezone +2"
Rawlog:在AWStats主页面增加一个表单,允许用户去查看原始日志内容。
加载指令:LoadPlugin="rawlog"
GraphApplet:支持3D graphic applet生成的图表
加载指令:LoadPlugin="graphapplet /awstatsclasses"
qqhostinfo:在访问主机表格中增加一列,显示ip对应的位置。此插件为非官方插件,需要自行安装。此插件需要纯真IP数据库QQWry.Dat。
要求的Perl模块:Net::XWhois
加载指令:LoadPlugin="qqhostinfo"
AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,
AWStats二进制包安装过程
1. 下载地址
http://awstats.sourceforge.net/
2. 安装
2.1 rpm或apt
具体过程略。
2.2 tar包安装
直接解压到某一目录下就行,awstats采用perl编写,只要安装好它所需要的perl组件即可。
3. 运行配置脚本生成awstats的配置文件
cd /var/www/awstats/tools
perl awstats_configure.pl
配置脚本询问域名等问题,假设回答的域名为mysite.freeoa.net
3.1 生成的配置文件会放在/etc/awstats/下面
3.2 生成的配置文件的名称为awstats.mysite.freeoa.net.conf
3.3 配置脚本只能修改主要的log日志为combined,如果设置了虚拟主机,需要分别修改虚拟主机中的日志配置。
格式设置 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
自定义的日志采用什么格式 CustomLog logs/mysite.freeoa.net.access.log combined
4. 编辑awstats.mysite.freeoa.net.conf,保证awstats的正常运行
4.1 设置web server的logfile位置
编辑LogFile为web server的log文件位置
LogFile=/var/log/apache2/mysite.freeoa.net.access.log
一定保证和apache2.conf中的log文件保证一致,apache2.conf中log名称为
logs/mysite.freeoa.net.access.log
4.2 设置要分析的服务日志类型
LogType=W
w表示为WEB日志
4.3 设置日志格式
LogFormat=1
1表示采用NCSA apache combined/ELF/XLF log format
(1)多日志合并分析
LogFile="tools/logresolvemerge.pl /var/logs/nginx/30.0206.log /var/logs/nginx/31.0206.log|"
或
LogFile="tools/logresolvemerge.pl /var/logs/nginx/*.0206.log|"
(2)分析使用gzip压缩过的日志文件
LogFile="gzip -d </var/logs/apache2/access.log.gz|"
数据源日志格式和按天的截断规则
对于Apache:日志格式好设置:设置成combined格式即可,日志截断麻烦一点:需要安装cronolog工具,将日志设置成按天截断:
CustomLog "|/usr/sbin/cronolog /var/logs/apache2/mysite.freeoa.net.access.log.%Y%m%d" combined
比如:logs/mysite.freeoa.net.access.log.20100326
日志是压缩格式,可以使用'gzip -d < /var/logs/apache2/mysite.freeoa.net.access.log.%YYYY-24%MM-24%DD-24.gz |' 动态解压缩统计。对于IIS:缺省有比较好的日志按天截断规则,但是IIS的日志格式比较不适合AWStats统计,因此最好直接去掉所有日志字段,然后严格按照以下列表设置:
日期 date
时间 time
客户IP地址 c-ip
用户名 cs-username
方法 cs-method
URI资源 cs-uri-stem
协议状态 sc-status
发送字节数 sc-bytes
协议版本 cs-version
用户代理 cs(User-Agent)
参照 cs(Referer)
相比IIS缺省设置:
减少的有:
服务器IP地址
服务器端口
URI查询
增加的有:
发送字节数
协议版本
参照
注意:AWStats缺省不过滤swf文件,会把.swf算成PageView,所以如果站点上swf文件主要是广告的话最好还是要过滤掉:
4.4 设置所要分析网站域名
SiteDomain="mysite.freeoa.net"
引号中一定要填上域名,或者服务器主机名
4.5 设置awstats的数据库存放目录
DirData="./"
5. 创建awstats初始化数据库
perl awstats.pl -config=mysite.freeoa.net.conf -update
6. 创建awstats的初始化静态统计页面
perl awstats.pl -config=mysite.freeoa.net.conf -output -staticlinks lang=cn -update > awstats.site.html
7. 通过浏览器刷新统计页面
参考 http://awstats.sourceforge.net/docs/awstats_setup.html 页面,其中有其在apache下配置方法。
7.1 修改awstats.mysite.freeoa.net.conf中
AllowToUpdateStatsFromBrowser=1
这样可以通过在浏览器最上端的"立即更新"可以立刻进行更新现有的统计信息。
7.2 修改awstats的存放数据目录的属性为apache的运行用户可读写
chown -R www-data /var/www/awstats/data
7.3 检查/var/www/awstats/cgi-bin/*.pl 是否有执行权限
chmod +x /var/www/awstats/cgi-bin/*.pl
8. 设置需要认证才能访问流量统计页面
8.1 设置用户admin有权访问该页面
cd /var/www/awstats/cgi-bin/
/usr/bin/htpasswd -c ./paswd admin
按提示连续输入两次密码,这样就创建了admin用户才能访问流量统计页面。
8.2 设置apache2.conf中的awstats条目增加如下内容
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /var/www/awstats/cgi-bin/paswd
Require user admin
或者:
<Files "awstats.pl">
AuthType Basic
AuthName "awstat access"
AuthUserFile "/etc/awstats/htpasswd"
Require valid-user
</Files>
9. 两种观看日志分析方法的比较
9.1 静态页面分析方法的优点
a. 安全性高,因为分析过程可以在后台通过crontab来执行,不需要执行cgi.
b. 统计分析页面响应速度快,因为是自动生成的静态页面,所以速度快过动态生成的页面。
9.2 动态页面分析方法的优点
a. 实时查看,可以随时在页面动态刷新统计分析结果。
10. awstats在apache虚拟主机下的配置
10.1 虚拟主机有2个
site.freeoa.net
diy.freeoa.net
10.2 生成并修改对应虚拟主机的配置文件
cd /etc/awstats
cp awstats.mysite.freeoa.net.conf awstats.site.freeoa.net.conf
cp awstats.mysite.freeoa.net.conf awstats.diy.freeoa.net.conf
10.3 修改配置文件中的下列各项
LogFile=/var/logs/apache2/mysite.freeoa.net.access.log
修改为实际的虚拟主机的log文件位置
SiteDomain="site.freeoa.net"
修改为实际各虚拟主机的域名
10.4 修改apache2.conf各虚拟主机中的配置
CustomLog logs/testmysite-mysite.freeoa.net.access.log combined
主要是修改日志格式保证apache输出的日志格式和awstats配置文件中配置一致。
12. 观看流量统计方法
#./awstats.pl -update -config=sitename -lang=cn
比如:./awstats.pl -update -config=mysite.freeoa.net
会自动调用awstats.mysite.freeoa.net.conf这个配置文件
日志统计自动运行
GNU/Linux上:crontab -e: 每天8点10分运行
#update awstats
10 8 * * * (cd /var/www/awstats/cgi-bin/awstats.pl -update -config=mysite.freeoa.net)
12.1 在浏览器输入
查看相关分析
http://mysite.freeoa.net/awstats/awstats.pl?config=mysite.freeoa.net
13 相关组件源码包安装过程
13.1 升级国内主要搜索引擎和蜘蛛定义,安装GeoIP的应用库
GeoIP和Geo::IPfree都免费的是国家/IP的映射表,比通过DNS反相解析域名得到的统计准确,而且速度快。GeoIP的API都是免费的,缺省库是免费的,收费的是它的数据更新服务。Geo::IPfree不仅代码是公开的,而且库数据也是公开的。从网站http://www.maxmind.com/download/geoip/api/c/ 下载解包,编译安装。
perl -MCPAN -e 'install "Geo::IP"'
或者使用纯Perl包 perl -MCPAN -e 'install "Geo::IP::PurePerl"',在debian下可以通过'apt-get install libgeo-ip-perl'安装。
MaxMind目前免费提供了GeoIP和GeoIPCityLite数据包:可以定期每个月从以下地址下载:
http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://www.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
或直接编译之
GeoIP安装:
先下载C库:GeoIP C解包后
%./configure; make
#make install
然后下载Perl库:GeoIP Perl解包后
%perl MakeFile.PL; make
#make install
Geo::IPfree安装:
下载Geo::IPfree解 包
%perl Makefile
%make
#make install
或通过apt安装其:
# apt-get install libgeo-ipfree-perl libgeo-ip-perl libnet-ip-perl libnet-dns-perl
访问此处可以得知其安装的具体过程。http://antezeta.com/awstats/geoip.html
13.2 配置
将缺省awstats.model.conf 命名成common.conf
修改其中的一些配置选项:
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /var/www/awstats/libs/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /var/www/awstats/libs/GeoLiteCity.dat"
创建awstats下创建:data 目录用于统计数据输出
按照一下样例设置配置文件:
Include "common.conf"
LogFile="/var/logs/apache2/mysite.freeoa.net.access.log.%YYYY-24%MM-24%DD-24"
SiteDomain="mysite.freeoa.net"
HostAliases="freeoa.net"
DefaultFile="index.html"
DirData="/var/www/awstats/cgi-bin/data"
14 运行模式
14.1 AWStats的运行模式是这样的:
分析日志:运行后将这样的日志统计结果归档到一个AWStats的数据库(纯文本)里;
然后是输出:分两种形式:一种是通过cgi程序读取统计结果数据库输出;一种是运行后台脚本将输出导出成静态文件;
14.2 统计指标说明
参观者:按来访者不重复的IP统计,一个IP代表一个参观者;
参观次数:一个参观者可能1天之内参观多次(比如:上午一次,下午一次),所以按一定时间内(比如:1个小时),不重复的IP数统计,参观者 的访问次数;
网页数:不包括图片,CSS, JavaScript文件等的纯页面访问总数,但如果一个页面使用了多个帧,每个帧都算一个页面请求;
文件数:来自浏览器客户端的文件请求总数,包括图片,CSS,JavaScript等,用户请求一个页面是,如果页面中包含图片等,所以对服 务器会发出多次文件请求,文件请求数一般远远大于文件数;
字节:传给客户端的数据总流量;
来自REFERER中的数据:日志中的参考(REFERER)字段,记录了访问相应网页之前地址,因此如果用户是通过搜索引擎的搜索结果点击进入网站的,日志中就会有用户在相应搜索引擎的查询地址,这个地址中就可以通过解析将用户查询使用的关键词提取出来:
比如:
203.208.60.90 - - [11/Sep/2011:06:44:04 +0800] "GET /index.php/news/15-puductnews/341-windows-xp-sp2-sp3 HTTP/1.1" 200 7156 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
AWStats在搜索引擎的关键短语和关键词统计方面的功能还是比较完整的:可以对全世界3百多种机器爬虫进行识别,并且可以识别大部分主流国际化搜索引 擎和很多地区的本地语言搜索引擎。
15. 理解配置文件
配置文件及指令说明
AWStats配置文件为awstats.virtualhostname.conf(其中virualhostname为你指定的配置名)或awstats.conf,必须在 /etc/awstats、 /usr/local/etc/awstats、 /etc目录或与awstats.pl脚本文件在同一目录,具体位置由执行3.3节中awstats_configure.pl脚本时指定。
AWStats安装完毕会生成一个配置模板文件,在安装目录的wwwroot/cgi-bin目录,文件名为awstats.model.conf,可以把此文件另存为你的配置文件并按实际进行修改。
AWStats配置文件中使用的指令非常多,一般而言默认值即可满足需要,本文重点介绍以下常用指令,完全的指令说明请查看AWStats配置指令官方文档:LogFile、LogType、LogFormat、LogSeparator、SiteDomain、HostAliases、DNSLookup、DirData、DirCgi、DirIcons、AllowToUpdateStatsFromBrowser、 AllowFullYearView、EnableLockForUpdate、LoadPlugin、Include。
每条指令都可以重复多次指定,先前的值被后面的值覆盖,最后一个指定的值有效。
下面是常用指令的说明:
LogFile:指定要分析的日志文件。
格式:LogFile="filename"
filename可以有多种格式:
a. 绝对路径文件名或相对awstats.pl的相对路径文件名
比如:
"/var/log/apache/access.log"
"../log/mycombinedlog.log"
b. 文件名模板,即使用基于日期时间的AWStats标签的动态文件名,下面是这些AWStats标签的含意:
%YYYY-n n小时以前的带世纪的4位数字表示的年
%YY-n n小时以前的不带世纪的2位数字表示的年
%MM-n n小时以前的2位数字表示的月
%MO-n n小时以前的3个字符表示的缩写形式表示的月
%DD-n n小时以前的2位数字表示的日期
%HH-n n小时以前的2位数字表示的小时
%NS-n Unix时间戳
%WM-n 当月的第几周(1-5)
%Wm-n 当月的第几周(0-4)
%WY-n 当年的第几周(01-52)
%Wy-n 当年的第几周(00-51)
%DW-n 一周的第几天(1-7, 1=sunday) ,如果需要(1-7,1=monday) , n用24替换 .
%Dw-n 一周的第几天(0-6, 0=sunday) ,如果需要(0-6,0=monday) ,n用24替换 .
以上标签中,n为数字,如果需要使用当前的年、月、日、时等,n用0替换
例如:
"/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
"/var/log/access_log.%YY-24%MM-24%DD-24.log"
c. 日志来自于一个管道(pipe)
例如:
使用gzip压缩格式的日志文件:
"gzip -d </var/log/apache/access.log.gz |"
合并负载均衡的多台服务器日志文件:
"/pathtotools/logresolvemerge.pl *.log |"
本文示例为用4小时前的年、月、日拼出文件名的日志文件:
LogFile="/usr/local/apache-2.2.6/logs/access_log.%YYYY-4%MM-4%DD-4"
LogType:指定要分析的日志文件的类型。
格式:LogType=typename
typename为下面的值:
W - web日志,默认值
M - mail日志
F - ftp日志
本文示例为:
LogType=W
LogFormat:指定日志的格式,必须与你的日志格式匹配。
格式:LogFormat=number|"your_own_personalized_log_format"
number为预定义的格式号:
1 - Apache 或 Lotus Notes/Domino native combined格式 (NCSA combined/XLF/ELF日志格式)
2 - IIS 或 ISA 格式 (IIS W3C 日志格式)
3 - Webstar native 日志格式
4 - Apache 或 Squid native common 日志格式 (NCSA common/CLF日志格式)
当LogFormat=4时, 部分属性(browsers, os, keywords...) 功能不能工作。
your_own_personalized_log_format为自定义日志格式,如果日志格式不属于以上4种预定义格式,则需要使用下面的关键词tag自定义日志格式:
%host 客户端主机名或IP地址(对于mail日志,为发送主机)
%host_r 接收的主机名或IP地址 (仅用于mail日志)
%lognamequot 带双引号的 经认证的 登录/用户 格式为: "alex"
%logname 经认证的 登录/用户 格式为: format: alex
%time1 日期和时间 格式为: [dd/mon/yyyy:hh:mm:ss +0000] 或 [dd/mon/yyyy:hh:mm:ss]
%time2 日期和时间 格式为: yyyy-mm-dd hh-mm-ss
%time3 日期和时间 格式为: Mon dd hh:mm:ss or Mon dd hh:mm:ss yyyy
%time4 日期和时间 格式为unix时间戳: dddddddddd
%methodurl 请求方式和URL 格式为: "GET /index.html HTTP/x.x"
%methodurlnoprot 请求方式和URL 格式为: "GET /index.html"
%method 请求方式 格式为: GET
%url 请求的URL 格式为: /index.html
%query 查询字符串(被URLWithQuery选项使用)
%code 返回的状态代码(web日志的格式为: 999)
%bytesd 档案的大小,以字节bytes为单位
%refererquot Referer页面 格式为: "http://from.com/from.htm"
%referer Referer页面 格式为: http://from.com/from.htm
%uaquot User agent 格式为: "Mozilla/4.0 (compatible, ...)"
%ua User agent 格式为: Mozilla/4.0_(compatible...)
%gzipin mod_gzip压缩输入的字节(bytes) 格式为: In:XXX
%gzipout mod_gzip压缩输出的字节和压缩比率(bytes & ratio) 格式为: Out:YYY:ZZpct.
%gzipratio mod_gzip压缩比率(ratio) 格式为: ZZpct.
%deflateratio mod_deflate压缩比率(ratio) 格式为: (ZZ)
%email EMail发送者 (仅用于mail日志)
%email_r EMail接收者 (for mail log)
%virtualname web服务器虚拟主机名.当同一日志文件中包含多个虚拟主机的数据时使用,AWStats会抛弃虚拟主机名不在SiteDomain或HostAliases指令中的记录
%cluster 如果日志文件来自不同的主机(使用logresolvemerge.pl合并的), 这个tag定义cluster id
%extraX X为数字,你计划使用ExtraSection属性来生成个性化报告的一个字段
如果日志中有一些字段不包括在上面列表的关键词tag中,使用
%other 其它不使用双引号的字段 格式为: other
%otherquot 其它使用双引号的字段 格式为:"other"
本文示例为:
LogFormat=1
等效的自定义格式为:
LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
LogSeparator:日志字段的分隔符。
格式:LogSeparator="separator"
AWStats默认的日志字段分隔符是空格,如果日志文件不是以空格为字段分隔符,则需要使用此指令指定特定的字段分隔符。如果LogFormat指令的值为预定义的(1、2、3、4),此指令将被忽略。
separator可以是空格、任意字符、以反斜线开始的转义字符(\t 、\| 等)。
默认值及本文示例为:
LogSeparator=" "
SiteDomain:指定站点的主域名或虚拟主机名。
格式:SiteDomain="DomainName"
示例:SiteDomain="www.domain.com"
DomainName默认为空,如果为空,AWStats将拒绝执行。
如果多个虚拟主机使用同一个日志文件(日志格式包括%virtualname字段),此指令告诉AWStats只分析%virtualname字段的值为DomainName的记录;对于单主机日志文件,当ShowLinksOnUrl选项被设置为1时,此指令用来产生完全的URL链接。
本文示例为:
SiteDomain="www.entage.net"
HostAliases:站点的别名,用来访问站点的所有域名、IP地址、虚拟主机名。
格式:HostAliases="AliasesList"
示例:HostAliases="www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$] @/tmp/domainlist.txt"
这个指令用来分析日志文件的refere字段,帮助AWStats区分一个refere字段的URL是同一站点的自身URL还是其它外站的URL。
AliasesList是空格分隔的别名列表,可以使用下面形式的正则表达式值:REGEX[value] ,如果别名列表在一个文件中,也可以使用@/mypath/myfile形式加载文件内容。
本文示例:
HostAliases="www.entage.net 127.0.0.1 localhost"
DNSLookup:是否将访问者的IP地址反向解析为完整的主机名。
格式:DNSLookup=TypeValue
TypeValue 的值为:
0 - 不进行DNS反向解析
1 - 完全启用DNS反向解析,会大大降低处理速度,不要用于访问量非常大的站点
2 - 仅通过静态DNS缓存文件(如果存在)进行DNS反向解析,为默认值
本文示例:
DNSLookup=2
DirData:指定AWSTATS生成数据的存放目录。
格式:DirData="DirName"
DirName为执行AWStats脚本的用户可读写目录,如果启用AllowToUpdateStatsFromBrowser,则运行WEB服务的用户也需要对此目录的读写权限。
本文示例:
DirData="/var/lib/awstats"
DirCgi:指定AWStats的cgi-bin目录的相对或绝对URL。
此指令仅用于AWStats从命令行带-output参数运行时,目的是产生HTML报告页面的链接。
本文示例:
DirCgi="/awstats"
DirIcons:指定AWStats的图标目录的相对或绝对URL。
如果你要生成静态报告("... -output > outputpath/output.html"),指定相对于outputpath的相对路径。
本文示例及默认值:
DirIcons="/awstatsicons"
AllowToUpdateStatsFromBrowser:指定是否允许从浏览器更新数据。
格式:AllowToUpdateStatsFromBrowser=value
value为:
0 - 只允许从命令行或计划任务执行更新
1 - 在报告页面上增加一个update按钮,允许从浏览器更新数据,不建议
本文示例及默认值:
AllowToUpdateStatsFromBrowser=0
AllowFullYearView:是否允许以年为单位分析日志。
格式:AllowFullYearView=value
AWStats默认是以月为单位分析日志数据,此指令设置哪种方式可以按年为单分析日志。
value为以下值之一:
0 - 不允许以年为单位分析日志
1 - 仅允许从命令行以年为单位分析日志,-Year- 值在combo中不可见
2 - 仅允许从命令行以年为单位分析日志,-Year- 值在combo中可见但不可用
3 - 允许从命令行和CGI以年为单位分析日志
本文示例及默认值:
AllowFullYearView=2
EnableLockForUpdate:指定AWStats进行update操作时是否建立锁。
格式:EnableLockForUpdate=value
value为:
0 - 不建锁,可以任意多个进程同时进行update操作
1 - 建立锁,同一时间只能一个进程进行update操作
本文示例及默认值:
EnableLockForUpdate=0
LoadPlugin:加载AWStats插件
格式:LoadPlugin "PluginName PluginOptions"
插件是保存在AWStats安装目录中wwwroot/cgi-bin/plugins目录中的扩展名为.pm的perl模块。
Include:把其它配置文件包括到配置文件中
格式:Include "ConfigFileName"
ConfigFileName为任何有效的AWStats配置文件。
这个指令对于有大量虚拟主机的用户非常有用,可以把所有虚拟主机共同的配置存为一主配置文件,每个虚拟主机的配置文件首行通过此指令把主配置文件包括进来,接下来只需要在虚拟主机配置文件中用少量的需要单独配置的指令来覆盖主配置文件中的指令即可。
15.1 插件配置
AWStats安装包附带有多种实用插件,在配置模板中增加了相应的插件加载指令(默认被注释掉),使用时只需去掉相应指令前的注释符即可,但要注意的是有些插件需要安装特定的Perl模块才能正常使用。
4.7.1 插件介绍
Tooltips:在html报告中增加一些提示信息,会增加报告的大小,查看报告时需占用更多带宽,不推荐加载。
加载指令为:LoadPlugin="tooltips"
DecodeUTFKeys:处理搜索引擎UTF8编码的关键字(keywords/keyphrases )
要求的Perl模块:Encode 、 URI::Escape
加载指令为:LoadPlugin="decodeutfkeys"
IPv6:使AWStats支持IPv6地址的反向解析
要求的Perl模块:Net::IP 、Net::DNS
加载指令:LoadPlugin="ipv6"
HashFiles:把AWStats的DNS缓存文件作为native hash文件进行读写,大大提高DNS缓存文件加载速
要求的Perl模块:Storable
加载指令:LoadPlugin="hashfiles"
GeoIP:从Internet IP-Country数据库生成访问者来自国家的统计图表,将会降低8%的处理速度。其IP-Country数据库更新频率快,可以从GeoIP和后面介绍的GeoIPfree两者中选择其一使用。
要求的Perl模块:Geo::IP 或 Geo::IP::PurePerl (from Maxmind)
加载指令:LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"
GeoIPfree:从Internet IP-Country数据库生成访问者来自国家的统计图表,将会降低10%的处理速度。其IP-Country数据库很少更新,可以从GeoIPfree和前面介绍的GeoIP两者中选择其一使用。
要求的Perl模块:Geo::IPfree version 0.2+ (from Graciliano M.P.)
加载指令:LoadPlugin="geoipfree"
GeoIP_Region_Maxmind:增加按访问者来自区域的统计图表,只能检测美国和加拿大的区域。此插件需要从Maxmind订购Region数据库。
要求的Perl模块:Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_region_maxmind GEOIP_STANDARD /pathto/GeoIPRegion.dat"
GeoIP_City_Maxmind:增加按访问者来自城市(主要国家和区域)的统计图表。此插件需要从Maxmind订购完全的商业GeoCity数据库或免费的GeoLiteCity数据库。
要求的Perl模块: Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /pathto/GeoIPCity.dat"
GeoIP_ISP_Maxmind:增加按访问者来自ISP的统计图表。此插件需要从Maxmind订购ISP数据库。
要求的Perl模块: Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /pathto/GeoIPISP.dat"
GeoIP_Org_Maxmind:增加按访问者来自组织的统计图表。此插件需要从Maxmind订购Org数据库
要求的Perl模块: Geo::IP (from Maxmind)
加载指令:LoadPlugin="geoip_org_maxmind GEOIP_STANDARD /pathto/GeoIPOrg.dat"
UserInfo:在认证用户的报告中的每个登录信息后面增加一段文本(Firtname, Lastname, Office Department, ...) 。在DirData目录中必须建立一个名为userinfo.myconfig.txt的文件(本文示例为:userinfo.www.entage.net.txt) ,文件内容为tab分隔的两个字段,第一个字段为登录名,第二个字段为要显示的信息。
加载指令: LoadPlugin="userinfo"
HostInfo:在主机信息图表中增加一列,点击该列的链接可打开一个弹出窗口,显示主机的详细信息(比如whois信息)。
要求的Perl模块:Net::XWhois
加载指令:LoadPlugin="hostinfo"
ClusterInfo:在Cluster报告中的cluster number后增加一列文本信息(例如完全的主机名)。在DirData目录中必须建立一个名为clusterinfo.myconfig.txt的文件(本文示例为:clusterinfo.www.entage.net.txt) ,文件内容为tab分隔的两个字段,第一个字段为cluster number,第二个字段为要显示的信息。当ShowClusterStats设置为0或定制日志格式中不使用%cluster 时,此插件不将被忽略。
加载指令:LoadPlugin="clusterinfo"
UrlAliases:在URL报告中URL之前增加一列文本信息(Page title, description...)。在DirData目录中必须建立一个名为urlalias.myconfig.txt的文件(本文示例为:urlalias.www.entage.net.txt) ,文件内容为tab分隔的两个字段,第一个字段为URL,第二个字段为要显示的信息。
加载指令:LoadPlugin="urlalias"
TimeHiRes:用-showsteps选项生成以millisecond为单位的时间报告,仅在高度(Debug)时使用。
要求的Perl模块: Time::HiRes (if Perl < 5.8)
加载指令:LoadPlugin="timehires"
TimeZone:用来纠正错误的时区,对于apache和大部分版本的IIS,不需要此插件。此插件会降低40%的处理速度。
要求的Perl模块:Time::Local
加载指令:LoadPlugin="timezone +2"
Rawlog:在AWStats主页面增加一个表单,允许用户去查看原始日志内容。
加载指令:LoadPlugin="rawlog"
GraphApplet:支持3D graphic applet生成的图表
加载指令:LoadPlugin="graphapplet /awstatsclasses"
qqhostinfo:在访问主机表格中增加一列,显示ip对应的位置。此插件为非官方插件,需要自行安装。此插件需要纯真IP数据库QQWry.Dat。
要求的Perl模块:Net::XWhois
加载指令:LoadPlugin="qqhostinfo"
该文章最后由 阿炯 于 2012-10-26 15:09:50 更新,目前是第 3 版。