japan.internet.comThe Internet & IT Network
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2008年9月9日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
WebTutorial2000年10月4日 00:00

【サイト管理】Web ログ解析−2

海外海外internet.com発の記事
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • Buzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
ビジット解析

ユニークビジットとビジターを測定するアルゴリズムはきわめて簡単だが、 そのプログラミングは複雑なんてものではない。 ある時、シンプルなユーザー解析プログラムを構築しようとしたことがあったが、 厄介なことに、このプログラムにはある種のDBMS が必要なほど複雑だった。

だが、ロジックは確固としたものだ。 トップレベルの情報である、 ユーザーのログやビジットのログをとるアルゴリズムは、基本的には、 以下のようになる。

ログファイルの行を解析する。
LOGNAMEがある場合、それに関連する記録を見つける。
LOGNAMEがない場合で、クッキーがある場合は、その記録を見つける。
LOGNAMEがない場合で、ホスト名がある場合は、その記録を見つける。
そうでなければ、IP ナンバーをレコード インデックスとして使用する。
デイトスタンプを解析する。
直前のリクエストは30分以内だったか?
「はい」なら、継続時間とその他の情報を記録に追加する。
「いいえ」なら、このユーザーの新規ビジットログをとる。


詳細情報の必要の程度によって、 HTTP ヘッダコード(成功は200、その他のコードはその他の結果を示す) で成功と失敗のログをとることができる。 転送された総バイト数、ビジットの継続、訪問したビジットページ、 そのページにいたるパス、などなど。

その他の解析

その他、Web のログの解析でできる解析にはたくさんの種類がある。 たとえば、ディレクトリで使われるバイト数 (同じログファイルに対して複数のサーバーを実行している場合)、 ブラウザとリファラーが情報を引き出す頻度の解析など。

この記事の後のほうある2つの Perl スクリプト、Bytecount と Quickdirty で、 上記の解析ができる。

Bytecount スクリプトは、とても単純なアクションを実行する。 Web ログファイル名を読み込んで、gzip ファイルであれば gunzip で解凍し、 次いでパスを使いデータストリームを解析する。 それは最初に見つけたディレクトリ(たとえば /blah/ で見つけたものは何でも) をつかんで関連アレーを作成し、そこに転送バイトを蓄積する。 ファイルが処理されると、 最上位のディレクトリでの使用についての短いサマリーを作成する。 デフォルトの制限値は 100 KB。

Quickdirty はもう少し複雑なことをする。 私の会社のクライアントで、 ユーザーがどこから来て何を使っているかの デイリーサマリーを受け取っている会社が二三あるが、 そこでは Quickdirtyは重宝がられている。 このスクリプトが、ユーザーとブラウザに提供するコンテンツを決定する際に役立つからだ。

Quickdirty はその名のとおり、突っ込んだ解析はしない。 要求があると、 スクリプトは与えられたブラウザや参照元URLの持続時間をただ要約して、 このデータを吐き出す。 われわれは crontabでこれらのレポートを真夜中に生成している。 なぜなら、コマンド行の引数がプログラムに与えられると、 スクリプトは STDOUT への吐き出しを要求するからだ。

ファイルのトップにある clientthres と refthres の 2つの変数は、 ブラウザと参照元のサマリーに対する最小の制限値を与える。 ある日、またはある週に、 数千ものユニーク参照元と数百のブラウザデータがあるかもしれないが、 通常は、 サイト運営者とそのクライアントは、 もっとも頻繁にアクセスされた参照リンクと、 もっとも使われたブラウザしか気にしないだろう。 これらの変数で、気になるトップレスポンス数を設定できる。 「トップ10」ブラウザ、あるいは「トップ100」参照リンク。

商用解析

商用プログラムがどの点で優れているかは、 Interse Market Focus が生成するチャート2つを見れば分かる。 システムは、異なる種類のブラウザ情報、 同様に登録された全ドメイン用のルックアップデータベースを含む。 表1は、ブラウザによるビジットの分類である。表2は参照元組織、 つまり、もっとも多くのユーザーをわれわれに送り込んでいる組織のリストである。 サイトへの毎日のビジットをグラフ化もできる。 表形式で表示することもできるが、 こういった情報は、読み手にとってはグラフのほうがありがたい。

表1 Browser product No. of visits % of visits 1. Netscape Navigator 146,876 62.12 2. Unknown browser 65,092 27.53 3. CompuServe Mosaic 6,737 2.85 4. America Online 5,953 2.52 5. Lynx 5,165 2.18 6. Internet Explorer 3,234 1.37 7. NCSA Mosaic 1,207 0.51 8. IBM WebExplorer 876 0.37 9. Prodigy 722 0.31 10. Netcom Netcruiser 559 0.24 Totals: 236,421 100.00 表2 Referer organization No. of visits % of visits 1. Yahoo 45,895 19.41 2. Infoseek 43,513 18.40 3. Carnegie-Mellon University 6,273 2.65 4. Pittsburgh Supercomputer Center 4,018 1.70 5. Mississippi State University 3,621 1.53 6. Wake Forest University 2,665 1.13 7. Webcrawler Search Engine (AOL) 2,104 0.89 8. OpenText Corp. 1,298 0.55 9. PGH.PA.US 1,247 0.53 10. CF.AC.UK 1,087 0.46 Totals: 116,121 49.12 CERN 再配線

アメリカのTVドラマ『ホーム インプルーブメント』 のTim 「Toolman」Taylor の知恵を借りるなら、 「Web サーバーが参照元とクライアントのログをとらない場合は、 まず、配線し直そう」ということになるだろう。

もちろん、私自身は会社の CERN サーバーの配線をし直したりはしなかった。 優秀な契約プログラマーの Raj Vaswani のおかげである。 彼は CERN http デーモンを配線し直して、 1つのファイルに、 全 Web 情報を記録するような単純なソリューションを考え出してくれた。

このサーバーで、実際にログコンポーネントを使い、 以下の指示によって別々のファイルにあるクライアント変数を記録できる。 変数名は最後に等号が付かなければならない。

EnvLog /usr/local/cern_httpd/env.cstoll EnvLogVar SCRIPT_NAME= EnvLogVar HTTP_USER_AGENT= EnvLogVar REFERER_URL=
すでに述べたように、次の、 LogFormat Extended 指示で、 通常のログファイルを「拡張ログフォーマット」ファイルに変更できる。

続く 「【サイト管理】Web ログ解析−3」

このエントリーを含むはてなブックマーク この記事をクリップ!
BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
この記事をokyuuへインポート
最新トップニュース
ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」
【ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」】
「時代とメディアの変化に素早く対応したサービスを提供し続ける!!」/ユニバース株式会社(11月21日)
データメーション
【データメーション】
Yahoo を応援する(11月20日)
Graphic Design Forum
【Graphic Design Forum】
もう決めたの? (11月17日)
エンジニアの独り言
【エンジニアの独り言】
不景気だからこそ(11月14日)
海外のインターネットコムアメリカ韓国ドイツトルコ
Copyright 2008 Jupitermedia Corporation All Rights Reserved.http://www.internet.com/