我有一个带有几个子域的站点,所有子域都记录到同一access_log文件。由于该文件可能是如此之大,因此我有一个脚本,将每个子域都插入其自己的文件中。

我在Apache中具有自定义日志文件格式:

"\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""

我的日志文件中的一行看起来像这样:

"brand.mysite.com" 176.32.1.18 - - [24/Oct/2010:11:24:45 -0400] "GET /Product/lookup HTTP/1.1" 200 5585 "http://www.customerhomepage.com/brand_name.htm" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322)"

日志格式的10个项目,日志中的10个项目。查看。

我正在尝试使用AWSTATS配置文件中的以下logformat通过AWSTATS分析它们:

logformat =“ ”%host_r “%host%logName%logName%time1%methodurl%代码%bytesd%refleerquot%uaquot”

我从AWSTATS获得的唯一输出是从每月历史部分中获得的。其他所有内容均为空白或零。

我们一代脚本看起来像这样:

rm stats/*.txt
cat access_log | grep brand > brand_access_log
perl tools/awstats_updateall.pl -configdir=wwwroot/cgi-bin -awstatsprog=wwwroot/cgi-bin/awstats.pl now
perl tools/awstats_buildstaticpages.pl -dir=stats -output=pagetype -config=brand -awstatsprog=wwwroot/cgi-bin/awstats.pl

我究竟做错了什么?

有帮助吗?

解决方案

我没有意识到我只能剪切并粘贴Apache LogFormat指令(带有=标志),它会起作用,我认为我被迫使用AWSTATS。

AWSTATS将使用您的HTTPD.Conf文件中的LogFormat指令,并将其替换为AWSTATS标识符。

我将其剪切并粘贴到我的awstats.s.conf文件中,直接从我的apache2 httpd.conf(然后在logformat后添加= sign):

LogFormat="\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top