功能
一:访问量,访问次数,页面浏览量,点击数,数据流量等
二:精确到每月、每日、每小时的数据
三:访问者国家
四:访问者IP
五:Robots/Spiders的统计
六:访客持续时间
七:对不同Files type 的统计信息
八:Pages-URL的统计
九:访客操作系统浏览器等信息
十:其它信息(搜索关键字等等)
I. 下载源码
下载地址:http://www.awstats.org/#DOWNLOAD
老高推荐下载Last stable
# Last stable version is 7.3 - 2014-07-23 07:50
# 2015-01-30 21:50:29
cd /tmp
wget http://heanet.dl.sourceforge.net/project/awstats/AWStats/7.3/awstats-7.3.tar.gz
tar -zxf awstats-7.3.tar.gz
# rename
mv awstats-7.3 awstats
# move to /usr/share/
# 至于为什么要移至/usr/share/,后文有原因
mv awstats /usr/share/
cd /usr/share/awstats
# dir tree
tree -L 1
.
├── docs
├── README.TXT
├── tools # tools即我们需要的计算工具
└── wwwroot # wwwroot是我们需要的web视图
II. 配置计算工具
接下来我们初始化我们需要计算的内容
首先需要明确几个文件的位置:
日志文件(eg. /var/log/nginx/xxx.access.log)
配置文件(eg. /etc/awstats)
工具类文件(eg. /usr/share/awstats/tools)
下面我们进入tools文件夹,开始走第一条线。
新建配置文件
cd tools
perl awstats_configure.pl
Do you want to continue setup from this NON standard directory [yN] ? y
# 是否配置web服务器
Config file path ('none' to skip web server setup):
>none
# 是否新建一个配置文件
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
Your web site, virtual server or profile name:
>www.111cn.net # 你要分析的域名
# 这一步选择你的配置文件路径
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):
>Enter
# 继续回车,配置完毕
# 接下来自定义我们的配置文件
vim /etc/awstats/awstats.www.111cn.net.conf
配置日志路径
如果要统计那就必须指定统计日志的路径。
AWS为我们提供了很多种办法,帮助我们找到正确的文件。
配置路径的变量一般在line 50左右,在它的上面可以找到编写路径的提示。
%YYYY # 可以代替4位年份
%YY # 可以代替2位年份
%MM # 可以代替2位月份
%DD # 可以代替2位天数
%HH # 可以代替2位小时
%YYYY-%MM-%DD-%HH # 在程序执行的时候自动以当前日期2015-01-31-10(此时)替换,是不是很方便?
指定日志文件一般有两种常见的形式
# 指定单个文件
LogFile="/var/log/nginx/logs/xxxx.access.log"
# 指定多个文件
# 需要使用/usr/share/awstats/tools/logresolvemerge.pl脚本指定你需要的所有日志文件,然后再文本最后加入一个字符 "|",表示合并所有文件结果。
LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/logs/xxx.access.log /var/log/nginx/logs/yyy.access.log|"
配置日志格式
一般nginx的日志格式不需要配置,如果需要变动,请修改大约line 122,系统预置了四种格式供选择。
# 1 - Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format)
# 2 - IIS or ISA format (IIS W3C log format). See FAQ-COM115 For ISA.
# 3 - Webstar native log format.
# 4 - Apache or Squid native common log format (NCSA common/CLF log format)
LogFormat=1
指定计算结果目录
系统计算出的结果是需要保存在磁盘上的,如果自定义这个路径呢?
在配置文件line 203附近,你可以找到系统的默认配置。
DirData="/var/lib/awstats"
# custom
DirData="your_path_to/awstats"
# 然后我们需要对这个路径的权限做一些处理
chown -R www:www awstats
# www用户我们稍后创建
网页端刷新数据
如果需要在网页里能够主动刷新数据,请找到约line 239,并修改内容。
主动刷新数据
# modify
AllowToUpdateStatsFromBrowser=1
开启地理位置支持
如果想得到如下结果,需要安装并开启GEO支持。
地理位置支持
# 安装GEO支持
yum install GeoIP GeoIP-data GeoIP-devel perl-Geo-IP -y
# 安装完毕后移至 配置文件约 line 1429
# uncomment
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
解决中文乱码
如果安装AWS后搜索处中文乱码,请修改约line 1204,删除注释。
LoadPlugin="decodeutfkeys"
测试并更新配置
解决了以上问题,我们就可以开始动手测试配置是否正确了。
perl /usr/share/awstats/wwwroot/cgi-bin/awstat(www.111cn.net)s.pl -config=www.111cn.net
------------------------------------------
From data in log file "/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/logs/xxx.access.log /var/log/nginx/logs/yyy.access.log|"...
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: 42302
Found 42 dropped records,
Found 0 comments,
Found 0 blank records,
Found 404 corrupted records,
Found 41801 old records,
Found 55 new qualified records.
------------------------------------------
# 如果看到这种信息说明你的配置文件没有问题,否则请检查。
至此,配置完毕
III. 配置服务器
配置nginx虚拟主机
如果你仔细浏览/usr/share/awstats/tools目录,会发现一个nginx文件夹,没错,源码包已经为我们提供了nginx的虚拟主机配置文件了,我们只需要简单的修改一下即可!
老高把虚拟主机都放到vhosts文件夹下,然后再主配置文件里使用include vhost/*.conf引用,是不是很方便!
# 配置虚拟主机
cp awstats-nginx.conf /etc/nginx/vhost/awstats.conf
vim /etc/nginx/vhosts/awstats.conf
以下是老高给出的配置示例文件,为统计查看绑定的域名为aws.111cn.net,端口80。
server {
listen 80;
server_name aws.111cn.net;
access_log /var/log/nginx/awstats.access_log main;
error_log /var/log/nginx/awstats.error_log info;
root /var/www/localhost/htdocs;
index index.html;
# Restrict access
# auth_basic "Restricted";
# auth_basic_user_file /etc/awstats/htpasswd;
# Static awstats files: HTML files stored in DOCUMENT_ROOT/awstats/
location /awstats/classes/ {
alias /usr/share/awstats/wwwroot/classes/;
}
location /awstats/css/ {
alias /usr/share/awstats/wwwroot/css/;
}
location /awstats/icon/ {
alias /usr/share/awstats/wwwroot/icon/;
}
location /awstats-icon/ {
alias /usr/share/awstats/wwwroot/icon/;
}
location /awstats/js/ {
alias /usr/share/awstats/wwwroot/js/;
}
location /awstatsicons/ {
alias /usr/share/awstats/wwwroot/icon/;
}
# Dynamic stats.
location ~ ^/cgi-bin/(awredir|awstats)\.pl {
gzip off;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /usr/share/awstats/wwwroot/cgi-bin/fcgi.php;
fastcgi_param X_SCRIPT_FILENAME /usr/share/awstats/wwwroot$fastcgi_script_name;
fastcgi_param X_SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
#Rewrite
location ~ ^/([a-z0-9-_\.]+)$ {
return 301 $scheme://aws.111cn.net/cgi-bin/awstats.pl?config=$1;
}
}
默认网址 : http://aws.xmwzidc.comcgi-bin/awstats.pl?config=www.xmwzidc.com
伪静态后 : http://aws.xmwzidc.comwww.xmwzidc.com
开启认证
由于AWS没有提供认证模块,所以我们使用nginx的认证,我们需要为nginx提供一个认证文件。
有两种办法生成此文件
1.htpasswd命令
# 路径可以自己指定
htpasswd -c /etc/awstats/htpasswd username:password
# 删除文件中Restrict access的注释
Restrict access
auth_basic "Restricted";
auth_basic_user_file /etc/awstats/htpasswd;
2.PHP生成
$password = 'www.111cn.net';
// 对密码进行加密
$password = crypt($password, base64_encode($password));
// 获得加密后的密码
echo $password;
然后将得出的密码手动写入文件/etc/awstats/htpasswd,格式如下
username1:xucqMk13TfooE
username2:YXTfb3xWKOMBM
from:http://www.111cn.net/sys/linux/89919.htm