您的位置:首页 > 运维架构 > Linux

日志分析工具AWStats在linux环境下的安装配置

2008-12-12 11:15 1076 查看
http://9ng.cn/1/viewspace-27213

本文遵循创作共用版权协议,转载请保留原文链接和原文作者
本文链接:http://9ng.cn/1/viewspace-27213
本文作者:九尾银狐

1. 关于本文
本文将以AWStats 6.7为例,以CentOS 5为平台,讲述AWStats的安装和配置。

2. 关于AWStats
AWStats是一个免费、功能强大、特性丰富的日志分析工具,它能分析由WEB、STREAMING、FTP、MAIL等服务生成的日志,并生成先进的统计图表。AWStats作为CGI或从命令行运行,在数个图形网页中显示你日志中包含的所有可能信息。它利用一部分档案资料就能经常很快地处理大量日志档案。它能分析的日志文件来自从各大服务器工具,如 Apache日志文件 (NCSA combined/XLF/ELF log format or common/CLF log format)、WebStar、IIS (W3C日志格式)及许多其他Web、Proxy(代理服务器)、Wap、流服务器、邮件服务器和一些FTP服务器。

3. AWStats的安装

3.1 下载最新稳定发行版(GA)的AWStats软件
访问AWStats网站http://awstats.sourceforge.net/?seenIEPage=1#DOWNLOAD下载最新稳定发行版的AWStats软件包。本文使用的是6.7版本,在linux系统下用下面的命令下载:
wgethttp://nchc.dl.sourceforge.net/sourceforge/awstats/awstats-6.7.tar.gz

3.2 解压缩下载的软件包
首先建立一个工作目录( 笔者建议的目录为/usr/local/src/awstats ) :
mkdir -p /usr/local/src/awstats
将下载的软件包移至工作目录:
mv awstats-6.7.tar.gz /usr/local/src/awstats
进入工作目录并用tar命令解压源码包:
cd /usr/local/src/awstats
tar zxvf awstats-6.7.tar.gz
命令执行结束后,当前工作目录下将生成一个新的子目录awstats-6.7。

3.3 安装并生成默认配置
首先将上一步生成的awstats-6.7目录移动到欲安装的目录,本文示例为/usr/local/awstats :
mv /usr/local/src/awstats/awstats-6.7 /usr/local/awstats
更改文件属主为运行awstats的用户和组,本文示例为root:
chown -R root:root /usr/local/awstats
更改文件权限:
chmod -R 755 /usr/local/awstats
进入awstats目录下的tools目录:
cd /usr/local/awstats/tools
运行perl脚本awstats_configure.pl生成默认配置:
perl awstats_configure.pl
脚本运行过程中会询问以下问题:
-----> Check for web server install
Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:/Program files/apache group/apache/conf/httpd.conf
Config file path ('none' to skip web server setup):
>/usr/local/apache-2.2.6/conf/httpd.conf
此处是询问你web服务的配置文件路径,如果输入none,则跳过更新web服务配置文件,以后手动更新。因为仅当此perl脚本识别apache配置文件指令CustomLog指定的格式为common且指令前没有空格时才更新apache配置文件,笔者推荐此处输入none,以后手工配置。本文示例为 /usr/local/apache-2.2.6/conf/httpd.conf 。
-----> Check and complete web server config file '/usr/local/apache-2.2.6/conf/httpd.conf'
Warning: You Apache config file contains directives to write 'common' log files
This means that some features can't work (os, browsers and keywords detection).
Do you want me to setup Apache to write 'combined' log files [y/N] ? y
此处为检测到apache配置文件中定制日志格式(CustomLog)为common格式,建议更改为combined格式,输入 y 接受建议。
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
此处是询问你是否要建立一个新的AWStats配置文件,如果是第一次安装,则输入 y ,以建立一个新的配置文件
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example:www.mysite.com
Example: demo
Your web site, virtual server or profile name:
>www.entage.net
此处是询问你的站点或虚拟主机或配置文件的名称,将生成一个awstats.此处输入的名称.conf的配置文件,如果只分析一个站点,直接用站点域名就好了,如果要分析多个站点,可以把此处生成的文件做为公用的模板,取个易理解的名字好了,本文示例为www.entage.net
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>
此处是询问AWStats配置文件的存放路径,必须为/etc/awstats,、/usr/local/etc/awstats、 /etc 或者与awstats.pl文件同一目录,默认为/etc/awstats,直接回车接受默认值。

