proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« 继续推广 Windows 下 FTP Server 支持 ls-lR.gz | Main | [freeip] 清华大学校园网现行免费地址域列表20060404更新 »

May 8, 2006

研究解决awstats等日志分析软件对日志数据的时间顺序敏感性

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2006/05/08/000978.html
研究解决awstats等日志分析软件对日志数据的时间顺序敏感性

问题提出:
awstats分析多个日志文件时,如果日志文件之间的时间不是顺序排列的
比如不是 access.log.20060506 access.log.20060507 样子的多个文件
而是 access.log.20060507.ip1  access.log.20060507.ip2  access.log.20060507.ip3
显然 三个IP产生的日志文件的时间各自都是顺序的 但三者之间是个混乱的先后关系
此时 如果用awstats顺序处理三个日志文件 得到的结果会有错

如: awstats-6.5/wwwroot/cgi-bin/awstats.pl -update -config=ipcn.org
Update for config "/etc/awstats/awstats.ipcn.org.conf"
With data in log file "/opt/squid/logs/access.log.20060507.ip2"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record has fallen on another record.
So searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 92378
 Found 17 dropped records,
 Found 0 corrupted records,
 Found 92361 old records,
 Found 0 new qualified records.

从前面的消息可以看到 Found 92361 old records,
于是 这个文件的数据就都被歧视了 没有进入结果统计


问题分析:
awstats第一次处理日志之后会在处理结果数据文件awstats052006.ipcn.org.txt中记录LastLine信息
如:
LastLine 20060507235900 114232 15090725 26297835870

后面再分析日志时,会先从之前处理结果中取出 LastLine 赋值给 变量 $LastLine
然后再分析日志时,会比对当前数据的时间信息和 $LastLine 的大小
			if ($timerecord <= $LastLine) {	# Already processed
				$NbOfOldLines++;
				next;
			}
可以看出 当新日志文件的数据时间在上次分析的时间之前时 则直接 next 跳过忽略
于是就产生了前面的问题: 第二、第三、...个日志文件的信息没有正确算入统计


问题解决:
通过上面的分析可以看到 要解决这个问题可以从两方面考虑
1 日志数据
2 分析程序

日志数据方面可以做的改动是:
awstats处理之前处理一下日志数据 让日志按照时间顺序准备好
方案一:日志集中收集,所有服务器实时把数据发到日志收集服务器上
        还要保证各个服务器的时间严格正确/一致
方案二:日志定期归档后汇总,通过sort把所有日志合并成严格按时间顺序的一个日志文件
        由于各个日志自己都是时间顺序排列的,所以可以利用 sort 的 -m merge 选项处理
        sort -m -t : -k 2,4 -o access.log access.log.ip1 access.log.ip2
        这里日志不能跨天归档,也就是说至少必须每天归档一次
        比如每天 从00:00:00 到 23:59:59 的数据正确归档后
        然后再把漂亮的数据交给awstats处理

webalizer pwebstats 这方面有没有问题 有时间看一下 这里先作为一个TODO 待确认

本blog相关文章:
用 awstats 做网站访问日志分析
http://windtear.net/archives/2006/04/30/000972.html
本blog WWW

Posted by windtear at May 8, 2006 8:24 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.