さくらのレンタルサーバーに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 の統計情報は残ります。