玄箱がWEBサーバだったときは武蔵流プログラマへの道 – WebalizerおもしろいのようにWebalizerをつかってて、その次が武蔵流プログラマへの道 – ようやくAWStats動いた。でAWStatsに。しかし武蔵流プログラマへの道 – server crackedで、ちょっとAWStatsは勘弁してほしいなぁ。と思っていたところにhatena_id:secondlifeさんが

Visitors, a fast web log analyzer

高速なapache log analyzer。公式には
No installation required, can process up to 150,000 lines of log entries per second in fast computers (20MB/s with my log files average length).
と、一秒で150,000行さばけるとうたっている。うちの環境で実際に10万行ほどのログを食わせたところ1秒ちょいと非常に高速にさばけた。出力ではhtml(サンプル)だけならずテキスト(サンプル)も選べる。
ログアナライザとして必要な機能は一通りそろってるし、Googleからの検索キーワードも表示できてGood。日本語検索ワードだとeuc-jpやsjisやutf-8だったりするのでnkfをかまして全部utf-8化したところばっちりそう。
なおかつ設定ファイルいらずのシンプルさが魅力。バーチャルホストで個別にログを切り分けてるんだけど、たいていのログアナライザはめんどうな設定があったする。しかしvisitorsならコマンドライン一行。素晴らしい。

と書いていたので乗り換えてみた。

うちの環境だとhttp.confに

CustomLog “|/usr/sbin/cronolog /var/log/httpd/access_log.% Y%m%d” combined

と書いてcronologでログを1日ごとにわけている。これを一か月分食わせるスクリプトをcronで実行。

コードはこんな感じ(超適当)


<?php
$date = date("Ym");
$now_date = date("Y-m-d");
$command = "/usr/local/visitors_0.61/visitors";
$command.= " -A -m 100 /var/log/httpd/access_log.{$date}*";
$command.= " | nkf -w -m0 > /home/halt/visitors/{$now_date}.html";
system($command);
?>

ごめんなさいこれPHPで書く必要性まったくないですね。

AWStatsとかWebalizerは処理にものすごく時間がかかるので負荷の少ないvisitorsはほんとお勧めですよ。

One thought on “cronolog と visitors で簡単ログ管理、高速ログ解析

  1. halt より:

    くそ、、blockquoteの中が変だ、、
    パーサに手いれるか別のパーサでかくか、、

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ねこ認証:9つのパネルの中からねこを3匹選んでください