さくらインターネット(ここのレンタルサーバーです)のサービスにアクセス解析があります.これは,ApacheのアクセスログをWebalizerというアプリケーションで解析して提供してくれるというものです.
これはこれで,眺めていて興味深いんですが,どうも私の求めているものとは違う.1日に何千,何万とアクセスがあるページじゃないんです.商売やっているわけでもない.ぶっちゃけ,集計なんてどうでもいいんですね.
生ログ眺めて,Referer見て,あらあら,こんなところからお客さんが来てんのね~とか,このページが意外に人気だなあぐらいの素朴~なもんでいいんです.
で,ふと気づいたんですが,生ログをユーザーのホームディレクトリに吐いてくれてるんですね.
そっか,コレを見ればいいのか,とFTPでダウンロードしてみたんだけど,開けてびっくり,見にくいことこの上ない.たとえば,こんな具合だ.(IPはウソです)
p333.net000111222.foo.ne.jp - - [16/Sep/2004:05:01:53 +0900] "GET / HTTP/1.1" 200 2821 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
000.111.222.333 - - [16/Sep/2004:05:01:53 +0900] "GET /irusuka.css HTTP/1.1" 200 5051 "http://irusuka.sakura.ne.jp/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
000.111.222.333 - - [16/Sep/2004:05:01:53 +0900] "GET /ruby_root.js HTTP/1.1" 200 157 "http://irusuka.sakura.ne.jp/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
p333.net000111222.foo.ne.jp - - [16/Sep/2004:05:01:53 +0900] "GET /image/irusuka_title.gif HTTP/1.1" 200 5137 "http://irusuka.sakura.ne.jp/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
000.111.222.333 - - [16/Sep/2004:05:01:53 +0900] "GET /image/head_lst.gif HTTP/1.1" 200 856 "http://irusuka.sakura.ne.jp/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
コレは,トップページへの1回のアクセスだと思う.なんせ,あらゆるファイルへのアクセスが記録されている.ページの飾りでしかない画像ファイルだのなんだのも全部.当然,アクセスが多いのは,ほとんどのページから読み込んでいるスタイルシート.
そんなん見せられてもなあ.
知りたいのは,どのページを読んでくれているのかってことである.お客さんが意識していない,CSSファイルの読み込みなんてどうでもいいのだ.
そこで,どうにか整形してみよう,と決意する.
とりあえず,アクセスログがどういう形式で吐かれているのか調べなければならない.Apacheのドキュメントを漁るとすぐ出てきた.
それで分かったのは,こいつがCombined Log Formatというもんで,以下の項目が出ているということだ.
- IPアドレス
- クライアントのID(らしい.取得していないのだと思う)
- ユーザーID(認証がいらないページばかりだからこれも取得できない)
- サーバがリクエストの処理を終えた時刻
- クライアントが 使ったメソッド(GETかPOSTかHEAD)
- クライアントが要求したリソース(これがアクセスのあったファイルだ)
- クライアントが使用したプロトコル(HTTP/1.1とかいうやつ)
- ステータスコード(2から始まるのは正常とか3から始まるのはリダイレクションとかいろいろある.ブラウザでよく見かける「404 Not Found」や「403 Forbidden」もステータスコード.CGIを動かしているときの恐怖の「Internal Server Error」はステータスコード500)
- 送信されたデータサイズ
- Referer
- User-Agent
さあて,こっからどうしたもんか.