ログ解析スクリプトAWStats 5.0ドキュメント 

 


AWStatsのインストール / セットアップ / 利用

AWStatsを利用するには, 以下の3つのステップを踏みます:


ステップ 1 : インストールとセットアップ


A) Apacheの場合 (Unix/Linux, Windows, MacOS...)

* ステップ 1-1
Apacheのログ形式を, NCSA combined/XLF/ELFに設定します(独自のログ形式を利用することもできますが, 規定のログ形式が通常最良の選択肢ですし, セットアップもより簡単になります). httpd.confの中の以下のディレクティブを設定すると, ログ形式を変更することができます(詳細はApacheのマニュアルを参照してください) :
CustomLog /yourlogpath/yourlogfile common
を, 以下の形式に修正します(管理人注 : 通常はコメントアウトされた行が存在する場合もあります)
CustomLog /yourlogpath/yourlogfile combined

ログ形式の変更を有効にするために, Apacheを停止して過去のログファイルをすべて削除してから, Apacheを再起動し, 自分のWebページを閲覧してみてください. 正常に変更が行われていれば, 以下のようなログが新しいログファイルに記録されているはずです :
62.161.78.75 - - [dd/mmm/yyyy:hh:mm:ss +0000] "GET / HTTP/1.1" 200 1234 "http://www.from.com/from.html" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"

* ステップ 1-2
解凍したcgi-binのフォルダの内容(awstats.pl, awstats.model.confと, lang, lib, pluginsサブディレクトリが含まれています)を, サーバーのcgi-binディレクトリにコピーします.

* ステップ 1-3
必要があれば(通常は不要です), awstats.plファイルの最初の行を修正します.
#!/usr/bin/perl
を, Perlインタプリタがインストールされているパスに変更します. デフォルトの設定はほとんどのUnix系OSで動作しますが, 以下の通りに修正する必要がある場合もあります.
#!/usr/local/bin/perl
Windows用のApacheとActiveperlインタープリタという環境では, 以下の通りになるでしょう.
#!c:/program files/activeperl/bin/perl

* ステップ 1-4
AWStatsのiconサブディレクトリとその内容を, Webサーバーから読み取ることが出来るディレクトリに移動します。例えば/yourwwwroot/iconや/yourwwwroot/iconsなどです.

* ステップ 1-5
awstats.model.confawstats.myvirtualhostname.confという名前でコピーします. ノート : AWStatsを実行する際、AWStatsはまずawstats.myvirtualhostname.confという名前のファイルを検索します(存在しなかった場合, awstats.confを検索します).
どのような名前を利用するにせよ、この新しいファイルは
- Unix/Linuxの場合,
/etc/opt/awstats, /etc/awstats, /etc, あるいはawstats.plと同じディレクトリ(つまりcgi-bin).
- Windowsとその他のOSの場合, awstats.plと同じディレクトリ(つまりcgi-bin).
におく必要があります.

* ステップ 1-6
この新しい設定ファイルを利用して, 設定を行います :
- LogFile の値を, あなたのWebサーバーのログファイルのフルパスに変更します(awstats.plのディレクトリからの相対パスを利用することもできます).
- LogFormatの値が"1"であることを確認します("NCSA apache combined/ELF/XLF log format"という意味です).
- DirIconsパラメーターを, アイコンディレクトリのURLを反映した相対パスに変更します.
- SiteDomain パラメーターを編集し, 解析したいWebサーバーに到達するために利用されるメインのドメインの名前もしくはイントラネットのサーバー名を設定します(例 : www.mydomain.com).
- 必要があれば, その他のパラメーターも変更します.

ステップ 1(インストールとセットアップ)はこれで終了です. 統計の作成/更新へ進んでください.



B) IISの場合

* ステップ 1-1
IISが"W3C拡張ログファイル形式"でログを取得するように設定します(他のログ形式を利用することも可能ですが, このように設定するとセットアップが簡単になります). 実際には, IISのスナップインを起動し, 対象のWebサイトを選択してそのプロパティを開きます. W3C拡張ログファイル形式を選択し, そのプロパティを開きます. その中の拡張プロパティのタブを開き, 拡張ログオプションのチェックを一度すべて外します. それから, 以下に示すフィールドのチェックを入れます :
日付 (date)
時間 (time)
クライアントIPアドレス (c-ip)
ユーザー名 (cs-username)
メソッド (cs-method)
URI Stem (cs-uri-stem)
プロトコルの状態 (sc-status)
送信バイト数 (sc-bytes)
プロトコルバージョン (cs-version)
ユーザーエージェント (cs(User-Agent))
履歴 (cs(Referer))
ログ形式が変更されていることを確認するため, IISを停止して過去のすべてのログを削除し, IISを再起動してから自分のWebサイトを訪問してみてください. 正常に変更が行われていれば, 以下のようなログが新しいログファイルに記録されているはずです :
2000-07-19 14:14:14 62.161.78.73 - GET / 200 1234 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http://www.from.com/from.htm

* ステップ 1-2
解凍したcgi-binのフォルダの内容(awstats.pl, awstats.model.confと, lang, lib, pluginsサブディレクトリが含まれています)を, サーバーのcgi-binディレクトリにコピーします.

