Entry

AWStatsで1日単位でログの解析を行う方法

AWStats – Free log file analyzer for advanced statistics (GNU GPL).
AWStats Ver.6.5完全日本語版のページ

Analog」や「Webalizer」といったサーバログ解析ツールの一つに、「AWStats」がある。Apache等のHTTPサーバやメールサーバ等によって生成されるサーバログ解析を行う。これは基本的に月単位でログの解析を行うためのツールだけど、実は1日単位でログを生成する方法が存在する、という話。1時間単位のログも生成できる。

awstatsのFAQより。

If you use version 6.5 or higher:
What you can do is rerun the update process by adding the parameter -databasebreak=hour or -databasebreak=day. No option is same than -databasebreak=month, the default and old behaviour of AWStats.
Using this hidden option will ask AWStats to build a different database file for each break, this means that several reports are done for each hour or day.
To call a report add same option -databasebreak=hour or -databasebreak=day with option -output when AWStats report is staticaly built from command line or add &databasebreak=hour or &databasebreak=day if AWStats is called as a CGI.
This feature is recent so may have results not completely reliable, that’s why it is not yet fully documented.

まぁ要するに、バージョン6.5以上であれば、ログ生成コマンドに「-databasebreak=day」を付けると日単位のログを、「-databasebreak=hour」を付けると時間単位のログが生成できますよ、と。
アクセス解析の設定を記した設定ファイルの名前を”awstats.melog.conf”とした場合、日単位、時間単位のログを生成するコマンドはそれぞれ

/usr/local/bin/perl awstats.pl -config=melog -databasebreak=day -update

/usr/local/bin/perl awstats.pl -config=melog -databasebreak=hour -update

となる。これによって生成されるログファイルのファイル名は、日単位の場合「awstats[月2桁][年4桁][日2桁].melog.txt」、時間単位の場合「awstats[月2桁][年4桁][日2桁][時2桁].melog.txt」となる(生成先ディレクトリは、コンフィグファイル内で設定)。ちなみに、デフォルトの月単位の場合は「awstats[月2桁][年4桁].melog.txt」となる。日や月の解析結果を同時に生成しようと思った場合は、設定ファイルをファイル名を変えて複数作り(例えば、awstats.daily.conf, awstats.hourly.confなど)、それぞれについて解析を行う。

これらの解析結果をWebからHTMLファイルによって閲覧する場合、CGIの引数にdatabasebreak=day(hour)を付ける。例えば、URLは以下のようになる。

awstats.pl?config=daily&databasebreak=day&year=2006&month=06&day=19

awstats.pl?config=hourly&databasebreak=hour&year=2006&month=06&day=19&hour=02

ただし、このツール自体は月単位の解析が基本のようで、日別/時間別のログを切り替えるインターフェースを備えてはいないので、それは自前で用意する必要がある。
とりあえず、自前のスクリプト。
awstatsView.js
[年4桁][月2桁][日2桁]の8桁の整数を入力すると、日単位のログが見られる。[年4桁][月2桁]の6桁の整数を入力すると、対応する月単位のログが見られる。時間単位のは無い。それだけ。
中身をいじった上で
<script type=”text/javascript” src=”awstatsView.js” charset=”UTF-8″></script>
とかHTMLに記述すると使える。

次期バージョン辺りで、日単位/時間単位の解析を標準サポートしてくれないものだろうか。

追記

れにしても、ログファイルのファイル名が
[月2桁][年4桁][日2桁]
というのは、開発者の考え方を疑う。これでは、ファイル名による日付順のソートができず、月の順番という意味があるとは言い難い変なソートになってしまう。

Comments (0 件)

コメントを残す

メールアドレスが公開されることはありません。