了不起的盖茨 epub:jboss配置awstats全记录

来源:百度文库 编辑:偶看新闻 时间:2024/04/20 15:59:41
按照下文的说法,我开始安装awstats for jboss.问题1:Cannot call method "Delimiter" on an undefined value安装完配置awstats时出现上述错误,一开始怀疑是自己的active perl不正确,后来才发现原来是我安装了oracle 10g数据库,那个oracle数据库里面也有一个perl,他比较狠的一点是加入了一个环境变量perl5lib.所以在windows命令行里面set perl5lib = 来取消掉perl5lib的环境变量,然后perl awstats.pl来进行config问题2:部署awstats,这个问题参见tomcat的awstats的配置参考文章:http://wenku.baidu.com/view/b6c3481fa76e58fafab00339.html问题3:上述正常配置完成后,启动报错:java.lang.SecurityException: Restricted class: org.apache.catalina.servlets.CGIServlet 解决办法:http://blog.csdn.net/chcbz/article/details/6032924修改%JBOSS_HOME%SERVER/DEFAULT/DEPLOY/jboss-web.sar/context.xml 中添加privileged="true"属性,否则页面提示Servlet CGI is not availabled.问题4:修改jboss日志记录改为:org.apache.catalina.valves.FastCommonAccessLogValve .patterm为combined其实做成一个项目发布没有多大的意义,只要求你用awstats生成的html能被访问到就好,根本不用cgi脚本直接跑都可以.手动方式:1.生成数据perl awstats.pl -config=mysite -update 2.生成页面用于访问perl awstats.pl -config=mysite -output -staticlinks > awstats.mysite.html 在awstats里面有个icon文件,把生成的这个放在icon外面就可以了.按类别生成: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
 浏览器方式:详见:awstats/docs/下的帮助文件 下面是完整的安装步骤:
