规划:AWStats + Cronolog + Jawstats
Awstats:一款基于 Perl 的 WEB 日志分析工具
JAWStats:一款基于 PHP 的统计套件,旨在为 Awstats 提供更为精美图形界面。
Cronolog:指定定期日志切割,而Awstats 支持基于日期变化的动态日志文件。
一. 安装和配置 Awstats
部署Perl环境:
要求Perl 5.00503或者更高。
安装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/