rinald_未来往事

Awstats Jawstats常见错误问题<持续更新中>

测试/分析/监控
最后更新时间:2013-06-09
  • 2013-05-20 首次整理成文档
  • 2013-06-09 发布到博客


Awstats常见错误:
一、报表中没有国家代码的问题(jawstats里没有区域名称)

点击在新窗口中浏览此图片

原因分析:缺少GeoIP IP地址识别插件
解决方法:Awstats 安装后默认是不支持国家或地区的,来源全部显示为“未知”, 通过GeoIP插件,在AWStats报表中,可以显示IP地址来自那个国家和地区。

下载相关组件:
# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
# wget http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.19.tar.gz
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz   //国家数据
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz      //城市数据
# wget http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz   //组织数据

安装GeoIP Module(c&perl)
# tar -zxvf GeoIP.tar.gz  
# cd GeoIP-1.4.8/
# ./configure  --prefix=/usr/local/geoip && make && make install

安装Geo-IP-PurePerl Module
# cd ..
# tar zxvf Geo-IP-PurePerl-1.19.tar.gz
# cd Geo-IP-PurePerl-1.19
# perl Makefile.PL
# make
# make test
# make install
也可以这样安装
# perl -MCPAN -e shell
cpan> install Geo-IP-PurePerl

配置GeoIP国家数据库/更新GeoIP库
# cd ..
# gunzip GeoIP.dat.gz  
# mv GeoIP.dat /usr/local/awstats/wwwroot/cgi-bin/

配置GeoLiteCity城市数据库/更新GeoLiteCity库
# cd ..    
# gunzip GeoLiteCity.dat.gz  
# mv GeoLiteCity.dat /usr/local/awstats/wwwroot/cgi-bin/

配置GeoIPASNum组织数据库/更新GeoIPASNum库
# gunzip GeoIPASNum.dat.gz
# mv GeoIPASNum.dat /usr/local/awstats/wwwroot/cgi-bin/

# vi /etc/awstats/awstats.xxxx.conf

# vi /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /usr/local/geoip/share/GeoIP/GeoIP.dat"  #注意这个路径是GeoIP的安装路径
LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIPISP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoLiteCity.dat"

定时更新GeoIP库
0 0 * * * root /usr/local/geoip/bin/geoipupdate -v

PS:安装awstats插件Geo IP时我们经常遇到下面这个问题,我们知道Geo是一个C写的库,所以如果当你安装GeoIP后直接运行/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=slog.fity.cn就会收到如下错误:
"Error: Plugin load for plugin 'geoip' failed with return code: Error:
Can't locate Geo/IP.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . ./lib ./plugins) at (eval 2) line 1.
Can't locate Geo/IP/PurePerl.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . ./lib ./plugins) at (eval 3) line 1.
Error: Need Perl module Geo::IP or Geo::IP::PurePerl"
说明找不到PurePerl.pm这个模块,需要PurePerl Module解决这个问题,PurePerl Module是一个perl写的Geo接口
下载地址:http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.19.tar.gz



二、awstats如何分析多个日志?
分析单个日志:
LogFile="/usr/local/nginx/logs/host.access.log"

分析多个日志:
1)分开写
LogFile="/usr/local/awstats/tools/logresolvemerge.pl /usr/local/nginx/logs/231.pcstars_access.log /usr/local/nginx/logs/232.pcstars_access.log /usr/local/nginx/logs/233.pcstars_access.log /usr/local/nginx/logs/234.pcstars_access.log /usr/local/nginx/logs/mg.pcstars_access.log|"

2)以匹配模式:
LogFile="/usr/local/awstats/tools/logresolvemerge.pl /usr/local/nginx/logs/*.pcstars_access.log|"

说明:使用 awstats 内建的工具logresolvemerge.pl 来合并日志,记的后面加一个"|",表示匹配你要一起合并分析的日志