3.4 设置apache日志精确的按天分割
使用AWStats进行日志分析需要尽可能准确的按天保存日志,这样可以提高AWStats的处理速度。
本文推荐使用日志分割工具cronolog,安装方法请参阅本文作者另外一篇文章“日志分割工具cronolog”,这里不再详述。
本文示例为:
CustomLog "|/usr/local/cronolog/sbin/cronolog /usr/local/apache-2.2.6/logs/access_log.%Y%m%d" combined

3.5设置apache配置文件
如果3.3节中正确检测到CustomLog指定的格式为common,则awstats_config.pl脚本已经正确更新了apache配置文件,可以跳过此步。
编辑apache配置文件,以便能通过web查看统计报表,本文示例为:
vi /urs/local/apache-2.2.6/conf/httpd.conf
按下面的要求进行更改:

修改CustomLog指令,设置定制日志格式为combined,本文示例为:
CustomLog "/usr/local/cronolog/sbin/cronolog /usr/local/apache-2.2.6/logs/access_log.%Y%m%d" combined
或者,此时你尚未安装cronolog,可按下面的示例更改:
CustomLog logs/access_log combined

增加下面的行:
#
# Directives to allow use of AWStats as a CGI
#
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/"

#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
3.6 重启apache服务,以使设置生效
如果apache是直接rpm安装或yum方式安装,使用下面的命令重启服务:
service httpd restart
如果apache是源码方式安装,使用安装目录bin目录下的apachectl脚本重启服务,本文示例为:
/usr/local/apache-2.2.6/bin/apachectl restart

4. AWStats的配置
4.1 配置文件及指令说明
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配置文件。
这个指令对于有大量虚拟主机的用户非常有用,可以把所有虚拟主机共同的配置存为一主配置文件,每个虚拟主机的配置文件首行通过此指令把主配置文件包括进来,接下来只需要在虚拟主机配置文件中用少量的需要单独配置的指令来覆盖主配置文件中的指令即可。

4.2 分析Apache服务器日志配置
下面以apache日志为例介绍AWStats的基本配置。
  如果只分析一个站点的日志,只需修改3.3节安装时指定的awstats.virtualhostname.conf文件,本文示例为/etc/awstats/awstats.www.entage.net.conf 。
如果有很多虚拟主机的日志需要分析,可以从配置模板生成共用的主配置文件,再单独配置每个虚拟主机。
下面以独立站点为例进行说明:
1) 建立AWStats数据目录并设置相应权限
mkdir /var/lib/awstats
chmod 755 /var/lib/awstats
2) 生成配置文件(如果3.3节指定了配置名,本文示例为www.entage.net ,跳过此步):
cp /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/awstats.www.entage.net.conf
3) 修改配置文件(本文示例为/etc/awstats/awstats.www.entage.net.conf)
vi /etc/awstats/awstats.www.entage.net.conf
按下面的内容修改相应指令:

LogType=W
LogFormat=1
LogSeparator=" "
DNSLookup=2
DirData="/var/lib/awstats"
DirCgi="/awstats"
DirIcons="/awstatsicons"
AllowToUpdateStatsFromBrowser=0
AllowFullYearView=2
EnableLockForUpdate=0
LogFile="/usr/local/apache-2.2.6/logs/access_log.%YYYY-4%MM-4%DD-4"
SiteDomain="www.entage.net"
HostAliases="www.entage.net"
下面以多个虚拟主机为例进行说明:
1) 建立AWStats数据目录并设置相应权限
mkdir /var/lib/awstats
chmod 755 /var/lib/awstats
2) 生成共用的主配置文件/etc/awstats/common.conf:
cp /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/common.conf
3) 修改主配置文件/etc/awstats/common.conf
vi /etc/awstats/common.conf
按下面的内容修改相应指令:

LogType=W
LogFormat=1
LogSeparator=" "
DNSLookup=2
DirData="/var/lib/awstats"
DirCgi="/awstats"
DirIcons="/awstatsicons"
AllowToUpdateStatsFromBrowser=0
AllowFullYearView=2
EnableLockForUpdate=0
4) 修改虚拟主机配置文件
虚拟主机配置文件只需要Include、LogFile、SiteDomain、HostAliases 4条指令即可,下面以两个虚拟主机为例进行说明。

