1秒で10万行を処理するフリーの超高速なログ解析ソフト「Visitors」
GIGAZINEのログは膨大な量になっているため、以前まで使っていた「ApacheLogViewer」では毎日のアクセス解析に時間がかかりすぎるのと、今後のさらなるログの増大を考えると不安を覚えたので、いろいろと試してみた結果、「Visitors」というアクセスログ解析ソフトが超高速でよかったです。
大体、10万行を1秒~2秒ほどで処理してくれます。しかもサイトへの人の流れをフローチャート化することも可能。ユニークユーザーベースで解析してくれるだけでなく、検索ボットは除外したり、特定のリファラをブラックリストにしてノーカウントすることも可能。非常にすばらしいです。
また、Linux版だけでなく、Windows版も一応提供されています。やろうと思えばWindowsで解析することも可能です。
というわけで、実際にインストールして実運用するまでの手順をメモしておきます。参考になれば幸い。
■解析レポートの実例
これが標準的なアクセス解析レポート。HTMLかテキストを選択可能。
ウェブサイトにおける訪問者の行動解析をフローチャート化すると以下のような感じに。
■インストール
Visitors - fast web log analyzer
http://www.hping.org/visitors/index_jp.php
ページの真ん中ぐらいからダウンロード可能です。RHEL4におけるインストールはこんな感じ。ほかのLinuxでもあまり変わらないかと。
wget http://www.hping.org/visitors/visitors-0.7.tar.gz
tar xvzf visitors-0.7.tar.gz
cd visitors_0.7
make
cp visitors /usr/bin/
wgetでダウンロードして、tarで解凍、解凍後のディレクトリ「visitors_0.7」に移動して、makeを実行して生成した後、できあがった「visitors」というファイルを/usr/bin/にコピーするというわけです。基本的にこれだけ。
■使い方
実際の使い方は公式ページにも「例」として載っていますが、より詳細な使い方はドキュメントを参照。
Visitors, on line documentation for 0.7
こんな感じで使います。
visitors -A -m 30 access.log -o html > report.html
「-A」というのはオプションを全部付けるという意味で、ページビューやユニークユーザーといった基本的な解析情報以外に「-GKUWRDOB」という複数のオプションを一気に付けるのと意味は同じです。GoogleとAdSenseのクローラーの解析、Googleからの検索フレーズの解析、ユーザーエージェント、週間の時系列別アクセスマップ、リファラ、ドメイン別、OS別、ブラウザ別での解析がこれで可能になります。「-m」というのは最大何件表示にするかという意味で、今回は「30」となっているので各項目ごとに上位30件が表示されます。「access.log」は各環境ごとに解析対象となるファイルを指定。「access.log.*」といった複数指定も可能。「-o」は結果をファイルに出力するという意味で、「html」か「text」が選べます。これを最後に「report.html」として出力するわけです。
自分のサイトの利用パターン、内部リンクでの循環や外部リンクからどれぐらい来ているのか、Googleなどからはどれぐらい来ているのかといったことを解析するには以下のようにします。
visitors -A -m 30 access.log -o html --trails --prefix http://gigazine.net > report.html
「--trails」が利用パターンを解析するオプションで、「--prefix」のあとに対象となる自分のサイトアドレスのドメインを入力します。こうすることで、ページの巡回され具合がわかります。どういうルートで特定のページに至る人が多いかがわかります。
ただ、これだけだとわかりにくいので、フローチャート表示にしてみましょう。
■Graphvizによるフローチャート生成
まずは以下のページからGraphvizをダウンロードしてインストール。yumなどでもインストール可能。
Graphviz
http://www.graphviz.org/Download..php
RHEL4の場合はこんな感じ。
wget http://dag.wieers.com/rpm/packages/graphviz/graphviz-2.2-1.2.el4.rf.i386.rpm
rpm -ivh graphviz-2.2-1.2.el4.rf.i386.rpm
まずはフローチャート作成の元になる「graph.dot」を作ります。
visitors access.log --prefix http://gigazine.net -V > graph.dot
それから、PNG画像を作成します。
dot -Tpng graph.dot > graph.png
これだけでできあがり。お手軽ですね。
■実運用上の工夫
実際に毎日ログを解析させようと思うと、この一連のコマンドをシェルスクリプトにしてCronにでも登録するのが簡単なのですが、GIGAZINEの場合は出力するファイルに日付を付けています。抜粋するとこんな感じ。「`date --date '1 day ago' +%Y%m%d`」の部分が日付処理の部分です。
visitors -GKZWMRDXYS -m 30 access_log --trails --prefix http://gigazine.net -o html > `date --date '1 day ago' +%Y%m%d`report.html
visitors access_log --prefix http://gigazine.net -V > graph.dot
dot -Tpng graph.dot > `date --date '1 day ago' +%Y%m%d`graph.png
これで「20070304」などの数値がファイル名の頭に付くので、管理が楽になります。「1 day ago」が付いているのは、3月5日に解析するのは3月4日のアクセスログなので、こうすることで日付を1日前に戻しているわけです。
・関連記事
Googleのアクセス解析サービス「Google Analytics」を使ってみました - GIGAZINE
無料でウェブページ内のユーザーの行動を可視化してヒートマップを見せてくれる「ユーザーヒート」 - GIGAZINE
・関連コンテンツ