AWStats Tips

アクセス数の集計・分析にAWStatsを使っていますが、
日毎のアクセス数がいまいち分かり難いので、ちょっとした小技を。

ここで使ったのは現時点で最新のversion6.1です。

(1) 通常に分析をする
普通にAWStatsをインストールし、
/etc/awstats/awstats.hoge.conf
という設定ファイルを作成。
# インストール方法は日本語のサイトだと「5.x系の日本語化」の話題が多いので
# 付属の英語ドキュメントを参考にしました。

設定を作成したらcronに登録し、毎日ログファイルを集計させる。

20 0 * * * /usr/bin/perl /PATH_TO_AWSTATS/awstats.pl -config=hoge -update>> /dev/null 2>&1


(2) configure.plをもう一回起動し、今度はhoge.dailyという設定を作成
hogeの部分は同じ名前にして、.dailyとかを後ろに付ける。
別にdailyでなくても、なんでもOK。


(3) こちらもcronに登録するが、できあがったキャッシュファイルを
awstatsDDMMYYYY.hoge.daily.txtという名前に付け替える必要がある。
詳しくはAWStatsのFAQに記載してある。
なので、hoge.dailyを設定ファイルとしてawstats.plを動かし、
出来たファイルをmvするスクリプトを作成、これをcronに登録する。
スクリプトはこんな感じ。

#!/bin/bash
# 作成対象日付を引数で取る
date=$1;

# 引数が無い場合はデフォルトで前日の日付を使用
if test $# -eq 0
    then
yesterday=`perl -e '{printf("%02d%02d%02d",
        (localtime(time-86400))[5]%100,
        (localtime(time-86400))[4]+1,
        (localtime(time-86400))[3])}'`
    date=$yesterday
fi

# 集計を実行するアクセスログ
logfile='access_log.'$date'.gz'

# 日付とか
day=`echo $date | cut -c 5-6`
month=`echo $date | cut -c 3-4`
year='20'`echo $date | cut -c 1-2`

/PATH_TO_AWSTATS/awstats.pl \
    -config=hoge.daily \
    -update \
    -logfile="zcat /PATH_TO_LOGFILE/$logfile |"

mv /PATH_TO_CACHE_FILE/awstats$month$year.hoge.daily.txt /PATH_TO_CACHE_FILE/awstats$day$month$year.hoge.daily.txt


(4) ブラウザで表示してみる
http://hoge/awstats/awstats.pl?config=hoge.daily&year=2004&month=07&day=28
でアクセスすると一日の集計結果を見ることができる。
日毎の集計だと、月間とか曜日の項目は邪魔なので、
適宜awstats.hoge.daily.confを編集して不要な項目を非表示にする。


(5) 日付を日毎分析結果へのリンクにする
これで日毎の分析も毎日行われるようになるので、
ついでにAWStatsの画面から日毎の分析結果へのリンクを張れるようにする。
とりあえず強引ではあるもののawstats.plを編集します。

8875行目あたり(ウチで使ってるのはバージョン6.1ですよー)
print文をこんな感じに書き換える
     ↓

print "<td><a href=\"/awstats/awstats.pl?config=$SiteConfig.daily&year=$year&month=$month&da
y=$day\" target=\"_blank\">",Format_Date("$year$month$day"."000000",2),"</a></td>";


これで日毎の分析画面へリンクが張れる。