增加并修改第一个虚拟主机www.entage.net的配置文件:
vi /etc/awstats/awstats.www.entage.net.conf
按下面内容修改:

Include "/etc/awstats/common.conf"
LogFile="/usr/local/apache-2.2.6/logs/access_log.%YYYY-4%MM-4%DD-4"
SiteDomain="www.entage.net"
HostAliases="www.entage.net 127.0.0.1 localhost"
增加并修改第二个虚拟主机bbs.entage.net的配置文件:
vi /etc/awstats/awstats.bbs.entage.net.conf
按下面的内容修改:

Include "/etc/awstats/common.conf"
LogFile="/usr/local/apache-2.2.6/logs/bbs_access_log.%YYYY-4%MM-4%DD-4"
SiteDomain="bbs.entage.net"
HostAliases="bbs.entage.net"
4.3 分析Mail服务器日志配置
  适用于Postfix, Sendmail, QMail日志文件,且必须使用AWStats提供的工具maillogconvert.pl对邮件日志进行预处理。
1) 建立AWStats数据目录并设置相应权限
mkdir /var/lib/awstats
chmod 755 /var/lib/awstats
2) 生成配置文件:
cp /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/awstats.mail.entage.net.conf
3) 修改配置文件(本文示例为/etc/awstats/awstats.mail.entage.net.conf)
vi /etc/awstats/awstats.mail.entage.net.conf
按下面的内容修改相应指令:
对于standard Postfix, Sendmail和standard QMail日志文件,设置
   LogFile="perl /path/to/maillogconvert.pl standard < /pathtomaillog/maillog |"
如果日志文件是压缩的,设置
   LogFile="gzip -cd /var/log/maillog.0.gz | /path/to/maillogconvert.pl standard |"
如果是VAdmin QMail日志文件 (multi-host/virtualhost mail servers running vadmin software),设置
   LogFile="perl /path/to/maillogconvert.pl vadmin < /pathtomaillog/maillog |"
其它需要修改的指令:
  
DirData="/var/lib/awstats"
LogType=M
LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
LevelForFileTypesDetection=0
ShowMenu=1
ShowSummary=HB
ShowMonthStats=HB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowEMailSenders=HBML
ShowEMailReceivers=HBML
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=1
4.4 分析ProFTPd日志设置
1) 建立AWStats数据目录并设置相应权限
mkdir /var/lib/awstats
chmod 755 /var/lib/awstats
  2) 修改proftpd的配置文件proftpd.conf
   vi /path/to/proftpd.conf
添加下面两行:
   LogFormat awstats "%t %h %u %m %f %s %b" # WARNING: You must use a tab char between % tags and not a space !
ExtendedLog /var/log/xferlog read,write awstats # WARNING: ExtendedLog directive might need to be placed inside a virtual host context if you use them.
然后按下面的内容修改TransferLog指令来关闭旧格式的transferlog:
TransferLog none # WARNING: TransferLog directive might need to be placed inside a virtual host context if you use them.
3) 停止proftpd,并删除/var/log/xferlog,开启proftpd服务。
4) 生成配置文件:
cp /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/awstats.ftp.entage.net.conf
5) 修改配置文件(本文示例为/etc/awstats/awstats.ftp.entage.net.conf)
vi /etc/awstats/awstats.ftp.entage.net.conf
按下面的内容修改相应指令:

DirData="/var/lib/awstats"
LogFile="/var/log/xferlog"
LogType=F
LogFormat="%time1 %host %logname %method %url %code %bytesd"
LogSeparator="/t"
NotPageList=""
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
ShowLinksOnUrl=0
ShowMenu=1
ShowSummary=UVHB
ShowMonthStats=UVHB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=HB
ShowHostsStats=HBL
ShowAuthenticatedUsers=HBL
ShowRobotsStats=0
ShowEMailSenders=0
ShowEMailReceivers=0
ShowSessionsStats=1
ShowPagesStats=PBEX
ShowFileTypesStats=HB
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=0
4.5 分析vsFTPd或其它xferlog格式的FTP日志设置
1) 建立AWStats数据目录并设置相应权限
mkdir /var/lib/awstats
chmod 755 /var/lib/awstats
  2) 修改配置文件(本文示例为/etc/awstats/awstats.ftp.entage.net.conf)
