如何让awstats读取此日志格式?

时间:2010-11-09 18:56:52

标签: logging apache2 awstats log-analysis

我有一个包含多个子域的站点,所有子域都记录到同一个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在我的awstats配置文件中使用以下Logformat来分析这些:

LogFormat =“\”%host_r \“%host%logname%logname%time1%methodurl%code%bytesd%refererquot%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

我做错了什么?

1 个答案:

答案 0 :(得分:3)

我没有意识到我可以剪切和粘贴Apache LogFormat指令(带有=符号),它会起作用,我以为我被迫使用awstats。

awstats将使用httpd.conf文件中的LogFormat指令,并将其替换为awstats标识符。

我直接从我的Apache2 httpd.conf剪切并粘贴到我的awstats.whatever.conf文件中(然后在LogFormat之后添加了=符号):

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