怎样安装AWStats

2015年8月31日 | 分类: 【技术】

规划:AWStats + Cronolog + Jawstats

Awstats:一款基于 Perl 的 WEB 日志分析工具
JAWStats:一款基于 PHP 的统计套件,旨在为 Awstats 提供更为精美图形界面。
Cronolog:指定定期日志切割,而Awstats 支持基于日期变化的动态日志文件。

一. 安装和配置 Awstats

官网:http://www.awstats.org/

部署Perl环境:

要求Perl 5.00503或者更高。

参考:https://amon.org/perl

安装Awstats:

最新稳定版本:7.5 ( 2016-04-29 )

wget https://prdownloads.sourceforge.net/awstats/awstats-7.5.zip
unzip awstats-7.5.zip && mv awstats-7.5 /usr/local/awstats
chown -R root:root /usr/local/awstats

2. AWStats配置文件(awstats.mysite.conf)的常用设置

首先需要明确几个文件的位置:

工具文件:/usr/local/awstats/tools/awstats_configure.pl
日志文件:/usr/local/apache2/htdocs/logs/aray.org_http_access.log
配置文件:/etc/awstats/awstats.aray.org.conf

生成每个网站的配置文件:

使用 awstats_configure.pl 向导工具:

cd /usr/local/awstats/tools
./awstats_configure.pl

1. 输入配置文件名称,一般输入需要统计的网站的域名。
2. 配置文件使用默认路径 /etc/awstats
3. 按回车完成配置文件的创建

生成配置文件 /etc/awstats/awstats.aray.org.conf 。

指定日志文件:

第 50 行。

有两种常见的形式:

A. 指定单个文件

LogFile="/usr/local/apache2/htdocs/logs/aray.org_http_access.log"

B. 指定多个文件

需要使用 usr/local/awstats/tools/logresolvemerge.pl 脚本指定需要的所有日志文件,然后在文本最后加入一个字符 “|”,表示合并所有文件结果。

LogFile="usr/local/awstats/tools/logresolvemerge.pl /usr/local/apache2/htdocs/logs/a.access.log /usr/local/apache2/htdocs/logs/b.access.log|"

配置日志格式:

第 62 行。

系统预置了四种格式供选择:

#  W - For a web log file
#  S - For a streaming log file
#  M - For a mail log file
#  F - For a ftp log file
LogFormat=W

确认Apache日志格式为 combined :

111.22.33.44 - - [10/Jan/2001:02:14:14 +0200] "GET / HTTP/1.1" 200 1234 "http://www.fromserver.com/from.htm" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0                                                                                                                     )"

编辑 /usr/local/apache2/conf/httpd-vhosts.conf :

CustomLog /usr/local/apache2/htdocs/logs/aray.org_http_access.log combined

设置日志按天的截断规则

日志截断需要安装cronolog工具。

下载:http://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz

wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz && cd cronolog-1.6.2
./configure
make && make install

将日志设置成按天截断:

CustomLog "|/usr/local/sbin/cronolog /path/to/apache/logs/access_log.%Y%m%d" combined

这样日志会形如:

logs/access_log.20030326

如果日志是压缩格式,可以使用动态解压缩统计:

gzip -d < /home/apache/logs/access_log.%YYYY-24%MM-24%DD-24.gz | 

指定计算结果目录:

第 220 行。

先创建存放数据的目录:

mkdir -p /var/lib/awstats

再在配置文件中指定:

DirData="/var/lib/awstats"

网页端刷新数据:

第 256 行。

允许在网页端刷新数据:

# modify
AllowToUpdateStatsFromBrowser=1

解决中文乱码:

第 1331 行。

如果安装AWS后搜索处中文乱码。

LoadPlugin="decodeutfkeys"

开启地理位置支持:

第 1367 行。

需要安装并开启GEO支持:

yum install GeoIP GeoIP-data GeoIP-devel perl-Geo-IP -y

安装完毕后在配置文件中设置:

# uncomment
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"

或者选择国产的qqhostinfo插件:

参考:http://www.l-yp.com/1103
下载:http://pan.baidu.com/share/link?shareid=162768&uk=3120992964
下载:http://download.csdn.net/detail/debugcs/4360307

解压出来有三个文件:qqwry.pl qqhostinfo.pm qqwry.dat ,将三个文件放入 /usr/local/awstats/plugins 目录下。

编辑 qqwry.pl ,修改为自己的目录路径:

my $ipfile="/usr/local/awstats/plugins/qqwry.dat";

编辑 qqhostinfo.pm ,修改为自己的目录路径:

push @INC, "/usr/local/awstats/plugins";
require "/usr/local/awstats/plugins/qqwry.pl";

修改配置文件:

加入:

LoadPlugin="hostinfo"
LoadPlugin="qqhostinfo"

生成统计数据:

有两种方式:

A:为指定的网站生成数据。

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=amon.org 

B:为所有网站生成数据

/usr/local/awstats/tools/awstats_updateall.pl now

3. 配置Apache运行cgi

编辑 /usr/local/apache2/conf/extra/httpd-vhosts.conf :

<virtualhost 123.123.123.123:80>

	ServerName stats.aray.org

	DocumentRoot /usr/local/awstats/wwwroot/

	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/"

	<Directory "/usr/local/awstats/wwwroot">
		Options Indexes FollowSymLinks
		AllowOverride All
		Require all granted
	</Directory>

</VirtualHost>

即可打开网址:https://aray.org/awstats/awstats.pl

4. 配置 Awstats 自动运行

每小时更新一次:

crontab -e
0 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

每天半夜12点01分更新一次:

crontab -e
1 0 * * * /usr/local/awstats/tools/awstats_updateall.pl now

