さくらのレンタルサーバーにAWStatsをインストールする

さくらのレンタルサーバー標準のアクセスログ解析プログラムは「Webalizer」ですが、これは機能が少なくて味気ない。>_<

ということで詳細まで解析できる「AWStats」をインストールしてほしいという仕事依頼がありました。

1日の仕事です。
やったことをざっとメモ代わりに書いておきます。

さくらのレンタルサーバーはみんなの雑居サーバーですから、apacheログもちょっと特殊です。

・夜中の1時に各契約者の/logディレクトリにログが配布されます。
・翌日、古いログは容量を圧迫しないように gz で自動圧縮されます。

1時にログが配られるので、シェルを書いて、 cronで2時に動作するようにしました。

シェルスクリプトの内容

#!/bin/sh
LOG_NAME=`date -v -1d +access_log_%Y%m%d`
/usr/bin/perl /home/<契約者>/www/awstats/utf8_decode.pl < /home/<契約者>/log/$LOG_NAME > /home/<契約者>/log/$LOG_NAME.enc
/usr/bin/perl /home/<契約者>/www/awstats/awstats.pl -config=<契約ドメイン> -update
rm /home/<契約者>/log/$LOG_NAME.enc

Google等の検索ワードがurlエンコードされているので「%02%0D%66%DE」のような表示になります。
このままだと、どんなキーワードでアクセスがあったのか分からないので…

/usr/bin/perl /home/<契約者>/www/awstats/utf8_decode.pl < /home/<契約者>/log/$LOG_NAME > /home/<契約者>/log/$LOG_NAME.enc

の部分でデコードしています。

デコードしたログファイルを AWStats に読み込ませて

/usr/bin/perl /home/<契約者>/www/awstats/awstats.pl -config=<契約ドメイン> -update
rm /home/<契約者>/log/$LOG_NAME.enc

そして変換後のログファイルを削除。
※ログファイルを削除しても、一度計測した AWStats の統計情報は残ります。

最後に

こんな感じに無事動いているようです。
お疲れ様でしたー。