vi /etc/awstats/awstats.ftp.entage.net.conf
按下面的内容修改相应指令:

DirData="/var/lib/awstats"
LogFile="/var/log/xferlog"
LogType=F
LogFormat="%time3 %other %host %bytesd %url %other %other %method %other %logname %other %code %other %other"
LogSeparator="/s"
NotPageList=""
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
ShowLinksOnUrl=0
ShowMenu=1
ShowSummary=UVHB
ShowMonthStats=UVHB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=HB
ShowHostsStats=HBL
ShowAuthenticatedUsers=HBL
ShowRobotsStats=0
ShowEMailSenders=0
ShowEMailReceivers=0
ShowSessionsStats=1
ShowPagesStats=PBEX
ShowFileTypesStats=HB
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=0
4.6 分析Realmedia日志设置
1) 建立AWStats数据目录并设置相应权限
mkdir /var/lib/awstats
chmod 755 /var/lib/awstats
  2) 修改配置文件(本文示例为/etc/awstats/awstats.real.entage.net.conf)
vi /etc/awstats/awstats.real.entage.net.conf
按下面的内容修改相应指令:

DirData="/var/lib/awstats"
LogFile="/pathtomediaserverlog/mediaserverlog"
LogType=S
LogFormat="%host %other %logname %time1 %methodurl %code %bytesd %uabracket %other %other %other %other %other %other %other %other"
LogSeparator="/s+"
ShowMenu=1
ShowSummary=UHB
ShowMonthStats=UHB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=HB
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowEMailSenders=0
ShowEMailReceivers=0
ShowSessionsStats=0
ShowPagesStats=PB
ShowFileTypesStats=HB
ShowFileSizesStats=0
ShowBrowsersStats=1
ShowOSStats=1
ShowOriginStats=H
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=1
ShowSMTPErrorsStats=0
4.7 插件配置
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"

4.7.2 插件安装
笔者推荐安装以下插件:DecodeUTFKeys、HashFiles、GeoIP、GeoIP_City_Maxmind、HostInfo、GraphApplet、qqhostinfo。
1) 安装GeoIP C Library:
1.1) 下载GeoIP C Library
访问 maxmind网站下载页面http://www.maxmind.com/download/geoip/api/c/下载最新版本的GeoIP C Library。本文使用的是1.4.4版本,在linux系统下用下面的命令下载:
wgethttp://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.4.tar.gz
1.2) 解压缩下载的源码包
首先建立一个工作目录( 笔者建议的目录为/usr/local/src/GeoIP ) :
mkdir -p /usr/local/src/GeoIP
将下载的源码包移至工作目录:
mv GeoIP-1.4.4.tar.gz /usr/local/src/GeoIP
进入工作目录并用tar命令解压源码包:
cd /usr/local/src/GeoIP
tar zxvf GeoIP-1.4.4.tar.gz
命令执行结束后,当前工作目录下将生成一个新的子目录GeoIP-1.4.4,此目录下即为GeoIP C Library的源码文件。
1.3) 配置Makefile文件
进入GeoIP C Library源码目录:
cd GeoIP-1.4.4
执行下面的命令可查看可配置选项:
  ./configure --help
本文使用的配置命令如下:
./configure
1.4) 编译源代码
执行下面的命令编译源代码:
  make
1.5) 安装
  执行下面的命令安装到目标路径:
  make install
2) 安装相关Perl模块:
   笔者推荐使用perl的CPAN模块进行安装。
   命式如下:
   perl -MCPAN -e [shell | "install <perl-module-name,...>"]
   其中<perl-module-name>为要安装的perl模块的名字。
如果-e后接shell关键字,表示进入cpan交互界面,在cpan>提示符下键入相关命令。
   如果-e后接cpan命令,则不进入cpan交互界面而直接执行命令。
如果是第一次使用cpan模块则需要进行配置,请跟随程序指导完成配置,一般接受默认值即可。
2.1) 安装Encode模块:
执行下面的命令安装Encode模块:
   perl -MCPAN -e "install Encode"
2.2) 安装URI::Escape模块:
执行下面的命令安装URI::Escape模块:
   perl -MCPAN -e "install URI::Escape"
