awstats问题,高手请进来解决

awstats问题,高手请进来解决

高手请帮忙解决,谢谢!
  我假如启用了两个站点,一个是a.web.com, 另一个是b.web.com,我现在想对这两个站点,我现

在分析这两个日志,原来awstats.a.web.com.conf日志文件的配置信息为:
LogFile="E:\databack\site\a\Log\W3SVC287078791\ex%YY-0%MM-0%DD-0.log"
现在改为:LogFile="E:/databack/site/a/cgi-bin/logresolvemerge.pl E:/databack/site/a/Log/W3SVC287078791/ex%YY-0%MM-0%DD-0.log E:/databack/site/b/Log/W3SVC1857510694/ex%YY-0%MM-0%DD-0.log |"
其它的配置参数修改没问题,因为针对"awstats.a.web.com.conf"更新时没问题,可以升级.但是改

成上面那样就不能升级了, E:\databack\site\a\cgi-bin>perl awstats.pl -config=a.web.com -lang=cn

就出现以下错误提示:
Update for config "./awstats.a.web.com.conf"
With data in log file "E:/databack/site/a/cgi-bin/logresolvemerge.pl E:/dat
aback/site/a/Log/W3SVC287078791/ex070423.log E:/databack/site/b/Log/W3S
VC1857510694/ex070423.log |"...
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...
AWStats did not find any valid log lines that match your LogFormat parameter, in
the 50th first non commented lines read of your log.
Your log file E:/databack/site/a/cgi-bin/logresolvemerge.pl E:/databack/sit
e/a/Log/W3SVC287078791/ex070423.log E:/databack/site/b/Log/W3SVC1857510
694/ex070423.log | must have a bad format or LogFormat parameter setup does not
match this format.
Your AWStats LogFormat parameter is:
2
This means each line in your web server log file need to have "MSIE Extended W3C
log format" like this:
date time c-ip c-username cs-method cs-uri-sterm sc-status sc-bytes cs-version c
s(User-Agent) cs(Referer)
And this is an example of records AWStats found in your log file (the record num
ber 50 in your log):
2007-04-22 16:00:02 GET /images/hotflash_top_right.gif - 124.114.179.106 HTTP/1.
1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) http://b.web.com/C
ategory.aspx?CategoryID=19 200 1459
Setup ('./awstats.a.web.com.conf' file, web server or permissions) may be w
rong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

请高手帮忙指教,我是在IIS,windows 2003环境下的配置. 提示说是Log格式的问题,但我针对一个日志文件更新却没问题, 请问还需要设置什么?
修改你的IIS里面的日制部分的规则如下:
date time c-ip c-username cs-method cs-uri-sterm sc-status sc-bytes cs-version c
s(User-Agent) cs(Referer)
谢谢你的回复,这种方法早试过了,不起效果,我在配置IIS站点时,都是修改了日志规则。我之前说过了,单个.conf或多个.conf更新其实都没问题,一旦在某个.conf文件中的参数logfile中合并多个日志文件就会报错,具体地说一旦用到logresolvemerge.pl 就会报错,有些文档中说logresolvemerge.pl 是一个被授权的软件工具,它是awstats的一部分,但它并不依赖以awstats,本身可以单独使用。它是一个命令行下合并日志和反向解析软件。但是合并的日志文件必须是没有被合并过的,可以是多个文件夹下的日志文件。其实我想要实现的是这样的,我的网站有一个主站,主域名假如是host.com,网站有多个模块,假如有news,BBS,blog等,这样就会取多个域名,其中有news.host.com, bbs.host.com, blog.host.com。这样的话,每个域名也是一个站点,因此就有四个不同的日志文件,我不但要同时更新四个日志,想在IE中输入http://host.com/cgi-bin/awstats.pl?config=host.com就可以同时看到四个站点的日志分析报告,不知道这样行不行?如果不行的话,logresolvemerge.pl 提到可以实现,那它又是干嘛用的呢?有时间的话请给予指点,非常感谢!
确确实实是日志格式的问题。

为什么会导致这个问题呢?
在Unix Like系统上,给一个perl文件(.pl为后缀)加上一个可执行权限,那么执行它,会使用第一行的定义解析器进行自动的解析并运行。
然而Win32系统上面通常并非如此。

所以,你给出的logresolvemerge.pl并没有被执行,仅仅作为一个普通的日志文件读入,当然就是提示日志格式不正确了。

怎么做呢?

方法如下:
1. 例如,我的perl.exe的可执行因为我安装perl比较规范,其位置在D:/usr/bin/perl
则:D:\usr\bin\perl logresolvemerge.pl 实际的日志
2. 鼠标右键查看一个perl文件(.pl),打开方式选择到perl.exe,并且总是使用perl打开。

