◆ アクセスログ解析 / WebMasterへの道 Part 16

アクセスログとは、閲覧者が Webサーバを訪れた際、HTTPヘッダにリクエストとそのレスポンスを「ログ:通信情報」として残された一連のテキスト・ドキュメントを指します。

アクセスログの必要性

生のアクセスログでは、訪問者の IPアドレス、訪問時間と滞在時間、訪問者の閲覧環境、どのページをアクセスしたか、どこからきたのか、どんなキーワードで検索したのか、発生したエラーなどの詳細を得ることができます。

制作者側でアクセスログを解析することによって、訪問した閲覧者の動向を知ることができます。それによって、制作者側は閲覧者の軌跡を分析し、何らかのアクションを明示することができます。

例えば、あるページの閲覧時間が短い場合には、そのコンテンツは閲覧者のニーズを満たしていないことを物語ります。逆に、そのページの滞在時間が長ければ、閲覧者が熱心にそこで示される情報を読んでいたことが伺えます。

特に検索サイトから訪問した場合、滞在時間の長さによっては、再度リピーターとして訪問してくれるか、あるいはブックマークしてくれる可能性が期待できます。

また、ページの読み込み途中で他に移動した場合は、そのページの容量が重いか、まったくつまらない、あるいは閲覧者が欲していた情報とはかけ離れていたことが理解できるでしょう。

特に商用サイトでは、アクセスログを参照し解析できなければ、いつまでたっても時代に取り残されていく運命を辿ることになりかねません。せっかく Webサーバに蓄積されるログが生成されるのですから、これを積極的に分析し、コンテンツに繁栄させることができなければ、WebMasterとは呼べません。

アクセスログの解析

アクセスログの書式には2つの形式があります。

コモンログ形式では、リンク元の URI を保存することができません。コンバインドログ形式では、コモンログ形式に加えて、リンク元を参照する 「Referer」 や、閲覧者の Webブラウザや OSの種類までを示す 「ユーザエージェント」 までが保存されます。最近の Webサーバでは、この形式が一般的によく用いられています。

以下のログは、コンバインドログ形式のサンプルを示したものです。この節では、以下の生のアクセスログについて説明します。

192.168.0.1 - [banban] [20/Feb/2004:00:12:11 +0900] 
"GET /banban/images/hana_02.jpg HTTP/1.1" 200 5853
"http://search.yahoo.co.jp/bin/search" 
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

1行目の最初の文字列 192.168.0.1 は、Webサーバにリクエストした閲覧者の IPアドレスを記録しています。

ただし、これだけでは閲覧者を特定できるものではありません。プロキシサーバや企業内の LANからアクセスした場合には、それぞれに割り当てられたグローバル IPアドレスが割り当てられ、ダイヤルアップや ADSL、CATVなどは、常に動的 IPアドレスが割り当てられるので、完全に個人を特定することはできません。

次の 「 - 」 は、閲覧者のマシン上で identd (identification deamon) が動作していた場合のみ、応答のあった識別子を記録します。ただし、実際には identd は使われていないため、その利用を不能と表わす 「 - 」 が記録されます。

[banban] は、ユーザ認証が必要なページにアクセスした場合、閲覧者が入力したユーザ IDが記録されます。認証が必要ない場合には、「 - 」 が記録されます。当サイトでは、認証が必要なページは1つもありません。念のため。

次の [20/Feb/2004:00:12:11 +0900] は、閲覧者からのリクエストに対して、その処理が終わった時刻を記録しています。基本的に時刻は、UTC (世界協定時間) が割り当てられるため、+0900 と付記しているのは、日本時間を表わしています。

2行目の最初の文字列 "GET /banban/index.html HTTP/1.1" は、閲覧者からの要求が記録されます。アクセスの対象がサイトのトップページに当たる index.html で、その際の通信プロトコルが HTTP 1.1 であることを示しています。

GET は、アクセス方法を示すものであり、ここでは GETメソッドによってそのデータを取得していることを表わしています。

次の 200 という数値は、サーバがブラウザのリクエストに対して送信する状態を表わす「ステータスコード」を示しています。

このステータスコードは、RFC2616 で規定されているもので、代表的なものはこのページの下段に一覧表があるので参考にしてください。

200 の隣にある 5853 という数字は、閲覧者のブラウザに返信したデータの転送量を表わし、その単位は「バイト数」となります。ここでは、5.85KB (キロバイト) が転送されたことを意味します。