2.3) 安装Storable模块:
执行下面的命令安装Storable模块:
   perl -MCPAN -e "install Storable"  
2.4) 安装Geo::IP模块:
执行下面的命令安装Geo::IP模块:
   perl -MCPAN -e "install Geo::IP" 
2.5) 安装Net::XWhois模块:
执行下面的命令安装Net::XWhois模块:
   perl -MCPAN -e "install Net::XWhois" 
可以用下面的命令一次安装完以上5个模块:
  perl -MCPAN -e "install Encode, URI::Escape,Storable,Geo::IP,Net::XWhois"
3) 安装qqhostinfo插件:
  3.1) 下载qqhostinfo插件
执行下面的命令下载qqhostinfo插件:
   wget http://9ng.cn/attachments/software/qqhostinfo.tar.gz
  3.2) 解压缩插件包
   tar zxvf qqhostinfo.tar.gz
  3.3) 将插件移到awstats插件目录
mv qqhostinfo.pm qqwry.pl QQWry.Dat /usr/local/awstats/wwwroot/cgi-bin/plugins
4) 下载IP解析地址库:
4.1) 下载GeoIPLite Country地址库(需要定时更新)
   执行下面的命令下载GeoIPLite Country地址库:
   wgethttp://www.maxmind.com/download/geoip/database/GeoIP.dat.gz-O /usr/local/share/GeoIP/GeoIP.dat.gz
   执行下面的命令解压缩文件:
   gzip -df /usr/local/share/GeoIP/GeoIP.dat.gz
4.2) 下载GeoIPLite City地址库(需要定时更新)
   执行下面的命令下载GeoIPLite City地址库:
   wgethttp://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz -O /usr/local/share/GeoIP/GeoLiteCity.dat.gz
   执行下面的命令解压缩文件:
   gzip -df /usr/local/share/GeoIP/GeoLiteCity.dat.gz
4.3) 下载纯真IP地址库(需要定时更新)
执行下面的命令下载纯真IP地址库:
   wget http://update.cz88.net/soft/qqwry.rar
执行下面的命令解压缩文件(RAR For Linux):
   /usr/local/rar/unrar e -y -o+ qqwry.rar QQWry.Dat /usr/local/awstats/wwwroot/cgi-bin/plugins
执行下面的命令删除压缩包:
rm -f qqwry.rar
5) 更改AWStats配置文件,启用插件
   如果是单主机站点环境,直接修改配置文件,本文示例为:
vi /etc/awstats/awstats.www.entage.net.conf
如果是多虚拟主机环境,修改主配置文件,本文示例为:
   vi /etc/awstats/common.conf
按下面的内容修改配置文件中的相关指令,以启用插件:
   ==============Plugins configuration Begin===================
LoadPlugin="decodeutfkeys"
LoadPlugin="hashfiles"
LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/share/GeoIP/GeoLiteCity.dat"
LoadPlugin="hostinfo"
LoadPlugin="qqhostinfo"
LoadPlugin="graphapplet /awstatsclasses"
   ==============Plugins configuration END====================

5. AWStats使用
5.1 统计数据库的生成和更新
1) 从命令行更新(推荐)
首次进行日志分析时最好从命令行下手动执行,因为你可以看到命令的输出,方便解决执行时出现的错误。
   AWStats建立和更新统计数据库的命令是:
   perl awstats.pl -config=mysite -update
其中:
   mysite是先前配置时指定的配置名,AWStats将会读取先前指定的配置目录下的配置文件awstats.mysite.conf,如果不存在则读取awstats.conf。
AWStats将在先前配置文件中DataDir参数指定的目录中保存统计数据库。
AWStats默认以月为单建立统计数据库,如果一个站点的访问量非常大,以至日志文件非常大,会降低AWStats的运行效率,此种情况下可以在命令行加-databasebreak=day参数,以天为单位建立统计数据库。
   为了能直接分析某个特定日志文件,而不用修改配置文件,可在命令行加-logfile="/path/to/your/log/name"参数指定日志文件,此参数将覆盖配置文件中的LogFile指令。类似的,配置文件中的常指令基本上(特殊的除外)都可以在命令行以参数的形式指定特定的值。
本文示例为:
   perl awstats.pl -config=www.entage.net -update
