アクセスログを Visitors で解析する

私の使ってるさくらのレンタルサーバでは、 Apache httpdのログ (combined形式) を1年分 毎日残してくれます。


しかし用意されている Webalizer というアクセス解析ソフトではわからないことがあります。とくに知りたかったのが、404 File Not Found エラーを返しているURLは何なのかということ。


そこで別のアクセスログ解析ソフトを探すと、AWStats というのがよいらしいです。
AWStatsを さくらのレンタルサーバ にインストール方法についてさらに調べている途中、 AWStatsより Visitors のほうがいいよ http://project-p.jp/halt/?p=483 という情報を得ました。


Visitors


Visitors http://www.hping.org/visitors/ は確かにインストール簡単です。

$ wget http://www.hping.org/visitors/visitors-0.7.tar.gz
$ tar zxvf visitors-0.7.tar.gz
$ cd visitors_0.7/
$ make
$ mv visitors ~/bin/


これでインストール終わり。


レンタルサーバのログは、1日ごとに分かれていて、それぞれが gzip圧縮してあるので、 そのままでは Visitors には読めません。


そこで AWStats http://www.google.co.jp/search?q=awstats&lr=lang_ja に入っていた logresolvemerge.pl を使ってログを単一のテキストファイルにまとめます。 AWStatsもインストールしようとしていたのでちょうどよかった。 このスクリプトは単体で使えるので、AWStatsをインストールしなくても使えます。

$ logresolvemerge.pl -dnslookup ~/log/access_log_200801* > 200801.log


ここで -dnslookup オプションをつけると、たとえばログに 74.6.23.212 というIPアドレスしか残ってない場合でも、 そのIPアドレスに対応する lj511774.crawl.yahoo.net というドメインに置き換えてくれますが、そのぶん時間がかかります。 これによって閲覧者がロボットであるかどうかや、閲覧者の使っているプロバイダーとかがわかるわけですが、Visitorsではドメイン末尾 (jp/com/net/...) しか集計しないので、私のページは日本語しか提供してなくて閲覧者がほとんど日本(jp)のため、ドメインに変換する意味はないです。 次からは -dnslookup をつけなくしよう。


次に Visitorsで そのアクセスログを解析して、HTMLに出力します。

$ visitors -A 200801.log > ~/www/log_200801.html

これですぐに解析してくれます。早い!


アクセスログで気がついたこと


404エラーを起こしているファイル一覧を見ることができました。 そのおかげで以下の対策がとれました。

  • 記事内のリンクまちがいに気がついて修正する。
  • ブログURLを変えた場合は、'301 Moved Permanently' でリンク先にジャンプするように設定。
  • 実は 404の半分以上は robots.txt がないためのエラーだったので、中身がカラの robots.txt を置いた。

感想


ただし Visitors では、検索エンジンのクローラを外した、リアル人間のアクセスのみを集計する方法がないかも? AWStatsならその集計ができるので、AWStatsも入れたほうがいいかもしれない。

参考:
google:visitors ログ