(回到Blog入口)

日志分析|AWStats 归档

2004年05月10日

AWStats 6.0 的中文补丁 后记

AWStats快发布6.1了,我提交的BUG主要有以下几个方面:
AWStats - Bugs
775988 Minor Chinese Search Engine patch
AWStats - Patches
745359 Chinese(Simp) update: 6.0 awstats-cn.txt
713960 Chinese minor search engines (awstats 6.0)

715108 URI unescape and Google UTF-8 convert patch(perl 5.8 needed)
AWStats - Feature Requests
881891 ShowMonthStats: last 12 months vs first month of this year
863298 Counter of spider access on URL-Pages report.
706297 smart IIS timezone solution
748264 Count average on "finished day" (Use LastUpdate)

按此阅读全文 "AWStats 6.0 的中文补丁 后记" »

2005年10月27日

AWStats升级到6.5:补充更新

AWStats是我一直关注一个网站统计工具:虽然对于日访问量千万级的网站统计速度上有些吃力:但是其丰富的统计机制对于一般中小网站还是非常有效的。2005/10/09 AWStats已经升级到6.5了。除了更新程序外:还需要升级的一些定义库,我整理了一些缺省样例配置文件和各种定义的补丁下载包:下载解包后,
1 直接复制到awstats/的执行目录下;
2 将GeoIP.dat文件复制到 /usr/local/share/GeoIP/ 下;
3 修改awstats.chedong.conf 成你需要的配置文件;
相关的Bug 跟踪.希望开发人员积极推进这些定义的提交,下一个版本就能有更适合中国搜索引擎市场的配置文件了.

按此阅读全文 "AWStats升级到6.5:补充更新" »

2006年07月07日

AWStats中的未知浏览器/SPIDER的发现机制

很久以来,AWStats统计中的浏览器信息一直让我非常不解的是未知浏览器的流量比例一直很高,最近半年以来一直在10-20%左右。
浏览器 离线浏览器(网页抓取) 文件数 百分比
MS Internet Explorer 否 222874 65.3 %
Firefox 否 43591 12.7 %
Netscape 否 25954 7.6 %
Potu (RSS Reader) 否 14209 4.1 %
无法得知 ? 11422 3.3 %
Mozilla 否 5508 1.6 %
GreatNews (RSS Reader) 否 5246 1.5 %
Opera 否 4323 1.2 %
BonEcho (Firefox 2.0 development) 否 1650 0.4 %
FeedDemon (RSS Reader) 否 1435 0.4 %
其他 4710 1.3 %

按理说未知浏览器流量应该<5%的,但是未知浏览器具体是那些,还是需要手工去grep 日志发现。最近才发现原来AWStat中的无法得知都是可以点击的,点击进入后,就能看到流量最大的一些未知浏览器的特征User Agent信息:原来是越来越多的RSS阅读器(在线的和客户端的)和蜘蛛,而有了这个统计:就可以将一些已知特征的浏览器加入到robots.pm和browser.pm中了。