* ステップ 1-3
AWStatsのアイコンサブディレクトリとその内容を, Webサーバーから読み取ることが出来るディレクトリに移動します。例えばC:\yourwwwroot\iconです.

* Step 1-4
awstats.model.confawstats.myvirtualhostname.confという名前でコピーします. ノート : AWStatsを実行する際、AWStatsはまずawstats.myvirtualhostname.confという名前のファイルを検索します(存在しなかった場合, awstats.confを検索します).
どのような名前を利用するにせよ、この新しいファイルは以下の場所に置かれる必要があります.
- awstats.plと同じディレクトリ(つまりcgi-bin).

* ステップ 1-5
この新しい設定ファイルを利用して, 設定を行います :
- LogFile の値を, あなたのWebサーバーのログファイルのフルパスに変更します(awstats.plのディレクトリからの相対パスを利用することもできます).
- LogFormatの値を"2"に変更します("IISのW3C拡張ログファイル形式"という意味です).
- DirIconsパラメーターを, アイコンディレクトリのURLを反映した相対パスに変更します.
- Edit SiteDomain パラメーターを編集し, 解析したいWebサーバーに到達するために利用されるメインのドメインの名前もしくはイントラネットのサーバー名を設定します(例 : www.mydomain.com).
- 必要があれば, その他のパラメーターも変更します.

ステップ 1(インストールとセットアップ)はこれで終了です. 統計の作成/更新へ進んでください.



C) その他のWebサーバーの場合

セットアップの手順はApachもしくはIISとほぼ同じになります.
WebStarのログ形式を利用する場合には, LogFormatを"3"に設定してください.



ステップ 2 : 統計の作成/更新


* ステップ 2-1
初回の統計の作成/更新は, コマンドラインから手動で行います(初回は時間がかかります) :
awstats.pl -config=myvirtualhostname -update

AWStatsは設定ファイルであるawstats.myvirtualhostname.conf(存在しなければ, awstats.conf)を読み込み, 自分のデータベースを作成/更新し, ログファイルを分析した情報をすべて格納します.
AWStatsのデータベースファイルは, 設定ファイルのDirDataパラメーターで指定されたディレクトリに保存されます.
更新が終了すると, 以下のようにその結果が表示されます:
Lines in file: 225730
Found 5 dropped records,
Found 124 corrupted records,
Found 0 old records,
Found 225601 new records.

Dropped recordsは, AWStatsのフィルタ(SkipHosts, SkipFiles, OnlyFilesパラメーターを参照)の基準を満たさないHTTPリクエストで, 統計から除外されたレコードの件数です. 除外されたレコードを見たい場合は, -showdroppedオプションをコマンドラインに付与してください.
Corrupted recordsは, AWStatsの設定ファイルの"LogFormat"パラメーターに設定されたログ形式に合致しなかったレコードの件数です. たとえすべてが正常に動作しているWebサーバーでも, 若干(5%以下)のCorrupted recordsが検出される可能性があります. これにはいくつか理由が考えられます : Webサーバーの内部バグ, バグがあるブラウザが送信した不正なリクエスト, Webサーバーの突然停止...
AWStatsの設定ファイルのLogFormatパラメーターの設定が正しいにもかかわらず, すべてのレコードがCorruptedとされた場合, Webサーバーのログ形式の設定が誤っている可能性があります. AWStatsの設定ファイルのLogFormatパラメーターは, 必ず解析しようとするログファイルの形式と一致している必要があることを忘れないでください.
Corruptedとされたレコードを見たい場合は, -showcorruptedをコマンドラインに付与してください.
Old recordsは, 前回の更新処理時にすでに処理されてるレコードの件数です. つまり, なるべく頻繁にログファイルの切りつめを行うことが推奨されていますが, 更新を行うたびにログファイルの切りつめを必ず行う必要はありません.
New recordsは, 統計を作成/更新する際に利用されたログファイル中のレコードの件数です.

ノート : ログの解析処理は時間がかかります(Athlon 1Ghzで約4,100行/1秒, DNSLookupが"1"に設定されていてログファイルが名前解決済みでない場合, 更に名前解決に時間がかかります).
より正確な数値については, ベンチマークのページを参照してください.

* ステップ 2-2
AWStatsの"ブラウザから更新する機能"(次の統計の閲覧を参照)を利用すれば"リアルタイム"の統計が可能であるとはいえ, 更新処理(コマンドは初回の処理と同一)はスケジューラーを利用して頻繁に実行するべきです.

crontab(UNIX/Linuxの場合), もしくはタスクスケジューラー(Windowsの場合)を利用すれば, AWStatsの更新処理を頻繁に起動することができます.

どの程度の頻度で起動するかについては, 以下の数値を参考にしてください :
- 10,000訪問者/月のサイトであれば, 1日に1回AWStatsを起動する
- 50,000訪問者/月のサイトであれば, 4時間ごとにAWStatsを起動する
- 250,000訪問者/月のサイトであれば, 1時間ごとにAWStatsを起動する
- 1,000,000訪問者/月のサイトであれば, 1時間ごとにAWStatsを起動する
この処理は良好なパフォーマンスを維持するためには必要不可欠になります.
より正確な数値については, ベンチマークのページを参照してください.

