アクセスログを 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 を置いた。