例举如下:大部分都遵循了 [浏览器名称] [版本号] [网站网址] [当前feed的订阅人数] 这样的格式
Feedpath/1.0 (http://feedpath.jp; 2 subscribers)
RBLOG Feedeater 1.0
AttensaOnline/1.0 (http://www.attensa.com; 1 subscribers)
JetBrains Omea Reader 2.1.2 (http://www.jetbrains.com/omea/reader/)
Feedshow/1.0 (http://www.feedshow.com; 1 subscriber)
ReadOnline.Info rss checker. http://readonline.info
NewsAlloy/1.1 (http://www.NewsAlloy.com; 12 subscribers)
Rome Client (http://tinyurl.com/64t5n) Ver: 0.7
Peoplefeeds/1.0 http://peoplefeeds.com/
CFMX Agent
Netvibes (http://www.netvibes.com/; 81 subscribers)
Drupal ( http://drupal.org/)
Microsoft Office Protocol Discovery
showlife 0.7 ( http://showlife.sf.net/)
FEEDBRINGER/0.1 (http://feedbringer.net/; 1 subscribers)
JetBrains Omea Reader 2.1.4 (http://www.jetbrains.com/omea/reader/)
FeedLook Service
HanRSS/1.0 (http://www.hanrss.com; 1 subscriber)
KTX Reader3
Maxthon
kb.Rmail (http://www.r-mail.org; 2 subscribers)
FeedLounge (http://my.feedlounge.com/)
iSiloX/4.25 Windows/32
LiteFeeds/1.0
endo/1.0 (Mac OS X; ppc i386; http://kula.jp/endo)
Drupal ( http://www.drupal.org/)
Strategic Board Bot
xv onsswdvcwxOdO9opmcfybrsn
JetBrains Omea Reader 2.0 Release Candidate 8 (http://www.jetbrains.com/omea/reader/)
rss-bot/1.0 (http://www.plazoo.com)
Netvibes (http://www.netvibes.com/; 30 subscribers)
http://www.searchfull.net/
rss2email/2.54 http://www.aaronsw.com/2002/rss2email/
IP*Works! V5 HTTP/S Component - by /n software - www.nsoftware.com

按此阅读全文 "AWStats中的未知浏览器/SPIDER的发现机制" »

2006年08月02日

AWStats中的gb2312关键词问题

从上7月开始:我发现自己的AWStats统计中出现了gb2312和sitehao123这个关键词而且量很大:
gb2312 6515 11.3 %
spoolsv 3152 5.5 %
spoolsv.exe 2712 4.7 %
cvs 1873 3.2 %
apache 1761 3 %
phpinfo 1600 2.7 %
lucene 1160 2 %
sitehao123 1157 2 %
ant 864 1.5 %
但无论从那个搜索引擎上搜,通过这2个关键词也找不到我的页面啊?检查了一下统计,gb2312从6月份的统计中就开始有了。8月1日,新的一轮AWStats统计开始,仔细检查了一下apache的原始日志:从来源看,应该是来自百度的搜索结果页:
"http://www.baidu.com/s?lm=0&si=&rn=10&tn=sitehao123&ie=gb2312&ct=0&wd=免费杀毒软件&pn=10&cl=3"

其中tn是百度的合作网站代码,ie表示input encoding:表示输入字符串的字符集,而AWStats中有一个选项:
LevelForKeywordsDetection=2 # 0 disables Keyphrases/Keywords detection.
当设置为2的时候,会将来源网址中的所有参数进行遍历和自动识别,容易将一些其他参数的值当成关键词参数,这样的统计结果会丢失来源中实际的关键词。

解决方法:
除了修改awstats.pl代码外,awstats其实在search_engines.pm中有一个参数列表定义:专门用于过滤掉可能产生歧义的参数列表:WordsToCleanSearchUrl
@WordsToCleanSearchUrl= ('act=','annuaire=','btng=','cat=','categoria=','cfg=','cof=','cou=','count=','cp=','dd=','domain=','dt=','dw=','enc=','exec=','geo=','hc=','height=','hits=','hl=','hq=','hs=','id=','kl=','lang=','loc=','lr=','matchmode=','medor=','message=','meta=','mode=','order=','page=','par=','pays=','pg=','pos=','prg=','qc=','refer=','sa=','safe=','sc=','sort=','src=','start=','style=','stype=','sum=','tag=','temp=','theme=','type=','url=','user=','width=','what=','\\.x=','\\.y=','y=','look=');
将tn=和ie=加入到其中:tn=','ie=','
以后输出的参数中就不会有gb2312和tn=的值了。

按此阅读全文 "AWStats中的gb2312关键词问题" »

2006年08月15日

在DreamHost上使用AWStats国家/地区统计: GeoIP和GeoCity Lite的配置方法

今天看了一下:QiRan.ORG: awstats6.5安装笔记,发现原来Dreamhost是直接支持GeoIP的。相应的perl模块已经安装了:可以看到man page

设置后的输出效果如下
awstats_geoip_geolite_city.png

具体配置过程附后:

按此阅读全文 "在DreamHost上使用AWStats国家/地区统计: GeoIP和GeoCity Lite的配置方法" »

2006年09月10日

给AWStats增加针对Googlebot/Baiduspider/Yahoo!Slurp/MSNBot的详细统计

虽然AWStats中提供了蜘蛛的分类统计:

搜索引擎网站的机器人 (前 10) - 全部列出 - 最近参观日期
102 个机器人* 文件数 字节 最近参观日期
Sina Iask Spider 41894 520.80 M字节 2006年 九月 09日 07:17
GouGou 34577 920.11 M字节 2006年 九月 09日 12:23
Googlebot 12171+39 212.60 M字节 2006年 九月 09日 12:23
Yahoo Slurp 5775+1275 91.10 M字节 2006年 九月 09日 12:24
GigaBot 5334+233 53.62 M字节 2006年 九月 09日 12:24
Unknown robot (identified by 'robot') 5421+6 71.46 M字节 2006年 九月 09日 12:17
Lilina 5278 76.67 M字节 2006年 九月 09日 12:22
MSNBot 4075+217 52.31 M字节 2006年 九月 09日 12:19
Yahoo! Slurp China 3135+460 25.83 M字节 2006年 九月 09日 12:21
Unknown robot (identified by 'crawl') 3431+6 78.98 M字节 2006年 九月 09日 12:23

有汇总后的数据,但是每个蜘蛛具体抓取了那些页面和抓取的频度就无法得知了,利用AWStats的扩展配置,统计也可以详细到每个蜘蛛的具体访问(参考了http://www.antezeta.com/awstats.html上的配置样例)。

注意:配置完Extra后可能会遇到以下这样的警告:

Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Error: The number of values found for extra section 5 has grown too large.
In order to prevent awstats from using an excessive amount of memory, the number
of values is currently limited to 500. Perhaps you should consider
revising extract parameters for extra section 5. If you are certain you
want to track such a large data set, you can increase the limit by setting
ExtraTrackedRowsLimit in your awstats configuration file.

如果扩展配置统计的条目较多,比如:蜘蛛抓取的不同URL的个数很多,就需要在全局扩大一下ExtraTrackedRowsLimit这个参数,这个参数不像其他参数一样需要加编号,缺省最多统计500个项目,我扩大到了2万,ExtraTrackedRowsLimit=20000

完整设置如下:


ExtraSectionName5="Google crawls - Top 50"
ExtraSectionCodeFilter5="200 304"
ExtraSectionCondition5="UA,(.*Googlebot.*)"
ExtraSectionFirstColumnValues5="URL,(.*)"
ExtraSectionFirstColumnFormat5="<a href='%s' title='Item Crawled' target='_blank'>%s</a>"
ExtraSectionStatTypes5=PHBL
ExtraSectionAddAverageRow5=0
ExtraSectionAddSumRow5=5
MaxNbOfExtra5=50
MinHitExtra5=1

ExtraSectionName6="Baidu crawls - Top 50"
ExtraSectionCodeFilter6="200 304"
ExtraSectionCondition6="UA,(.*Baiduspider.*)"
ExtraSectionFirstColumnValues6="URL,(.*)"
ExtraSectionFirstColumnFormat6="<a href='%s' title='Item Crawled' target='_blank'>%s</a>"
ExtraSectionStatTypes6=PHBL
ExtraSectionAddAverageRow6=0
ExtraSectionAddSumRow6=6
MaxNbOfExtra6=50
MinHitExtra6=1

ExtraSectionName7="Yahoo Slurp crawls - Top 50"
ExtraSectionCodeFilter7="200 304"
ExtraSectionCondition7="UA,(.*Slurp.*)"
ExtraSectionFirstColumnValues7="URL,(.*)"
ExtraSectionFirstColumnFormat7="<a href='%s' title='Item Crawled' target='_blank'>%s</a>"
ExtraSectionStatTypes7=PHBL
ExtraSectionAddAverageRow7=0
ExtraSectionAddSumRow7=7
MaxNbOfExtra7=50
MinHitExtra7=1

ExtraSectionName8="MSN crawls - Top 50"
ExtraSectionCodeFilter8="200 304"
ExtraSectionCondition8="UA,(.*msnbot.*)"
ExtraSectionFirstColumnValues8="URL,(.*)"
ExtraSectionFirstColumnFormat8="<a href='%s' title='Item Crawled' target='_blank'>%s</a>"
ExtraSectionStatTypes8=PHBL
ExtraSectionAddAverageRow8=0
ExtraSectionAddSumRow8=8
MaxNbOfExtra8=50
MinHitExtra8=1

ExtraSectionName9="Sohu crawls - Top 50"
ExtraSectionCodeFilter9="200 304"
ExtraSectionCondition9="UA,(.*sogou.*)"
ExtraSectionFirstColumnValues9="URL,(.*)"
ExtraSectionFirstColumnFormat9="<a href='%s' title='Item Crawled' target='_blank'>%s</a>"
ExtraSectionStatTypes9=PHBL
ExtraSectionAddAverageRow9=0
ExtraSectionAddSumRow9=9
MaxNbOfExtra9=50
MinHitExtra9=1

ExtraTrackedRowsLimit=20000

按此阅读全文 "给AWStats增加针对Googlebot/Baiduspider/Yahoo!Slurp/MSNBot的详细统计" »

2006年10月02日

赶在AWStats 6.6正式发布前的更新

目前我一共提交了5个主要的补丁:如果大家感觉有需要,请到sf.net的相关主题中反映并推进一下,争取在6.6版本正式发布时以下补丁已经直接在下载版本中可以使用,让国外的开发人员接受面向中文和本地去求的补丁还是需要非常主动的沟通的。

1 过滤HEAD请求:这是我目前找到的避免referer spam最简单的方法;
diff -r1.885 awstats.pl
6322d6321
< || $field[$pos_method] eq 'HEAD'
而且很多HEAD请求是来自浏览器或者机器人的缓存请求,的确不应该作为浏览量加入统计;

2 针对主要中文搜索引擎的定义:主要有8个;
> '\.baidu\.com', # baidu search portal
> '\.vnet\.cn', # powered by MSN
> '\.soso\.com', # powered by Google
> '\.sogou\.com', # powered by Sohu
> '\.3721\.com', # powered by Yahoo!
> '\.iask\.com', # powered by Sina
> '\.163\.com', # powered by Google
> '\.zhongsou\.com', # zhongsou search portal
近期vnet等引擎的加入让搜索市场的格局有较大的变化;

3 增加了国内主要spider的定义
国外的开发者不会中文,于是找到了sohu的这个说明页作为sogou spider的说明页:
http://corp.sohu.com/20051130/n240842344.shtml
此外:还将TT当成了蜘蛛,其实是腾讯的浏览器;

4 修正浏览器中的在线RSS阅读器定义
lilina加入到robots.pm中去了,加入了potu的定义。awstats中最近增加最快的就是各种rss蜘蛛和rss浏览器的定义,天知道怎么会有那么多小公司在做RSS的相关产品开发。而国内一些真正流量大的缺很少被发现并添加到robots.pm和browsers.pm中去。

5 中文的界面的语言包: 少量说明文字更新。

按此阅读全文 "赶在AWStats 6.6正式发布前的更新" »

2007年01月22日

多个服务器日志的排序合并: clfmerge

以前介绍过 sort -m <(/bin/zcat /web1/access_log.20070120.gz) <(/bin/zcat /web2/access_log.20070120.gz) 对多台服务器上的日志进行排序合并,但是最近发现有时候cronolog截取日志并不干净,就是说按天截断的时候,还是有可能出现几条跨天的日志记录。March 31 => April 1时候日志排序倒错的可能性还是存在的。

最近才知道知道sort 还有-M模式,是可以对有英文月份的字段进行排序的:
-M An initial string, consisting of any amount of white space, fol-
lowed by three letters abbreviating a month name, is folded to
UPPER case and compared in the order `JAN' < `FEB' < ... <
`DEC.' Invalid names compare low to valid names.

这样就不会在 March => April 的时候出现排序倒错的问题了。

更可靠的一个工具就是logtools中的:clfmerge,合并速度比较快,而且对于日志跨天也没有问题。

按此阅读全文 "多个服务器日志的排序合并: clfmerge" »

2007年03月07日

AWStats的千万级日志解决方案:日报表 databasebreak=day + Canlendar.php 日历浏览

你完全不用耐心的看完后面所有的说明,awstats在进行日志统计时,
命令行统计增加: -databasebreak=day
报表输出时增加: &databasebreak=day&day=DD
即可按天进行统计, 解决按月统计,归档数据过大导致统计过慢/失败的问题。

问题:
很多网站在流量从10万级增加到百万级以后就放弃了awstats作为统计,具体表现就是到月底的时候,统计数据会运行1天都运行不完。于是就改为webalizer或者analog了。其实这并非awstats统计效率不高:awstats很多丰富的统计指标:蜘蛛识别 浏览器识别,文件类型统计等,都是比Webalizer丰富的,Webalizer要实现类似的统计力度也会出现性能问题。

原因分析:
性能的瓶颈在哪里呢:awstats统计缺省时按月统计,到月底时候记住的头20多天的历史IP等累计统计指标,会使得DUMP数据文件变得很大(数百M),而awstats运行时,需要的内存量是dump数据文件的3-4倍。当这个monthly积累的数据导致awstats统计脚本载入内存的数据量过大,用到系统文件交换做内存的时候日志统计效率就会降低了(处理速度会低2-3个数量级),于是出现了运行一天都统计不完前一天日志的现象。

解决:
AWStats丰富的统计指标还是很有用的,而一个网站已经达到日千万级的访问请求,按天的详细的数据统计也是必须的了。所以:索性牺牲一下按月的独立IP统计,将日志改成按天统计,如果需要按月的汇总,可以利用awstats的dump数据成为一个中间数据源汇总统计。

其他问题:
1 按天的报表浏览:用Calendar.php做个日历浏览界面;
按天统计后,awstats的输出文件会变成awstatsMMYYYYDD.confname.txt 每天一个统计文件,而报表的输出需要增加 &databasebreak=day&day=DD 来指定某一天的数据。增加了日期后,awstats的报表输出有些不方便,awstats本身没有提供按日的浏览,可以自己做个日历前端,方便awstats的报表浏览。
2 日志数据源:最好是压缩的,因为日志上2G以后,文件系统出问题的可能性大。尽量还是压缩日志后,通过zcat管道给awstats进行统计;

按此阅读全文 "AWStats的千万级日志解决方案:日报表 databasebreak=day + Canlendar.php 日历浏览" »

2007年05月02日

awstats统计中过滤trackback spam

MT的trackback关闭了一段时间了,但是即使是404脚本不存在了:上个月仍然收到了trackback请求26万左右(估计占独立用户的5%-10%)。

404 Document Not Found 276101 95.2 % 1.43 G字节
;用了fastcgi,对于系统来说也是一个很高的负载。

而且对于AWStats统计来说:即使是404请求,也是计算到来访的独立用户的,这样会造成很多误差:比如去年10月份的统计,很难想想来自于那些国外机房(美国,日本,丹麦)的流量居然占了top 10 IP来源中的9个,让这个TOP 10 IP来源完全失去了意义。


主机 (前 10) - 全部列出 - 最近参观日期 - 无法反解译的IP地址
主机 : 0 个解译成功, 164470 无法得知(不能反解网域名称)
119778 参观者 GeoIP
Country GeoIP
City 网页数 文件数 字节 最近参观日期
38.98.120.69 United States Washington 9207 9308 438.99 M字节 2006年 10月 31日 23:58
8.11.2.79 United States 无法得知 8961 9058 267.84 M字节 2006年 10月 11日 04:13
220.181.18.77 China Beijing 1278 1278 31.18 M字节 2006年 10月 31日 18:59
61.12.159.237 Japan Kami-meguro 1081 1324 24.45 M字节 2006年 10月 29日 10:44
82.103.132.52 Denmark 无法得知 744 744 9.96 M字节 2006年 10月 31日 03:27
61.149.109.88 China Beijing 734 939 22.79 M字节 2006年 10月 03日 01:25
72.21.39.242 United States Frisco 684 710 17.87 M字节 2006年 10月 31日 10:16
220.189.213.3 China Hangzhou 528 11357 31.71 M字节 2006年 10月 31日 20:54
209.67.217.226 United States Dallas 515 515 12.11 M字节 2006年 10月 31日 23:31
64.27.19.254 United States Los Angeles 508 800 52.20 M字节 2006年 10月 31日 23:37

过滤了404也只是相对接近真实了一点:仍然有大量用于发现trackback侦察机在抓取:

58.25.99.171 China Shanghai 383 536 11.04 M字节 2007年 5 月 02日 23:23
222.210.108.237 China Beijing 263 263 2.15 M字节 2007年 5 月 02日 16:49
69.46.20.87 United States Tampa 162 162 4.18 M字节 2007年 5 月 02日 22:51
66.232.114.68 United States Tampa 152 152 4.12 M字节 2007年 5 月 02日 09:50
69.46.16.231 United States Tampa 146 146 3.86 M字节 2007年 5 月 02日 23:59
66.232.112.56 United States Tampa 110 110 2.99 M字节 2007年 5 月 02日 00:53
206.51.229.7 United States Tampa 110 110 2.87 M字节 2007年 5 月 02日 01:16
66.98.228.48 United States Houston 100 100 2.29 M字节 2007年 5 月 02日 01:16
201.226.51.7 Panama 无法得知 99 129 2.47 M字节 2007年 5 月 01日 11:48
216.246.78.191 United States Chicago 94 94 4.19 M字节 2007年 5 月 02日 23:53


解决方法:在awstats.chedong.conf文件中增加过滤文件配置
1 SkipFiles,过滤所有cgi-bin/mt目录下的访问请求;
2 SkipUserAgents 过滤trackback的空UA侦察机;
配置样例:

SkipFiles="REGEX[^\/cgi-bin\/mt\/]"
SkipUserAgents="-"

按此阅读全文 "awstats统计中过滤trackback spam" »

2007年06月21日

AWStats:QQ纯真库IP解析插件安装

Albert提供了纯真IP库解析包:比GeoIP City要精确的多。参考了Nicky的安装文档,备忘如下:

插件代码:下载并复制到 awstats/plugins/目录下(为什么不合成一个文件并改好路径呢?)。
http://www.ieasy.org/download/qqhostinfo.pm
http://www.ieasy.org/download/qqwry.pl

QQ纯真库IP库:下载解包,将QQwry.Dat文件复制到awstats/ 下;
cz88.net/fox/
官方网站打不开,也可以从华军/天空等下载站找到;

修改,qqwry.pl中:

./QQWry.Dat 修改为 ${DIR}/QQWry.Dat

在公共配置文件中:增加
LoadPlugin="qqhostinfo"

输出样例截图:
http://www.flickr.com/photos/chedong/578959127/

按此阅读全文 "AWStats:QQ纯真库IP解析插件安装" »

2007年08月10日

AWStats 6.7的补充更新:中文搜索引擎定义和twiceler蜘蛛等

AWStats在7月初就发布了6.7(我一直使用CVS中版本的),昨天我也收到了作者Eldy的邮件通知。针对中国网络环境中的很多搜索引擎定义缺失较多:比如Qihoo QQ的蜘蛛,ZhuaXia RSS蜘蛛等;补充在这里:下载,解包后覆盖awstats/lib下的文件即可。

2007-08-11更新:
AWStats的作者Laurent已经接受了我的所有的patch提交:这是3年来没有过的啊。

按此阅读全文 "AWStats 6.7的补充更新:中文搜索引擎定义和twiceler蜘蛛等" »

2007年09月28日

给AWStats关键词统计增加去百度,谷歌等搜索引擎的站内查询链接

有时候看关键词的统计并不知道具体的关键词是从那个搜索引擎过来的,具体落到了自己网站的那个页面上。给AWStats的关键词列表增加了几个链接,直接指向相应关键词的在百度,谷歌,雅虎3个引擎上的站内搜索结果。效果如图:
关键词链接

修改代码附后:针对6.9版本修改

按此阅读全文 "给AWStats关键词统计增加去百度,谷歌等搜索引擎的站内查询链接" »

2007年12月06日

用AWStats统计Mail服务日志(sendmail)并生成报表

AWStats也可以用来对FTP和Mail的日志进行统计,一下是一个针对Postfix邮件发送日志的配置样例:

# 日志类型设置为邮件:M格式
LogType=M

# 日志字段要一一指定;
LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
LevelForFileTypesDetection=0
ShowMenu=1
ShowMonthStats=HB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowEMailSenders=HBL
ShowEMailReceivers=HBL
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=1

# 对于mail原始日志用maillogconvert.pl进行转换,脚本位于awstats/tools目录下;
LogFile="/bin/zcat /var/mail/mail.1.log.gz |/usr/bin/perl /path/to/maillogconvert.pl standard | "

AWStats统计输出样例: http://www.chedong.com/cgi-bin/awstats/awstats.pl?config=mail

按此阅读全文 "用AWStats统计Mail服务日志(sendmail)并生成报表" »

2008年10月03日

AWStats的补充定义:区分百度图片搜索和一些新出现的360搜索引擎蜘蛛

更新后的AWStats最新版本lib目录打包下载(latest: 2012-08-23),蜘蛛定义部分增加了区分Yahoo!中国,Soso 豆瓣,鲜果,360蜘蛛等,其他的是几个国外的RSS阅读器;搜索引擎部分区分了百度图片,有道搜索,soso搜索,360搜索; diff附后:

按此阅读全文 "AWStats的补充定义:区分百度图片搜索和一些新出现的360搜索引擎蜘蛛" »

2008年10月25日

增大AWStats的$LIMITFLUSH,减少磁盘临时文件读写 Flush history file on disk (unique url reach flush limit of 5000)

Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Flush history file on disk (unique url reach flush limit of 5000)
Flush history file on disk (unique url reach flush limit of 5000)
Flush history file on disk (unique url reach flush limit of 5000)
是AWStats统计常见的输出,每行都是在处理完一定数量的URL(缺省是5000个)后,AWStats将统计结果临时写入磁盘。最近使用AWStats处理百M级别的日志时:磁盘IO居然非常高,
发现有时候遇到页面URL个数非常多的时候(比如:在搜索引擎蜘蛛对网站进行深度遍历deep crawl时),经常会使得AWStats对缓存文件的读写过于频繁,随着生成的数据文件越来越大,每次几百M的临时文件读写也会导致统计速度越来越慢;经常一次统计数据下来会Flush history file on disk (unique url reach flush limit of 5000) 几百次;

记得以前是对AWStats进行过简单的参数配置的,可以修改flush的周期,但现在的文档中没有找到相应的配置,只好Hack了一下:awstats.pl文件将每隔发现5千个新链接改为5万个;

> $LIMITFLUSH=5000; # Nb of records in data arrays after how we need to flush data on disk
---
< $LIMITFLUSH=50000; # Nb of records in data arrays after how we need to flush data on disk

其实内存够用的话,将这个值设置的更高也是没有问题的。根据观察临时文件生成的次数也相应的有数量级的下降;这个参数和Lucene中的merge_factor有点像,都是拿内存换速度;

按此阅读全文 "增大AWStats的$LIMITFLUSH,减少磁盘临时文件读写 Flush history file on disk (unique url reach flush limit of 5000)" »

2009年01月12日

AWStats 6.9发布: 补充中文搜索引擎定义和配置样例下载

Eldy赶在新年前把AWStats 6.9发布了: 主要的蜘蛛定义和搜索引擎定义修改以及本站的配置样例我已经打包在这里;AWStats虽然是perl写的,但是基本上要用起来不需要对perl熟悉,主要是配置的修改,并且可以适用于于大部分网站的流量结合Google Analytic统计作为网站状况的轻量级基础统计解决方案;

相关的更新也已经提交: 欢迎各位补充,争取在下一个版本中发布
AWStats - Patches - 4 items
1569229 Simplified Chinese language file update
1569201 top Chinese browser and robot update
1569151 TOP Chinese local search engines update
2499455 robots.txt: clfmerged log files maybe not start with /
AWStats - Feature Requests - 2 items
2498163 configurable $LIMITFLUSH and increase default value to 50000
706297 IIS timezone:change the timeline instead of change time

完整的diff附后: 包含了awstats.pl本身的2个小修改;
1 针对大量URL:增大$LIMITFLUSH减少临时文件I/O;
2 针对泛域名型应用的修改:使用clfmerge -b合并后的日志无法匹配"GET /robots.txt" (因为被clfmerge拼上域名,变成了 "GET http://foo.example.com/robots.txt");

按此阅读全文 "AWStats 6.9发布: 补充中文搜索引擎定义和配置样例下载" »

2009年12月22日

AWStats的自定义扩展统计:Using the Extra Sections features

如何利用AWStats针对网站自身应用进行特定参数的统计,今天学习了一下:AWStats Documentation - Using the Extra Sections features。文档中主要有以下几个例子:
# Example 1: Tracking Product orders
跟踪商品订单:解析出GET /cgi-bin/order.cgi?productid=49&session=A0B1C2 中的productid=字段
# Example 2: Tracking Bugzilla most frequently viewed bugs
跟踪bugzilla中最经常被访问的Bug:原理同上,这在内部开发中非常有用,类似的,也很容易给BBS系统配置出最常访问的论坛等统计。
# Example 3: Tracking Exit clicks
跟踪用户离开当前网站的点击:前提是你将所有指向其他网站的链接通过/cgi-bin/awredir.pl?url=http://externalsite/pagelinked这样的链接进行部署。
# Example 4: Tracking aborted download
跟踪中断的下载:利用的是HTTP返回的状态码206 ExtraSectionCodeFilter1="206"
# Example 5: Tracking most requested domain aliases
跟踪最常用的域名别名:这需要在日志中部署并定义扩展字段%your_extra_field,然后在ExtraSestion中部署统计相应的扩展字段%your_extra_field 这里的例子就是将域名的别名,在一个域名有多个别名的时候,分析那个域名最常用最有帮助。
# Example 6: List of top level 2 path under a directory /mydir
跟踪某个目录下最常访问的2级子目录,根据样例设置了一个 /tech /blog 2个目录下的TOP文章统计。

按此阅读全文 "AWStats的自定义扩展统计:Using the Extra Sections features" »

2010年06月05日

AWStats 7.0 发布, Linux下的安装配置使用备忘

5月25日,Eldy发布了AWStats的7.0版本,从界面上看主要的变化是很多统计图使用了Google图表API生成;
awstats_70_googlechartapi.png

在Linux的安装请参考AWStats安装笔记, 此次更新后的相关配置修改都放到补充库里了;
包含chedong.com的awstats配置样例:awstats.chedong.conf
通用配置文件样例: coommon.conf
搜索引擎和蜘蛛定义更新: robots.pm search_engines.pm (需要放到lib目录下)

缺省建议启用的配置:common.conf
LoadPlugin="tooltips"
LoadPlugin="decodeutfkeys"
LoadPlugin="graphgooglechartapi"
LoadPlugin="geoip GEOIP_STANDARD /home/chedong/chedong.com/cgi-bin/awstats/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /home/chedong/chedong.com/cgi-bin/awstats/GeoLiteCity.dat"
LoadPlugin="qqhostinfo"

搜索引擎定义主要去掉了一些门户网站的域名(例如: 163.com live.com),避免了搜索服务和门户其他服务(例如: 博客)容易和搜索来源混淆的情况。
蜘蛛定义主要增加了feed抓取机器人:
'sosospider','SosoSpider',
'youdaobot','YoudaoBot',
'doubanbot','DoubanBot',
'friendfeedbot','FriendFeedBot',

AWStats 7.0的详细ChangeLog更新附后:

按此阅读全文 "AWStats 7.0 发布, Linux下的安装配置使用备忘" »

2012年02月14日

AWStats 配置更新: Unknown encoding 'GB18030' at plugins/decodeutfkeys.pm和JikeSpider

之前的中文语言包awstats-cn.txt中有个问题:载入detect utf-8插件后,会出现
Unknown encoding 'GB18030' at plugins/decodeutfkeys.pm 并导致来源关键词统计显示不全;
Perl的版本是5.10.1

修改:
diff -r1.12 awstats-cn.txt
3c3
< PageCode=GB18030
---
> PageCode=GBK

另外: 即刻搜索引擎的蜘蛛也开始行动了,扩展统计配置附后;

按此阅读全文 "AWStats 配置更新: Unknown encoding 'GB18030' at plugins/decodeutfkeys.pm和JikeSpider" »

2019年07月04日

Perl 5.22以后的语法更新:Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/\"%{ <-- HERE Referer}i\"/ at ./awstats.pl line 9045.

虚拟主机的操作系统升级后,perl的版本也升级到了5.26.x,awstats的统计中断了,从后台的错误信息:

Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/\"%{ <-- HERE Referer}i\"/ at ./awstats.pl line 9045.

查了一下,此类信息应该是从5.22开始的:
As written by @Leobaillard you can use his patch. If you want to fix this with your editor (vi) you can go to line 3936 and make the following changes
$ vi buildroot/output/host/usr/bin/automake
goto line :3936 and change
$text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
to
$text =~ s/\$\{([^ \t=:+\{\}]+)\}/substitute_ac_subst_variables_worker ($1)/ge;
The error is with automake and perl v5.26.

从perl v5.22开始:不再推荐在正则表达式中使用 {,而且如果没有转义 \{ 会有错误警告,从v5.26开始:不仅有警告,还会有语法错误提示。

按此阅读全文 "Perl 5.22以后的语法更新:Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/\"%{ <-- HERE Referer}i\"/ at ./awstats.pl line 9045." »

关于 日志分析|AWStats

此页面包含了发表于 车东[Blog^2] 的 日志分析|AWStats 所有日记的归档,它们从老到新列出。

前一个分类 日志分析|Analytics

更多信息可在 主索引 页和 归档 页看到。

Creative Commons License
此 Blog 中的日记遵循以下授权 Creative Commons(创作共用)授权.
Powered by
Movable Type 3.36