!!! 警告, PurgeLogFileパラメーターを利用しない場合(もしくはIISを利用している場合), あなたがログファイルを頻繁に切り詰める/ローテーションさせる(もしくはWebサーバーにさせる)ことが非常に重要になります(FAQ-SET550が参考になるでしょう). AWStatsは同じログを2度解析することは決してありませんが, ログを頻繁に小さくすれば小さくするほど, AWStatsのパフォーマンスは向上します.



ステップ 3 : 統計の閲覧


解析結果を閲覧する手段は, セキュリティポリシーに応じていくつかある選択肢の中から選ぶことになります.

* 第一の手段は, 以下のようなコマンドラインで、メインのレポートを静的なHTMLで生成するという方法になります :
perl awstats.pl -config=virtualhostname -output -staticlinks > awstats.virtualhostname.html

上記以外の様々な出力オプション(以下のコマンドは全て異なるレポートを出力します)を利用することもできます.以下に利用可能な全ての出力オプションの利用方法を示します(1) :
perl awstats.pl -config=virtualhostname -output=monthdayvalues -staticlinks > awstats.virtualhostname.monthdayvalues.html
perl awstats.pl -config=virtualhostname -output=allhosts -staticlinks > awstats.virtualhostname.allhosts.html
perl awstats.pl -config=virtualhostname -output=lasthosts -staticlinks > awstats.virtualhostname.lasthosts.html
perl awstats.pl -config=virtualhostname -output=unknownip -staticlinks > awstats.virtualhostname.unknownip.html
perl awstats.pl -config=virtualhostname -output=alllogins -staticlinks > awstats.virtualhostname.alllogins.html
perl awstats.pl -config=virtualhostname -output=lastlogins -staticlinks > awstats.virtualhostname.lastlogins.html
perl awstats.pl -config=virtualhostname -output=allrobots -staticlinks > awstats.virtualhostname.allrobots.html
perl awstats.pl -config=virtualhostname -output=lastrobots -staticlinks > awstats.virtualhostname.lastrobots.html
perl awstats.pl -config=virtualhostname -output=urldetail -staticlinks > awstats.virtualhostname.urldetail.html
perl awstats.pl -config=virtualhostname -output=urldetail:filter(2) -staticlinks > awstats.virtualhostname.urldetailfiltered.html
perl awstats.pl -config=virtualhostname -output=urlentry -staticlinks > awstats.virtualhostname.urlentry.html
perl awstats.pl -config=virtualhostname -output=urlentry:filter(2) -staticlinks > awstats.virtualhostname.urlentryfiltered.html
perl awstats.pl -config=virtualhostname -output=urlexit -staticlinks > awstats.virtualhostname.urlexit.html
perl awstats.pl -config=virtualhostname -output=urlexit:filter(2) -staticlinks > awstats.virtualhostname.urlexitfiltered.html
perl awstats.pl -config=virtualhostname -output=browserdetail -staticlinks > awstats.virtualhostname.browserdetail.html
perl awstats.pl -config=virtualhostname -output=unknownbrowsers -staticlinks > awstats.virtualhostname.unknownbrowsers.html
perl awstats.pl -config=virtualhostname -output=unknownos -staticlinks > awstats.virtualhostname.unknownos.html
perl awstats.pl -config=virtualhostname -output=refererse -staticlinks > awstats.virtualhostname.refererse.html
perl awstats.pl -config=virtualhostname -output=refererpages -staticlinks > awstats.virtualhostname.refererpages.html
perl awstats.pl -config=virtualhostname -output=keyphrases -staticlinks > awstats.virtualhostname.keyphrases.html
perl awstats.pl -config=virtualhostname -output=keywords -staticlinks > awstats.virtualhostname.keywords.html
perl awstats.pl -config=virtualhostname -output=errors404 -staticlinks > awstats.virtualhostname.errors404.html

ノート (1): 望むのであれば, awstats_buildstaticpagesツールを利用して, これら全てのページをひとつのコマンドで生成することもできます.
ノート (2): filter は, AWStatsの処理対象とさせたいファイル名を示す正規表現も構いません.

* もうひとつの方法が, ブラウザから動的に統計を閲覧するという方法です.
設定ファイル名がvirtualhostname.confである場合, 以下のURLを利用します:
http://www.myserver.mydomain/cgi-bin/awstats.pl?config=virtualhostname
virtualhostnameは, 利用すべき設定ファイル名を知るために利用されます(AWStatsはawstats.virtualhostname.confを利用します).
設定ファイル名がawstats.confである場合, 以下のURLでも問題はありません:
http://www.myserver.mydomain/cgi-bin/awstats.pl

ノート
: AWStatsの設定ファイルでAllowToUpdateStatsFromBrowserパラメーターを"1"に設定している場合, 更新処理をブラウザから実行することが可能になります."今すぐ更新"をクリックするだけです.