AWStats

ウェブサイトのアクセス解析は無料のものでもいろいろ種類がありますが、私はここで紹介する「AWStats」を使用しています。最終的に解析結果をHTMLで吐いてくれるのですが、見やすくて分かりやすいので、今まで気づかなかった思いがけない発見があったりします。商用のソフトはもっと高度なことができると思いますが、AWStatsも個人で使う分にはほぼ十分な機能だと思います。最終的にはこんな感じのレポートを見ることができます。
   → http://sourceforge.net/project/screenshots.php?group_id=13764

AWStatsはウェブサーバでCGIとして動作するようになっていますが、ローカルでウェブサーバを立てずに解析を行うことも可能です。ところがインターネットで検索しても、サーバ上で動かす方法を解説したサイトしかなかなか見つかりません。そこでここでは、手元にあるウェブサーバの生ログを、Windows上でAWStatsを使って解析する方法を紹介します。AWStatsはウェブサーバ以外のログも解析できるぐらいなので、Apache・IISを含め大抵のウェブサーバのログ形式は大丈夫だと思います。LinuxやMacなど、他のOSでも同じようにできるでしょう。生ログさえ手に入るのであれば、本当に簡単なのでぜひ試してみてください。

1. AWStatsとActivePerlを手に入れる

まずは肝心のAWStats本体を手に入れましょう。
   → http://sourceforge.net/projects/awstats/files/AWStats/

AWStatsはPerlで書かれたスクリプトなので、Perlのインタプリタが必要です。Windows用にはActivePerlというフリーのソフトがありますので、次にこれをダウンロードしてきます。
   → http://www.activestate.com/activeperl

ActivePerlをインストールし、AWStatsを解凍して適当なところに置いておきます。

2. コンフィグファイルを設定する

次に、AWStatsの設定に入りますが、ここでは解析するサイトのドメインをwww.example.com、アクセスログのファイル名をaccess.logとし、解凍してできたAWStatsのフォルダとアクセスログはC:\に置いてあるものとします。使用したバージョンは6.9です。環境に合わせて読みかえてください。

まず、C:\awstats-6.9\wwwroot\cgi-bin\にあるawstats.model.confというファイルを、ファイル名の真ん中のmodelの部分を変更して同じフォルダにコピーします。ここでは、とりあえずawstats.example.confとしておきます。このファイルがコンフィグファイルで、これを編集してAWStatsの設定をします。次に、このファイルをテキストエディタで開き

LogFile="/var/log/httpd/mylog.log"

SiteDomain=""

DirIcons="/icon"

Lang="auto"

と書かれた場所をそれぞれ探し、これらを

LogFile="C:/access.log"

SiteDomain="www.example.com"

DirIcons="icon"

Lang="jp"

と書き換えます。おそらくこれだけでもAWStatsが動くと思いますが、アクセスログのフォーマットがApacheのcombined形式でない場合は、LogFormatから始まる行を変更する必要があるので、調べてそこも直しておきます。それから、DNSLookupから始まる行は、IPアドレスを逆引きしたい時は書き換えておく必要があります。

3. 実際にAWStatsを動かす

それでは実際にAWStatsを動かしてみましょう。コマンドプロンプトで次のように入力し実行します。

perl C:\awstats-6.9\tools\awstats_buildstaticpages.pl -config=example -update -awstatsprog=C:\awstats-6.9\wwwroot\cgi-bin\awstats.pl -dir=C:\awstats-6.9\wwwroot

-config=exampleの部分は、さきほどのコンフィグファイルのファイル名に合わせてください。今回はawstats.example.confですので、-config=exampleになります。

ここまでの設定が正しくできていればC:\awstats-6.9\wwwroot以下に解析結果のHTMLが複数生成されていくはずです(ログの量やPCの処理能力にもよりますが、少し時間がかかります)。まずはその中のメインページである、awstats.example.htmlを見てみましょう。きちんと表示されているでしょうか? レポートをみていると、いろいろな発見があって面白いですね! このページをブックマークに入れておきましょう。

新しくログが増えてきたら、それをaccess.logに追加するなり上書きするなりして、また上と同じように入力し実行するだけですが、毎回キーボードで打ち込むのは手間なので、先ほどのコマンドをバッチファイルにしておくと、以降はクリック一回で済むので便利です。

4. 検索文字列の文字化けを解消する

以上の方法で、一応AWStatsが使えるようになりますが、最後にちょっとしたTipsをいくつか書いておきます。

検索文字列を解析している部分の日本語が一部文字化けしたり、その部分の右側、「キーワード」の方に複数の単語が並んでいる箇所があったりして、少し気になるかもしれません。その場合は、この不具合をほぼ完全に修正してくれるパッチ(要Jcode.pm)が公開されていますので、ぜひそちらを試してみてください。
   → http://www.irori.org/doc/awstats-fix-searchword.html
こちらのパッチはバージョン6.5用のものですが、内容はそれほど多くはないので、最新バージョンにもテキストエディタを使って簡単に適応させられると思います。

5. 月ごとのレポートを作成する

先ほどの方法で生成されるレポートは、あくまでその生成した月のレポートですので、例えばその前の月の一日単位のアクセス数の推移などは見ることができません。特定の月のレポートを生成するには次のようにコマンドを実行します。

perl C:\awstats-6.9\tools\awstats_buildstaticpages.pl -config=example -update -awstatsprog=C:\awstats-6.9\wwwroot\cgi-bin\awstats.pl -dir=C:\awstats-6.9\wwwroot -month=10 -year=2007 -builddate=200710

この方法で2007年10月分のレポートが生成されます。ファイル名はawstats.example.htmlなどの代わりに、awstats.example.200710.htmlのようになります。

6. クエリストリングが同じでないアクセスは別々に集計する

デフォルトの設定では、URLに付加されたクエリストリングを無視してアクセスを集計するようになっています。例えば、

http://www.example.com/?p=foo

というアクセスは、

http://www.example.com/

へのアクセスとしてカウントされます。これを別々にカウントしたい時は、コンフィグファイルのURLWithQueryという項目をデフォルトの0から1にします。

URLWithQuery=1

ただし、特定のパラメータに関してはデフォルトどおり無視してほしい場合もあります。その時は、URLWithQueryWithOnlyFollowingParameters、もしくはURLWithQueryWithoutFollowingParametersという項目のどちらか1つもいっしょに設定します。例えば、

http://www.example.com/?p1=foo&p2=foo
http://www.example.com/?p1=foo&p2=bar
http://www.example.com/?p1=bar&p2=foo
http://www.example.com/?p1=bar&p2=bar

こんな4つのURLへのアクセスがそれぞれ1回ずつあった場合、

URLWithQueryWithOnlyFollowingParameters="p1"

と設定すると、

http://www.example.com/?p1=foo
http://www.example.com/?p1=bar

という2つのURLへのそれぞれ2回ずつのアクセスとカウントされます。

URLWithQueryWithoutFollowingParameters="p1"

と設定すると、

http://www.example.com/?p2=foo
http://www.example.com/?p2=bar

という2つのURLへのそれぞれ2回ずつのアクセスとカウントされます。

両方の項目ともスペースで区切ることによって、複数のパラメータ名を設定できます。例えばこんな感じです。

URLWithQueryWithOnlyFollowingParameters="p1 p2"

AWStatsはなかなか高機能で、コンフィグファイルを書き換えることによりさまざまな設定ができます。ここに書かれていることはAWStatsの利用方法のほんの一例ですので、あとはいろいろ試してみてください。

[ Last Update : 2011/2/15 ]