IISのログをAWStatsで解析

課題ではないけど、Webサーバとして公開しているのだし、アクセス解析をやっておこうと言うことで、Linuxサーバ側でも使っているAWStatsをインストールしてみたので、メモ。

インストール

Linuxだったら、ディストリビューションのパッケージになっている場合があるので、それを使えばいいのだけど、Windows用ということで、サイトからexe版をダウンロード。(今回は、6.95。)
落としてきたexeファイルをダブルクリックして、指示に従って進めていくと、C:\Program Files (x86)\AWStatsにファイル一式がインストールされます。

C:\Program Files (x86)\AWStats\wwwroot\cgi-binの中に、設定の雛形となるawstats.fqdn.example.jp.confというファイルがあるので、これをawstats.confにリネームかコピー。その上で、中身をテキストエディタで書き換えていきます。


設定:IIS側

AWStats:仮想ディレクトリの編集
AWStats;IISのログ設定

まずIIS側で、仮想ディレクトリとログの設定を行います。
右の画像のようにC:\Program Files (x86)\AWStats\wwwrootが 仮想ディレクトリとしてアクセスできるように設定。

次のログ記録で、形式を「IIS」から「NCSA」に、ログファイルロールオーバーの設定を「毎日」から「毎週」に変更して、適用をクリックしておきます。
これで、C:\inetpub\logs\LogFiles\W3SVC1ディレクトリの下にu_nc100102.logという名前でログファイルが出来ているはず。
#ファイル名の数字部分には、意味があるのだけど、それについてはこのあと詳しく。

設定:AWStats側

ここまで来たら、awstats.confをテキストエディタで編集していきます。

LogFile="C:\inetpub\logs\LogFiles\W3SVC1\u_nc%YY-0%MM-0%WY-0.log"

基本的には、この5つのバラメータを、自分のサイトに合わせて変更すれば、OK。

LogFileの指定、apacheだったら、"/var/log/apache2/access.log"で決めウチでOKなログファイル名も、IISの場合は、ログ形式が違ったり、ローテートのタイミングでファイル名に付く数字が変わってくるので、要注意。
前段で行ったIISの設定で行くと、NCSA形式を示す"u_nc"で始まり、続く数字6桁の最初の2桁が西暦の下2桁、次の2桁が月。で週次ローテートの場合、最後の2桁がその年の第何週目なのかとなり、最後を拡張子の".log"で終わるという形式になっているようです。
u_nc100102.logの場合、NSCA形式の2010年1月第二週のログ、というわけ。

confでの表現は、"u_nc%YY-0%MM-0%WY-0.log"となるのですが、年や月を表す編集の後ろの"-0"は、数字の部分を24の倍数で調整すると何日前というのが指定できるようですね。

これで、とりあえず準備完了なので、実際にコマンドラインからawstats.plを実行して、正しく実行されるか確認するためにawstats.plのあるディレクトリに移動。
"awstats.pl -config=awstats.conf -logfile=C:\inetpub\logs\LogFiles\W3SVC1\解析したいログファイル名"を実行して

Create/Update database for config "C:\Program Files (x86)\AWStats\wwwroot\cgi-bin/awstats.conf" by AWStats version 6.95 (build 1.943)
From data in log file "C:\inetpub\logs\LogFiles\W3SVC1\u_nc100102.log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 1515)
Jumped lines in file: 1515
Found 1515 already parsed records.
Parsed lines in file: 0
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.

AWStats:実行結果

と表示されれば、設定ファイル自体は問題なし。
ブラウザでも表示されたことを確認したら、あとは定期的に解析されるように、awstat.plをタスクスケジューラに登録して、完了。

実際ハマった点としては、"C:\Program Files (x86)\AWStats\wwwroot\cgi-bin"ディレクトリに、awstat.conf以外の.confがあったせいで実行に失敗した(awstats.conf以外は別の場所に移動して解決)とか、IIS7.5のログがAWStatsの想定しているIISのログフォーマットと違うらしく解析に失敗した(なのでNCSA形式にして設定も弄った)とか、ブラウザで見た時に画像が表示されなかったので"C:\Program Files (x86)\AWStats\wwwroot\icon"の仮想ディレクトリを作ったというところでしょうか。

実行できるようになって気になっているのは、apacheで言うところのcombine形式でIISにログを出力させて解析したいという点かな?
これは、追々やっていきたいと思います。

トラックバック(0)

コメントする