一、 下载软件
http://sourceforge.net/projects/awstats/ 下载安装包后,最新的是2005年2月25日发布的6.4版:awstats-6.4.tgz., cp awstats-6.4.tgz /usr/local
cd /usr/local/ 
tar zxf awstats-6.4.tgz
cd awstats-6.4
mv awstats-6.4 awstats
cd awstats/tools
perl awstats_configure.pl
在回答Web服务器配置文件路径时,因为Awstats默认的Web服务器是Apache,而我们是Jboss,,所以这儿应该输入”none”.
安装程序要求输入域名时,可以输入自己的域名,本例是www.zhuoda.org.
将生成默认的配置文件,位置是:/etc/awstats/awstats-www.zhuoda.org.conf。
其它基本上安装默认值就可以了。
安装就这么简单,但要真正使用,对Jboss而言,还有不少麻烦的配置步骤。
二、基本配置
1. 首先得修改网站日志文件的位置。
如果是Apache就不用了,因为Awstats能够根据Apache的配置文件确定其日志文件。
Cd /etc/awstats
Vi awstats-your.domain.name.conf,(本例是vi awstats.www.zhuoda.org.conf) 
默认的LogFile=”/var/log/httpd/mylog.log”
本例修改为: LogFile=”/app/jboss/server/default/log/vhost1%YYYY--%MM-%DD.log.
因为我的Jboss访问日志文件名称类似于vhost12005-03-01.log。
2.日志文件类型,默认的是Web,并且是Combined格式,符合我的情况。
LogFormat=1。
就不用修改了。
需要说明的是,Jboss默认的日志格式不是combined,需要修改,否则会缺少很多对网管而言非常重要的信息:referral,访问者从何而来,使用了什么关键词才搜到了本站等。修改方法,见本站我去年写的另外一篇文章。
还有,配置文件的注释以及文档都说用:%YYYY-0%MM-0%DD,但我这样用时好像有问题,将%前面的0去掉,就可以了。
3.输出文件的位置:
默认的是: DirData=”/var/lib/awstats”。
这项,我没有修改。当然,要符合这一项,还得 mkdir /var/lib/awstats,并且自己记住这个位置,以便调试。
修改语言一项,Lang="auto",将“auto"改为"cn",让awstats以中文方式工作。
其它配置选项暂时可以不动,等调通之后,再微调。
三、最初的测试。
awstats安装上了,也初步配了一下,现在可以测试、调整了。
可以使用的这样的测试:cd /usr/local/awstats/wwwroot/cig-bin
perl awstats.pl -configure=www.zhuoda.org -update -output -staticlinks > 301.html
再查看结果,vi 301.html
如果不正常,可以根据其提示再修改配置文件。典型的错误是日志文件的格式问题。
如果通过了,说明安装初步成功了。
四、Web访问
Awstats是用perl开发的,故而其默认的分析结果是通过cgi方式,提供web访问的。本文环境是Jboss,当然没有必要,为了显示Awstats的分析文件而再专门安装Apache.。替代的方法很简单:在Jboss部署文件夹中,建立一个静态Web包文件夹,本例是mkdir /app/jboss/server/default/deploy/usage.war
Mkdir /app/jboss/server/default/deploy/usage.war/WEB-INF,
把Awstats统计分析日志得出的html文件copy到usage.war文件中,就可以通过http://www.zhuoda.org/usage/这个路径来访问了。
因为之前使用Webalizer作日志分析时,已经使用这个方法,这一步,因此非常容易地完成了。
五、中文问题
通过Web测试,发现Awstats果然比Webalizer厉害不少,数据可靠了,因为已经去掉了大量的spider的访问,并且对搜索引擎方面的数据分析非常不错。但是,部分搜索的关键词仍然有个中文问题,看车东的文章,知道原来是Google等搜索引擎使用的是utf-8编码,而不是本地的gb2312或者gbk编码。
车东解决了这个问题,提供了一个小脚本。
但我发现awstats-6.4已经能够自己解决这个问题,不需要额外的补丁。
vi /etc/awstats/awstats-www.zhuoda.org.conf
在配置文件中:
#LoadPlugin=”decodeutfkeys”
将前面的注释号去掉就可以了。
但再次运行测试脚本时,却提示perl缺少Encoding模块.
我就上www.cpan.org去当相应的模块,2个文件:Encode-2.09.tar.gz,URI-1.35.tar.gz.
下载回来确又发现,这2个模块不能安装,因为我的perl版本是5.6.1,安装要求得5.7.x以上。
只好再上www.perl.com找最新的perl5.8.6.tar.gz.,为了加快下载速度使用了linuxforum.net的镜像。但解开安装时,按了无数个回车之后,make半天,告知perl安装失败。
再去找perl 5.8.6的bin发行包 rpm包,但下载太麻烦,很慢,linuxforum没有提供这个版本的镜像,只好放弃。
郁闷。忽然想起,在另外一天服务器上,一年前我似乎装过高版本的perl.。果然找到了已经安装好的perl 5.8.0,符合Encoding模块的安装要求。将Encoding/URI这2个源文件,ftp到装有perl5.8的机器,果然就能安装成功了。
将该机器的perl5.8打包: cd /usr/lib/perl5
tar czvf perl580.tgz 5.8
再将 perl580.tgz ftp 到 Jboss 服务器,
之后,cd /usr/lib/perl5
tar zxvf perl580.tgz
mv /usr/bin/perl /usr/bin/perl561
cp /usr/lib/perl5/5.8/bin/perl /usr/bin
再运行awstats测试脚本,好,终于成功了,中文问题解决了。