命令执行结束后将会出现类似下面的结果:
  
Update for config "/etc/awstats/awstats.www.entage.net.conf"
With data in log file "/usr/local/apache-2.2.6/logs/access_log.20080424"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 225730
Found 122 dropped records,
Found 87 corrupted records,
Found 0 old records,
Found 225521 new qualified records.
其中:
Dropped records是被丢弃的记录,因为它们不是由用户产生的http请求,或者与AWStats的过滤条件不符(可查看SkipHosts,SkipUserAgents,SkipFiles, OnlyHosts, OnlyUserAgents,OnlyFiles 参数的设置)。如果要查看被丢弃的记录,可以在执行命令时指定-showdropped 参数。
  Corrupted records是不符合配置文件中LogFormat参数指定格式的记录。如果要查看这些记录,可以在执行命令时指定-showcorrupted参数。
  Old records是已经被先前的updata进程处理过的记录,建议每次分析更新过程结束后删除处理完的记录,以提高下次执行时的效率。
  New records是符合AWStats要求,用来更新统计数据库的记录。

2) 通过web浏览器进行更新
   AWStats也可以通过web浏览器进行更新,以提供实时的统计信息。要实现这个功能,配置文件中的AllowToUpdateStatsFromBrowser参数必须设为1,这样在查看统计报告的WEB页面中将会显示Update Now的链接,点击此链接即可更新AWStats的统计数据库。
3) 设置定时自动更新 
   可以通过linux的crontab设置定时更新AWStats的统计数据库。
   下面的例子将设置AWStats在第天凌晨3:50分更新统计数据库。
执行下面的命令编辑crontab定时任务:
   crontab -e
   按下面的格式编辑:
   #Minute hour day month week command
50 3 * * * perl awstats.pl -config=www.entage.net -update >/tmp/awstats.log 2>&1
5.2 生成和查看统计报告
注意:生成和查看统计报告的前提是已经按上一节的步骤生成了统计数据库。
  1) 生成静态报告(需要定时生成)
   首先要生成报告的主页面,命令如下:
   perl awstats.pl -config=mysite -output -staticlinks > awstats.mysite.html  
接下来生成报告的详细子页面,需要在命令行下通过output参数指定报告的名字,命令如下:
perl awstats.pl -config=mysite -output=alldomains -staticlinks > awstats.mysite.alldomains.html
perl awstats.pl -config=mysite -output=allhosts -staticlinks > awstats.mysite.allhosts.html
perl awstats.pl -config=mysite -output=lasthosts -staticlinks > awstats.mysite.lasthosts.html
perl awstats.pl -config=mysite -output=unknownip -staticlinks > awstats.mysite.unknownip.html
perl awstats.pl -config=mysite -output=alllogins -staticlinks > awstats.mysite.alllogins.html
perl awstats.pl -config=mysite -output=lastlogins -staticlinks > awstats.mysite.lastlogins.html
perl awstats.pl -config=mysite -output=allrobots -staticlinks > awstats.mysite.allrobots.html
perl awstats.pl -config=mysite -output=lastrobots -staticlinks > awstats.mysite.lastrobots.html
perl awstats.pl -config=mysite -output=urldetail -staticlinks > awstats.mysite.urldetail.html
perl awstats.pl -config=mysite -output=urlentry -staticlinks > awstats.mysite.urlentry.html
perl awstats.pl -config=mysite -output=urlexit -staticlinks > awstats.mysite.urlexit.html
perl awstats.pl -config=mysite -output=browserdetail -staticlinks > awstats.mysite.browserdetail.html
perl awstats.pl -config=mysite -output=osdetail -staticlinks > awstats.mysite.osdetail.html
perl awstats.pl -config=mysite -output=unknownbrowser -staticlinks > awstats.mysite.unknownbrowser.html
perl awstats.pl -config=mysite -output=unknownos -staticlinks > awstats.mysite.unknownos.html
perl awstats.pl -config=mysite -output=refererse -staticlinks > awstats.mysite.refererse.html
perl awstats.pl -config=mysite -output=refererpages -staticlinks > awstats.mysite.refererpages.html
perl awstats.pl -config=mysite -output=keyphrases -staticlinks > awstats.mysite.keyphrases.html
perl awstats.pl -config=mysite -output=keywords -staticlinks > awstats.mysite.keywords.html
perl awstats.pl -config=mysite -output=errors404 -staticlinks > awstats.mysite.errors404.html
其中:
   mysite是先前配置时指定的配置名,AWStats将会读取先前指定的配置目录下的配置文件awstats.mysite.conf,如果不存在则读取awstats.conf。
