課題ではないけど、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側


まず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.
と表示されれば、設定ファイル自体は問題なし。
ブラウザでも表示されたことを確認したら、あとは定期的に解析されるように、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にログを出力させて解析したいという点かな?
これは、追々やっていきたいと思います。
コメントする