完成awstats配置文件的设置之后,需要更新记录:
/usr/local/awstats/tools/awstats_updateall.pl now

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=slog.fity.cn -configdir="/etc/awstats"




三、awstats 如何同一站点统计多个域名?
场景:例如现在需要对nginx上fity.cn和test.fity.cn等域名进行统计。默认 awstats 安装配置好之后会产生/etc/awstats/awstats.xxxxxx.conf,把awstats.xxxxxx.conf复制到awstats.common.conf,然然后可以把 LogFile=“xxxx” 字段,SiteDomain=“xxx”字段,DirData=“xxx”字段,HostAliases=”xxx“字段注释了就行,这样awstats.common.conf就变成了一个基本的配置文件。

现在加入需要分析统计的域名,比如这里我们添加:
fity.cn
test.fity.cn
#vi /etc/awstats/awstats.fity.cn.conf
Include "awstats.common.conf"  
LogFile="/var/logs/blog_%YYYY-24%MM-24%DD.log"  
SiteDomain="fity.cn"  
DirData="/usr/local/awstats/var/lib/awstats"  //这里请根据自己的实际路径定义,默认/var/lib/awstats
HostAliases="fity.cn fity.cn www.fity.cn"

#vi /etc/awstats/awstats.test.fity.cn.conf
Include "awstats.common.conf"
LogFile="/var/logs/test_%YYYY-24%MM-24%DD.log"  
SiteDomain="test.fity.cn"
DirData="/usr/local/awstats/var/lib/awstats"  //这里请根据自己的实际路径定义,默认/var/lib/awstats
HostAliases="test.fity.cn 127.0.0.1 localhost"

对于awstats.common.conf配置文件和awstats.xxxx.conf相同的,则会被awstats.xxxx.conf覆盖。
这样通过程序
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=fity.cn
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=test.fity.cn
就会在/var/lib/awstats下产生数据库文件,是纯文本的。

如果需要生产纯静态文件:
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update  -config=a -lang=cn -dir=/usr/local/apache/data/fity.cn
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update  -config=b -lang=cn -dir=/usr/local/apache/data/test.fity.cn





Jawstats常见错误:
一、JAWStats 如何配置多个站点?
主要修改配置文件定义全局变量
  1. <?php  
  2.   // core config parameters  
  3.   $sDefaultLanguage      = "zh-cn";  
  4.   $sConfigDefaultView    = "thismonth.all";  
  5.   $bConfigChangeSites    = false;  
  6.   $bConfigUpdateSites    = false;  
  7.   $sUpdateSiteFilename   = "xml_update.php";  
  8.    
  9.   // individual site configuration  
  10.   $aConfig$_SERVER["SERVER_NAME"] ] = array(  
  11.     "statspath"   => "/var/lib/awstats/",  
  12.     "updatepath"  => "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl/",  
  13.     "siteurl"     => "http://".$_SERVER['SERVER_NAME'],  
  14.     "sitename"    => $_SERVER["SERVER_NAME"],  
  15.     "theme"       => "default",  
  16.     "fadespeed"   => 250,  
  17.     "password"    => "123456",  
  18.     "includes"    => "",  
  19.     "language"    => "zh-cn"  
  20.   );  
  21. ?>  
参考:http://www.jawstats.com/community/thread125



二、jawstats 空白页问题
先打开php的错误提醒,如果依然看到页面错误信息,请在jawstats根目录下面的index.php 里面还有个设置:
error_reporting(0) ====》  error_reporting(E_ALL)
原文作者:rinald
原文地址:http://fity.cn/post/389.html
互联网技术更新较快,本站很多文章具有实效性,我会及时更新原文,但转载的文章无法通知更新。为了不给读者造成困惑或误导,请您在转载时保留此出处信息,尊重别人也是尊重自己。

已有1位网友发表了看法:

1Ljanus 2016-01-05 16:19:11 回复
LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIPISP.dat"
请问一下GeoIPISP.dat哪里来的,上文都没提起过

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。