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

 


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

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


ステップ 1 : configure.plを利用したインストールとセットアップ

A) (Unix/Linux, Windows, MacOSなどで動作する)ApacheもしくはApache互換のサーバの場合

* ステップ1-1:
(Linuxのディストリビューションに同梱されるパッケージやWindowsのインストーラを利用する場合は, 本項の作業は終了済みの可能性があります. しかし, 念のため確認することをお勧します.)

ダウンロードしてAWStatsのパッケージを起動する前に, configure.plというスクリプトを実行する必要があります. configure.plはtoolsディレクトリの中にあります(Windowsのインストーラを利用する場合, このスクリプトは自動的に起動されます):
perl configure.pl

configure.plが行う内容 (望むなら手作業で行うことも可能):

A) configure.plはApacheのログ形式の設定を確認します. commonログ形式を利用している場合, configure.plはそれをNCSA combined/XLF/ELFログ形式に変更するように勧めます(好みのログ形式で利用することもできますが, ほとんどの場合規定のログ形式が最適な選択肢であり, セットアップも容易になります).
"yes"と答えると, configure.plは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)"

B) 以下のディレクティブがApacheの設定ファイルに加えられていない場合, configure.plはこれらのディレクティブをApacheの設定ファイルに追加します("/usr/local/awstats/wwwroot"のパスは, ディストリビューションやOSによって異なりますので注意してください):

#
# Directives to add to your Apache conf file to allow use of AWStats as a CGI.
# Note that path "/usr/local/awstats/" must reflect your AWStats install path.
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>


C) configure.plがApacheを再起動し, AとBで加えられた変更を適用します.

D) configure.plは設定プロファイルの名前の入力を求めますので, あなたのWebサーバあるいは解析プロファイルの名前を入力します. たとえばmyvirtualhostnameなどです.
名前が入力されると, configure.plはawstats.model.confawstats.myvirtualhostname.confという名前でコピーします. 実際には, 入力された名前が"myvirtualhostname"の代わりに利用されます. ここでコピーされたファイルが格納されるパスは, OSにより異なります:
- Unix/Linuxを利用している場合: /etc/awstats.
- WindowsもしくはほかのOSを利用している場合: awstats.plと同じディレクトリ(つまりcgi-bin).

E) configure.plは終了します.

* ステップ 1-2:
設定ファイルが(configure.plもしくはパッケージインストーラによって)自動的に生成された後は, 必ず自分の利用用途に応じて"重要なパラメータ"の修正を手で行ってください:

以下に示すのは, 特に慎重に設定する必要があるパラメータの例です:
- LogFileパラメータに, あなたのWebサーバのログファイルの場所がフルパスで指定されていることを確認します(awstats.plのディレクトリからの相対パスも利用できます).
- LogTypeパラメータに, Webサーバのログを解析する場合には"W"が, ストリーミングサーバのログファイルを解析する場合には"S"が, メールサーバのログを解析する場合には"M"が, FTPサーバのログを解析する場合には"F"が設定されていることを確認します.
- LogFormatパラメータに, "1"("NCSA apache combined/ELF/XLFログ形式"の意味)が設定されていることを確認します. 独自のログ形式を利用する場合には, その形式に応じた設定がされていることを確認します. .
- DirIconsパラメータに, AWStatsのアイコンディレクトリの相対URLが反映されていることを確認します.
- SiteDomain パラメーターを編集し, 解析したいWebサーバーに到達するために利用されるメインのドメインの名前もしくはイントラネットのサーバー名を設定します(例 : www.mydomain.com). 同一サイトが複数の名前でアクセスされる可能性がある場合は, HostAliasパラメータのリストに追加します.
- 必要に応じてそのほかのパラメータも修正します.

* ステップ1-3:
(Perlインタープリタが正しくセットアップされていれば, このステップの設定は必要ありません)

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

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



B) IISの場合

* ステップ1-1:

IISが"W3C拡張ログファイル形式"でログを取得するように設定します(他のログ形式を利用することも可能ですが, このように設定するとセットアップが簡単になります). 実際には, IISのスナップインを起動し, 対象のWebサイトを選択してそのプロパティを開きます. W3C拡張ログファイル形式を選択し, そのプロパティを開きます. その中の拡張プロパティのタブを開き, 拡張ログオプションのチェックを一度すべて外します. それから, 以下に示すフィールドのチェックを入れます :
日付 (date)
時間 (time)
クライアントIPアドレス (c-ip)
ユーザー名 (cs-username)
メソッド (cs-method)
URI Stem (cs-uri-stem)
URIクエリ(cs-uri-query)
プロトコルの状態 (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です.

* ステップ 1-4:

awstats.model.confawstats.myvirtualhostname.confという名前でコピーします. "myvirtualhostname"の代わりに, 好みの名前を利用することもできます. この新しいファイルは以下の場所に置かれる必要があります.
- awstats.plと同じディレクトリ(つまりcgi-bin).

* ステップ 1-5:

この新しい設定ファイルを利用して,独自の設定を行います :
- LogFile の値を, あなたのWebサーバーのログファイルのフルパスに変更します(awstats.plのディレクトリからの相対パスを利用することもできます).
- LogTypeの値を, Webサーバのログを解析する場合には"W"に, ストリーミングサーバのログファイルを解析する場合には"S"に, メールサーバのログを解析する場合には"M"に, FTPサーバのログを解析する場合には"F"に, これら以外の場合は"O"に変更します.
- LogFormatの値を, ステップ 1-1で設定したフィールド名に変更します.
LogFormat="date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs-version cs(User-Agent) cs(Referer)"
- DirIconsパラメーターを, アイコンディレクトリのURLの相対パスに変更します.
- SiteDomain パラメーターを編集し, 解析したいWebサーバーに到達するために利用されるメインのドメインの名前もしくはイントラネットのサーバー名を設定します(例 : www.mydomain.com).
- コマンドラインでアクセスすることができず, CGI経由でのみアクセスできる場合は, AllowToUpdateStatsFromBrowserパラメータを1に設定します.
- 必要があれば, その他のパラメーターも変更します.

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



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

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



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


* ステップ2-1:

初回の統計の作成/更新は, コマンドラインから手動で行うといいでしょう. 初回は時間がかかりますし, 問題の解決に役立つからです(コマンドラインが利用できない場合は, ステップ2-2に進んでください). AWStatsを更新するコマンドラインは以下の通りです:
awstats.pl -config=myvirtualhostname -update

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

Update for config "/etc/awstats/awstats.myvirtualhostname.conf"
With data in log file "/pathtoyourlog/yourlog.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 225730
 Found 122 dropped records,
 Found 87 corrupted records,
 Found 0 old records,
 Found 225521 new qualifed records.

Dropped recordsは, ユーザのHTTPリクエストではない, もしくはAWStatsのフィルタ(SkipHosts, SkipUserAgents, SkipFiles, OnlyHosts, OnlyUserAgents, 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,500行/1秒, DNSLookupが"1"に設定されていてログファイルが名前解決済みでない場合, 更に名前解決に時間がかかります).
より正確な数値については, ベンチマークのページを参照してください.

* ステップ 2-2:

AWStatsの統計は, ブラウザから更新することができます. リアルタイム名統計を利用するには, AWStatsをCGIとして利用した場合に表示される"Update now"のリンクをクリックします(次節の'統計の閲覧'を参照).
注意 !!
このリンクを有効にするには, 設定ファイルでAllowToUpdateStatsFromBrowserが1に設定されている必要があります(リンクはデフォルトでは無効にされています).

また, オンラインでの更新を利用する場合でも, スケジューラを利用した頻繁な更新プロセスの実行を行う必要はあります(コマンドは初回更新時と同じ).
スケジューラを利用した更新プロセスの実行方法には, 以下の2つの選択肢があります:
- logrotateプロセスに更新コマンドを入れてしまう. FAQ-COM120を参照してください..
- crontab(UNIX/Linuxの場合), もしくはタスクスケジューラー(Windowsの場合)に, AWStatsの更新プロセスを起動するような設定を与える. FAQ-COM130を参照してください.

AWStatsのベンチマークのページには, 推奨される更新/ログの循環の頻度についての情報があります.



ステップ3 : 統計の閲覧


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

* 第一の手段は, 以下のようなコマンドラインで、メインのレポートを静的なHTMLで生成するという方法になります(CGIでしかアクセスできない場合は, 第二の手段に飛んでください):
perl awstats.pl -config=myvirtualhostname -output -staticlinks > awstats.myvirtualhostname.html

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

ノート (1): 望むのであれば, awstats_buildstaticpagesツールを利用して, これら全てのページをひとつのコマンドで生成することもできますし, PDFファイルに出力することもできます.

ノート (2):次に示す出力レポートにすいては, フィルタを付加することもできます :urldetail, urlentry, urlexit, allhosts, refererpages.
フィルタはAWStatsに出力させたい情報の完全なキーの正規表現で指定し, 出力パラメータの後に":"で区切ってから記述します.
たとえば, urldetailレポートの出力で, /newsを含んだすべてのページのみをフィルタして表示させたい場合は, 以下のようなコマンドラインを利用します:
perl awstats.pl -config=myvirtualhostname -output=urldetail:/news -staticlinks > awstats.myvirtualhostname.urldetailwithfilter.html

ノート (3): 特定の月のレポートを作成したい場合には, -month=MM -year=YYYYオプションを付加します.
特定の年のレポートを作成したい場合は, -month=all -year=YYYYオプションを付加します(大量のメモリとCPUを消費するので注意してください)


* 第二の手段は, ブラウザから動的に統計を閲覧する方法です. この方法を利用するには, 以下のURLを利用します:
http://www.myserver.mydomain/cgi-bin/awstats.pl?config=myvirtualhostname
myvirtualhostnameには, 利用する設定ファイルを指定します(AWStatsはawstats.myvirtualhostname.confを利用します).

ノート (1): すべての出力コマンドラインオプション(-staticlinksを除く)は, AWStatsをブラウザから起動する場合でも利用することができます.
次に示す例のような形で, URLパラメータとして指定します. http://www.myserver.mydomain/cgi-bin/awstats.pl?month=MM&year=YYYY&output=unknownos

ノート (2): もしAllowToUpdateStatsFromBrowserパラメータがAWStatsの設定/ドメインファイルで1に設定されている場合, ブラウザから更新処理を行うこともできます. "Update now"リンクをクリックしてください..