"http://search.yahoo.co.jp/bin/search" という URI は、リンク元を表わし、現在のページの直前のページの URI が示されます。つまり、どこから来たのかという 「Referer:リファラー」 が保存されています。

最後の "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" は、閲覧者のユーザエージェントを参照しています。

ここでは、Windows2000 という OS で、MSIE (Microsoft Internet Explorer) 6.0 という Webブラウザであることを示しています。

このように、生のアクセスログだけでも、様々な情報を読み取ることができます。

アクセスログ解析ソフトウェア

生のアクセスログからの情報には限界があります。アクセスログをより深い部分まで解析するのには、それなりのソフトウェアが必要になります。滞在時間、検索キーワードはもちろん、時間別集計、ページ別集計、エラーリクエスト集計、ユーザエージェント別集計など、非常に多岐に渡る解析が可能になります。

以下は、代表的な生アクセスログ解析用ソフトウェアです。

有料バージョンのソフトウェアでは、グラフィカルな解析ツールが用意されており、視覚的にアクセスログ解析が行えます。少々価格が高いのがネックですが、持っていて損のないソフトでしょう。

サーバインストール型のアクセスログ解析ソフトウェア

生のアクセスログを取得して解析するのは面倒だという場合には、あらかじめ Webサーバに解析ソフトをインストールしておけば、いつでもどんな場所でも Webブラウザからアクセスログを分析することが可能です。

サーバにインストールする場合には、それなりの知識とサーバをコントロールできる権限が必要です。また、ソフトウェアによっては多少の環境設定の変更が必要です。

スクリプト型のアクセスログ解析サービス

CGIが使えない、あるいはアクセスログが取得できないような個人ベースの小規模サイトの場合には、一番手っ取り早く簡単なのが、Webページにスクリプトを埋め込んで、アクセスログ解析のサービスを利用する方法があります。

こうしたスクリプト埋め込み型のログ解析を、「ASPサービス」 と呼ばれ、無料あるいは有料のサービスが受けられます。ただし、無料版は広告が表示されたり、ログの保存期間が短い、利用できるページが少ないなどの欠点があります。

代表的な ASPサービスを提供しているサイトは以下のとおりです。

比較的手軽に利用できるアクセスログ解析なので、個人で運営する場合には、本当にありがたいサービスなのではないでしょうか。最初のうちは無料版を使ってみて、気に入ったら多くのサービスが受けられる有料版に切り替える方法をお勧めします。

アステータスコード一覧表

アクセスログに記録されるステータスコードは以下のとおりに規定されています。ここでは、代表的なステータスコードについて一覧表にまとめています。

ステータスコード一覧表
ステータスコード 意味
通知:infomation
100 Continue 処理が進行中
101 Switching Protocols 異なるプロトコルに切り替える
成功:Successful
200 OK 処理が成功
201 Create 新しいリソースが生成された
202 Accepted リクエストの処理はまだ完了していない
203 Non-Authoritative 返信情報は当該サーバで作成したものでない
204 No Content コンテンツがない
205 Reset Content 現在の画面の取消を要求
206 Partial Content Partial GET の要求を受け入れた
移動:Redirection
300 Multiple Choices リクエストされたリソースが複数存在する
301 Moved Permanentry リクエストされたリソースは恒久的に移動している
302 Found リクエストされたリソースは一時的に移動している
303 See Other リクエストされたリソースは違う URI に移動している
304 Not Modified リクエストされたリソースは更新されていない
クライアントに起因するエラー:Client Error
400 Bad Request リクエストの文法が間違っている
401 Unauthorized ユーザ認証が必要
402 Payment Required 前もって予約が必要
403 Forbidden アクセスが拒否された
404 Not Found リクエストしたページが存在しない
406 Not Acceptable 受付できない
408 Request Timeout 時間切れ
409 Conflict リクエストとリソースが矛盾している
410 Gone リソースが消滅している
サーバに起因するエラー:Server Error
500 Internal Server Error サーバ内部のエラー
501 Not Implemnted リクエストを処理する機能が未実装
502 Bad Gateway ゲートウェイが不正な要求を受け取った
503 Service Unavailable サービスが停止中


This Page is HTML4.01 Valid! 初版更新日 2004年2月21日
Copyright(C) 2002-2003 banban@scollabo.com / wfb-org@jcom.home.ne.jp