就可以了
谢谢你的回复,你所说的格式错误,我想应该也是.
你所说的方法如下:
1. 例如,我的perl.exe的可执行因为我安装perl比较规范,其位置在D:/usr/bin/perl
则:D:\usr\bin\perl logresolvemerge.pl 实际的日志
2. 鼠标右键查看一个perl文件(.pl),打开方式选择到perl.exe,并且总是使用perl打开。

按方法2我已经选择总是以perl打开, 我在CMD命令行中测试过以"D:\usr\bin\perl logresolvemerge.pl 实际的日志"方式运行过,运行后但没什么反应,还没达到我想要的效果,对了,在.conf文件中的LogFile参数应该怎么写了?是这样 LogFile="perl E:\databack\site\aa\cgi-bin\logresolvemerge.pl e:\databack\site\aa\log\w3svc287078791\ex%YY-0%MM-0%DD-0.log e:\databack\site\bb\log\w3svc277230576\ex%YY-0%MM-0%DD-0.log |"
还是这样 LogFile="E:\databack\site\aa\Log\W3SVC287078791\ex%YY-0%MM-0%DD-0.log"
1。注意顺序

QUOTE:
This means each line in your web server log file need to have "MSIE Extended W3C
log format" like this:
date time c-ip c-username cs-method cs-uri-sterm sc-status sc-bytes cs-version c
s(User-Agent) cs(Referer)
And this is an example of records AWStats found in your log file (the record num
ber 50 in your log):
2007-04-22 16:00:02 GET /images/hotflash_top_right.gif - 124.114.179.106 HTTP/1.
1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) http://b.web.com/C
ategory.aspx?CategoryID=19 200 1459

很明显可以看出的的日志不符合要求

2。注意一个问题

QUOTE:
LogFile="E:\databack\site\a\Log\W3SVC287078791\ex%YY-0%MM-0%DD-0.log"

你这样是分析今天的日志,一般来说日志分析都是针对前一天(前一段时间)的日志作分析。
这朋友所说的
1。注意顺序
2.你这样是分析今天的日志,一般来说日志分析都是针对前一天(前一段时间)的日志作分析。

不是这些原因,我在上面讲过,单个或多个更新.conf文件都能更新,不会提示格式问题;
ex%YY-0%MM-0%DD-0.log这个我知道是分析当天的日志文件,也不是这个原因,一旦用了logresolvemerge.pl 就会出现我上面所说的问题
要不你开放远程大家跑上去看看。

或者去那个pl文件里面看看debug一下子。

我在bsd下面也是使用这个的。
我也想开远程大家一起来看看,但有点麻烦呀,网管不建议这样做,我再说一下我这边情况,看看是我这边还有其它的问题,我把这几个站点的存放路径和关系说的更清楚些。假如,我有一个主站域名为host.com,还有几个模块也在IIS中建了站点,同样也给定相应的域名,比如有:新闻的news.host.com,博客的blog.host.com等,并且我也在本地硬盘中建立了相应的文件路径,比如是:新闻的路径为e:\databack\site\news,.conf文件为e:\databack\site\news\cgi-bin\awstats.news.host.com.conf,Log存放路径为e:\databack\site\news\Log\W3SVC287078791\ex070425.log ,主站的路径相似,为e:\databack\site\host,.conf文件为e:\databack\site\host\cgi-bin\awstats.host.com.conf,Log存放路径为e:\databack\site\host\Log\W3SVC287078791\ex070425.log ,同理,博客也是一样的,就不说了,然后我主要是修改awststs.host.com.conf文件的LogFile参数,(当然其它相关的参数也做了修改,单个和用awstats_updateall.pl 多个.conf升级都没有问题),但是,在修改LogFile参数,变成了LogFile="c:\perl\perl E:/databack/site/host/cgi-bin/logresolvemerge.pl E:/databack/site/host/Log/ex%YY-0%MM-0%DD-0.log E:/databack/site/news/Log/ex%YY-0%MM-0%DD-0.log | 或是把新闻的日志文件拷过来,改成LogFile="c:\perl\perl E:/databack/site/host/cgi-bin/logresolvemerge.pl E:/databack/site/host/Log/ex*.log | 都是不行的,都出现我以前所说的格式问题,听 HonestQiao 所说logresolvemerge.pl 在linux系统下是可行了,在windows系统下不认,但应该怎么处理呢?你上午所说的方法,我对方法1不太理解。还有,我在命令行中,输入perl E:/databack/site/host/cgi-bin/logresolvemerge.pl E:/databack/site/host/Log/ex070425.log E:/databack/site/news/Log/ex070425.log 不会报错,但找不到合并后的日志文件,我在同目录下和System32\LogFile目录下都找不到,本想如果这种方式可行的话,就设定一个计划任务的批处理的方式,但还是没办法,郁闷呀,还请高手帮忙解决。