说明,可能perl5.8环境下不需要安装Encode/URI这2个模块,但我既然已经下载了,这2个包非常小,不到一分钟就全部搞定,所以就装了。
这一步费时长达一个小时,也许应该直接用车东的脚本,但也有个回报:Awstats文档说,perl5.8要比perl 5.6.1快15%左右。
六、历史文档问题
因为我们的网站是去年春天开始运行的,日志文件修改为combined格式也是去年11月份的事情,所以积累了大量的访问日志文件。分析历史文档非常重要。但Awstats默认的方式,在这个问题上不太友好,让人费了不少劲。
这个问题,车东的文章也没有涉及。只好再读awstats自带的一个pdf文档(在doc目录里面)。个人感觉awstats文档前面一大半,没有什么价值,只是罗嗦地重复配置文件的注释中已有的内容。但发现文档最后一部分,最有价值,主要是各种常见问题的解决办法,还有些特殊的技巧。
首先,因为awstats习惯是按照时间顺序处理日志文件的,也就是如果你先在测试时,处理了默认的当日的日志,那么等处理老的日志文件时,应该把新的日志文件处理的Awstats的数据库文件(默认是*.txt,例如awstats022005.www.zhuoda.org.txt,本例中的位置是/var/lib/awstats),移动到另外的文件夹。
其次,默认的配置文件是处理最新的日志文件,所以,处理大量过去的日志文档时,应该用LogFile=/app/jboss/server/default/log/vhost12004-11-11.log,来显示覆盖(override)配置文件的LogFile项。如, perl awstats.pl -config=www.zhuoda.org -update -output -staticlinks -LogFile=LogFile=/app/jboss/server/default/log/vhost12004-11-11.log > 11.html。
-config=www.zhuoda.org,表明使用 /etc/awstats/awstats.www.zhuoda.org.conf,这个配置文件,注意如果使用全称awstats.www.zhuoda.org.conf,就会出现错误,因为awstats会自动补上前面的awstats,以及结尾的.conf。
-update 选项表示可能按月累计,因而允许更新awstats相应的数据库文件。
-output 选项表示输出为一个主要的html文档,
-LogFile选项上面介绍过了,表明此次处理,针对命令行中给出的特定文件,而非配置文件中的常规最新日志文件
perl awstats.pl就可以看到给出的用法提示。
第三,如果一个一个手工处理几个月的日志文件,每天一个,加起来就是一百多了,在我的机器上大约数秒种处理一个文件。
我想,还是用一个脚本,比较方便一点,于是有了下面的文件:chk5Big
#!/bin/bash
# added on 2005-3-1, by hofman
DAY=0
echo $DAY
cd /usr/local/awstats/wwwroot/cgi-bin
while [ $DAY ?Clt 31 ]
do
DAY=`expr DAY + 1`
# 2 -> 02
if [ $DAY -lt 10 ]; then
DAY=0$DAY
fi
perl awstats.pl -config=www.zhuoda.org -update -output -staticlinks -LogFile=/app/jboss/server/default/log/vhost12005-$1-$DAY.log -month=$1 > $1.html
done
cp $1.html /app/jboss/server/default/deploy/usage.war/awstats/2005
用法:
./chk5Big 01
这就处理了2005年1月份的31天的31个文件。
简单地修改一下,就可以处理其它月份的文件,以及去年的文件。
再提醒一下,需要安装时间顺序处理,如果是去年的,需要补上一个参数,-year=2004.
需要返工的话,应该先移走/var/lib/awstats里面时间再后的txt文件。
七、最后的完善
安装基本上接近尾声了,但有些完善的工作要作。
1. 这时,可以将awstats自带的icon/css/js目录copy到我们的usage.war里面的相应位置,再修改一下配置文件中,相应的条目:DirIcons=”/icon”配套就可以了。
2. 也可以根据自己的需要,调整一下日志分析的规则,比如,我将搜索引擎的搜索关键词显示数量由10个提示到50个,并将127.0.0.1排出在统计之外等。
八、用crontab来自动更新日志分析
确认无误后,最后一个工作,就是让crontab自动进行日志分析的更新。我设定的时每小时自动更新一次。
Crontab -e
加入如下一条
0 * * * * * /usr/bin/chkHourly
就可以了。
脚本ChkHourly很简单:
#!/bin/bash
MON=`date +%m`
cd /usr/local/awstats/wwwroot/cgi-bin
perl awstats.pl -config=www.zhuoda.org -update -output > $MON.html
mv $MON.html /app/jboss/server/default/deploy/usage.war/awstats/2005