AWStatsを導入してサーバー単位に解析

  • 投稿日:
  • by
  • カテゴリ:

放っておいても毎日増えるIISのログ。dopvSTAR*は確かに便利なんだけど、このログを利用しない手は無いので、オープンソースのAWStatsを導入してみることにした。

AWStats

  1. 検索キーワードさえ日本語に対応していれば、見た目が何語だろうと気にしないんで、ひとまず最新版のAWStatsをsourceforgeのサイトから取ってくる。今回使ったのはexe形式のファイル。
  2. あらかじめActivePerlをインストールした環境で、exeを実行して自分のサイトの適当なディレクトリに解凍するんだけど(あくまで解析のためのperlのファイルなんで、ブラウザでアクセスできるWebサイトのパスでなくて問題なし)、インストール時にCMDプロンプトが起動してウィザード形式でいくつかの質問に答える必要があるので、それぞれ適切に設定する。このとき、configファイルは作るようにして、configファイル名はシンプルに(mysiteという名前にするとawstats.mysite.configというファイル名になる)、Windows環境の場合はcronを使った定期的な解析処理を設定できないという警告メッセージが出るのでENTERを叩いてウィザードを終える。
  3. インストールしたパスにあるawstats_setup.htmlというファイルがブラウザで表示され、解析までに必要な手順がそこに出ているので、英語がイヤでなければ読んでおく。(step1はCMDプロンプト上で既に実行済みなので、step2から続ける)
  4. この後の作業は、インストール時に生成されたawstats.mysite.configという設定ファイルをテキストエディタで編集することが作業のすべて。あとはせいぜい、IISのログの設定で、AWStatsが解析するのに必要な情報をIISマネージャのログの設定で選択してサイトを再起動するのと、AWStatsの出力先になるディレクトリをIISの仮想ディレクトリとして用意したり、表示のためのアイコンやライブラリのコピー、自動的に毎日解析結果を更新したいのであればタスクスケジューラの設定をするくらいだ。

AWStats自体はperlのスクリプトなので、CGIなどの設定は特に不要。最初の解析処理はCMDプロンプトから手動で行う。タスクスケジューラで毎日実行するときは、

perl "C:\Program Files\AWStats\tools\awstats_buildstaticpages.pl" -config=mysite -update -awstatsprog="C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.pl"

のようなコマンドを書いたバッチファイルをタスクとして登録するだけでいい。このとき、規定ではIISのログは日本をタイムゾーンに設定しているとGMT+9になり、毎日朝9時に次の日付のファイルに切り替わるので、それがイヤなときはIISのログの設定で"ファイル名およびロールオーバーに地域設定を使用する"を有効にしてiisresetすればいい。IISは一定サイズのバッファを持っていて、それが一杯にならないとログにフラッシュしないので、awstatsで更新する場合は、configファイルの設定でIIS用の見本をコピーして、

LogFile="C:/inetpub/logs/LogFiles/W3SVC1/u_ex%YY-24%MM-24%DD-24.log"

のように書いておくと、24時間差し引いた年月日の付いているログファイル(要は昨日の分)を使って解析結果を更新してくれるようになる。

また、解析結果の画面を日本語で出力したいときは、

Lang="ja"

とすればいい。
ひとまずCMDプロンプトからアップデートして、解析結果のhtmlファイルが出力先に指定したディレクトリに作られることを確認し、ブラウザから開いてみる。

AWStats

まだ解析し始めて2日目だけど、サイト全体のアクセス履歴を見て驚いたのは、百度のボットの訪問回数の多さだ。googlebotなんて比べものにならない頻度でクロールしにきている。なんか恐い、、、
あとは、実際にアクセスされたコンテンツとは関係のない、ページにcgiや、アイコン類、MovableType関連のファイルへのアクセスも含まれてしまっているんで、それらも除外するようにしないとノイズが多すぎて。