如果要生成特定的年、月的报告,在命令行加上下面两个参数:-month=MM -year=YYYY,MM为2位数字的月份,YYYY为4位数字的带世纪的年份。
   如果生成统计数据库时使用了-databasebreak=day参数,此处也需要在命令行加上此参数,也需要指定-day=DD参数(DD为2位数字的日期)和上面介绍的-month=MM 、 -year=YYYY两个参数。
   如果生成统计数据库时使用-DataDir参数指定与配置文件中不同的存储位置,此处也需要在命令行指定相应的-DataDir参数。
   生成的报告默认为英文页面,如果要生成特定语言的报告,可以使用-lang=LL参数,LL为语言代码,中文为cn,全部代码可看AWStats cgi-bin/lang目录下的awstats-LL.txt。

另外,也可以使用AWStats工具目录下的awstats_buildstaticpages.pl 脚本来生成所有可能的静态页面,命令格式为:
   /usr/local/awstats/tools/awstats_buildstaticpages.pl -config=mysite [-update] (other_awstats_options) [awstatsbuildstaticpages_options]
   其中:
   mysite是先前配置时指定的配置名,AWStats将会读取先前指定的配置目录下的配置文件awstats.mysite.conf,如果不存在则读取awstats.conf。
-update参数指明在生成静态面页前先更新统计数据库,为可选项。
  other_awstats_options 可以是任何AWStats的参数。
   awstatsbuildstaticpages_options为此工具的特定参数,下面予以介绍:
   -awstatsprog=/path/to/awstats.pl 此参数指定awstats.pl的路径。
-dir=outputdir 报告的输出目录,一般是web可访问的路径,以便从客户端浏览器中可看报告 。
   -diricons=icondir 报告中图标文件的相对URL路径
-builddate=%YY%MM%DD 在输出文件的文件名中加入日期
   -staticlinksext=xxx 输出的文件以xxx为扩展名,默认为html
-buildpdf[=/path/to/htmldoc] 在生成html文件后生成一个PDF文件,报告的输出目录必须包括图标目录。
本文示例:
   /usr/local/awstats/tools/awstats_buildstaticpages.pl -config=www.entage.net -update -lang=cn -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -dir=/usr/local/awstats/wwwroot -diricons=icons

2) 设置定时生成静态报告 
   可以通过linux的crontab设置定时生成静态报告。
   下面的例子将设置AWStats在每天凌晨4:50分生成静态报告,注意crontab任务里已经包括了先前生成统计数据库的任务,生成静态报告需要在此任务后执行,推荐把这两个任务合成为一个shell脚本,放在一个任务里顺序完成。
执行下面的命令编辑crontab定时任务:
   crontab -e
   按下面的格式编辑:
   #Minute hour day month week command
50 3 * * * perl awstats.pl -config=www.entage.net -update >/tmp/awstats.log 2>&1
50 4 * * * perl awstats.pl -config=mysite -output -staticlinks > awstats.mysite.html  
.... .....
 
 3) 从web浏览器动态查看报告
   使用下面的URL来动态查看报告:
  http://www.myserver.mydomain/awstats/awstats.pl?config=mysite
其中:
  www.myserver.mydomain是你的web服务器主机名或IP地址。
   mysite是先前配置时指定的配置名,AWStats将会读取先前指定的配置目录下的配置文件awstats.mysite.conf,如果不存在则读取awstats.conf。
   除了-staticlinks 和-logfile参数以外的所有output的生成静态报告的命令行参数都可以使用,注意要把“-option”用"“&option”替换,并且参数间不留任何空白,以符合URL规范,例如:
  http://www.myserver.mydomain/awstats/awstats.pl?month=MM&year=YYYY&output=unknownos
报告将基于统计数据库实时生成,如果生成速度很慢,或者给web服务器带来很大的负载,则推荐生成静态报告。

6. 结束语
 至此,AWStats在Linux环境下的安装配置完成,希望对初学者有一定的帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