或者,在/etc/下有以下几个目录:

cron.daily
cron.hourly
cron.monthly
cron.weekly

在“/etc/cron.hourly/”目录中建立了一个“awstats.sh”文件,内容如下:

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.XXXX.net

现在每小时就可以更新一次统计信息。还可以在/etc/crontab里写。

如果需要更新多个统计日志,每个需要统计的站点写一行,修改-config=XXXX为要统计的站点的配置文件:

perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -lang=cn -config=demo
perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -lang=cn -config=demo1
perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -lang=cn -config=demo2

二. 安装和配置 JAWStats

JAWStats 是基于 Awstats 统计数据的,但其界面更为强悍,有了JAWStats 你甚至可以抛弃第三方统计了。

1. 下载与安装

wget http://static.jawstats.com/src/jawstats-0.7beta.tar.gz
mkdir /var/www/stats/
tar -zxf jawstats-0.7beta.tar.gz -C /var/www/stats/
cd /var/www/stats/
cp config.dist.php config.php

2. 修改配置文件

官方配置说明见:http://www.jawstats.com/documentation

jawstats 是支持多站点的,每个 $aConfig 对应一个站点,并可以自由切换。

<?php // core config parameters $sDefaultLanguage = "zh-cn"; // 设置默认语言 $sConfigDefaultView = "thismonth.all"; $bConfigChangeSites = false; //是否可以更换站点 $bConfigUpdateSites = false; //是否可以更新统计数据 $sUpdateSiteFilename = "xml_update.php"; // individual site configuration $aConfig["site1"] = array( // site1 网站域名(注意不能乱填) "statspath" => "/var/lib/awstats/", //awstats 统计数据目录
    "updatepath"  => "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl/", //用于更新统计数据
    "siteurl"     => "https://amon.org", //点击首页标题后会前往这个地址
    "sitename"    => "amon.org", //首页标题
    "theme"       => "default",
    "fadespeed"   => 250,
    "password"    => "my-1st-password", //更新统计数据需要输入这个密码
    "includes"    => "",
    "language"    => "zh-cn"
  );
?>

3. 安装中文语言包

首先下载 jawstats 多国语言包,解压缩后上传替换 lang 目录。

下载:http://www.jawstats.com/src/languagepack.zip

需要注意的是,你要修改 translations.php 文件的编码为UTF-8,不然全乱码了。
另外修改汉化文件,也是translations.php,不能只修改zh-cn.js文件。

4. 问题

1. 首页空白

打开jawstats根目录下面的index.php,修改报错提示:

error_reporting(0)

修改为:

error_reporting(E_ALL)

进行上述修改后,再次打开jawstats显示空白页的站,发现提示如下:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 96779834 bytes) in /data/web/stats/clsAWStats.php on line 54

发现为php分配的内存不够产生的问题,更改php.ini后如下配置:

memory_limit = 256M

参考:http://www.cssyq.com/rizhi/416908
参考:http://fity.cn/post/389/

但依然有其他和PHP版本升级导致的问题,到此打住,毕竟JawStats是2009年的老程序。直接使用Awstats好了。

参考资料:

https://blog.phpgao.com/centos_awstats
http://www.linuxnote.org/the-awstats-installation-configuration
http://www.awstats.org/docs/awstats_config

http://linux-wiki.cn/wiki/zh-cn/AWStats%2BLighttpd%E9%85%8D%E7%BD%AE
http://88fly.blog.163.com/blog/static/1226803902013842193482/
http://blog.163.com/czg_e/blog/static/46104561201172492750449/
http://www.linuxidc.com/Linux/2012-08/68004.htm
http://www.xuebuyuan.com/102961

http://www.sudu.cn/info/html/edu/20070930/67743
http://sudu.cn/info/19700101/279569
http://vps.zzidc.com/VPSjiaocheng/793
http://windows9834.blog.163.com/blog/static/2734500420102294454988/
http://windows9834.blog.163.com/blog/static/2734500420102194738144/
http://wolfguozi.blog.163.com/blog/static/378277782008891493990/
http://www.ahlinux.com/apache/958

http://huang1983888.blog.163.com/blog/static/242809722012514115614462/

http://www.eygle.com/archives/2004/12/aeoeaawstatsapa
http://www.zzzyk.com/show/36989d3e6f5755eb.htm
http://hily.me/blog/2005/09/awstats/
http://blog.csdn.net/kumu_linux/article/details/7599222

http://www.chedong.com/tech/awstats
http://www.chedong.com/blog/archives/cat_awstats
http://www.chedong.com/blog/archives/001480

http://blog.chinaunix.net/uid-780780-id-2043590
http://blog.chinaunix.net/uid-780780-id-2043591
http://blog.chinaunix.net/uid-780780-id-2043592
http://blog.chinaunix.net/uid-780780-id-2043593

http://www.itnose.net/st/6652638
http://www.itnose.net/detail/6390365
http://www.itnose.net/detail/508751

http://www.aichengxu.com/view/3176206
http://bbs.chinaunix.net/thread-2037654-1-1

参考:http://www.codesec.net/view/148963
参考:http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/
参考:http://freemantc.cnblogs.com/archive/2005/11/14/276086
参考:http://www.oschina.net/question/565065_79804 *
参考:http://blog.csdn.net/forest_boy/article/details/6858867 *
参考:http://my.oschina.net/u/190216/blog/156559
参考:http://my.oschina.net/zhouz/blog/213135
参考:http://my.oschina.net/u/2316994/blog/376873
参考:http://my.oschina.net/u/2316994/blog/377096
参考:http://www.oschina.net/question/tag/awstats
参考:http://blog.fity.cn/post/388/