jigen, Hirotomo Kunimatsu
Tokyo, Japan
mailto: microformat hcard
top

激速 Apacheログ解析 Visitors

(写真):激速 Apacheログ解析 VisitorsApacheログ解析は基本とはいえ、めんどくさいので今まで手を付けていなかった。内容はそれほど詳しくなくてもいいので手軽のが無いかな?と探している時に見つけたVisitorsってのが早くて簡単らしいので、試してみました。

以下、CentOS4にインストールする例。

Visitorsのインストール

適当な場所で解凍して、makeして、使いやすい場所にコピー。

wget http://www.hping.org/visitors/visitors-0.7.tar.gz
tar visitors-0.7.tar.gz
cd visitors-0.7
make
cp visitors /usr/bin/
cd ..

nkfもインストールしておく

nkfも出力のhtmlを変換するために必要なのでインストールされていない場合はインストールしておく。これも上記のVisitorsと同様の流れになる。

wget http://osdn.dl.sourceforge.jp/nkf/15302/nkf205.tar.gz
tar zxvf nkf205.tar.gz
cd nkf205
make
cp nkf /usr/bin
cd ..

graphvizをインストール

(写真):graphvizで表示graphvizをインストールすると左のようなグラフィカルにURIのつながりを表示することができるので出来るならインストールしておくと楽しい。yumとかなら以下を設定する事で管理が簡単。CentOSだと「/etc/yum.repos.d/CentOS-Base.repo」を編集。

[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

んで、普通にyum install でインストールできる。

yum install graphviz

実際に実行してみる

さて、実際の実行。Googleからの検索キーワードとかが文字化けしないようにエンコード指定を変更する必要があるらしい。

visitors -P http://example.com -A -m 100 /path/to/access_log | nkf -wm0 | \
sed ’s#\(\)#\1\n#’ > \
visitors.html

visitors -P http://example.com -V /path/to/access_log > graph.dot
cat graph.dot | tr =_% ^$= | nkf -wmQ | tr ^$ =_ | \
sed ’s#\(^\tnode.*\)\]#\1,fontname=”/usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf”\]#’ > \
graph2.dot
dot graph2.dot -Tpng > visitors.png

実行するとこんな感じ。

やってみた感想としては、10万件程度のログで1秒!。これなら簡単に日時処理に組み込めそうな感じがします。


関連エントリー

よろしければ、以下リンクよりコメントをどうぞ。
2006/12/13 22:22:49200622:22
アリ「ここからメニューだすよ」
アリ「ごちそういっぱーい」
アリ「腹へったー」
アリ「働けー働けー♪」