3

複数のサブドメインを持つサイトがあり、すべてのサブドメインが同じ access_log ファイルに記録されます。ファイルは非常に大きくなる可能性があるため、各サブドメインを独自のファイルに grep するスクリプトがあります。

次のように、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 %code %bytesd %refererquot %uaquot"

awstats から得られる唯一の出力は、Monthly History セクションからのものです。それ以外はすべて空白またはゼロです。

私の生成スクリプトは次のようになります。

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

私は何を間違っていますか?

4

1 に答える 1

3

Apache LogFormat ディレクティブ (= 記号付き) をカット アンド ペーストするだけでうまくいくとは思いもしませんでした。

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\""
于 2010-11-09T21:35:42.700 に答える