AWStats
ログ解析関連
AWStatsとは
AWStats は Web サーバのログを解析し、統計情報を作成するツールです。
特徴としては以下のような感じです。
・ Analog よりも解析できる情報が若干多い
・ Perl script なので改造が比較的容易だが、解析速度が遅い
・ 解析履歴を溜められるので、未解析分のみ毎回解析すれば過去の解析とマージしてくれる
・ 見た目の派手さは Analog よりもはるかに上
総合的には Aanlog よりも上だと思いますが、好みのレベル程度かと思います。(個人的には Analog の方が手軽な感じがして好きですが)
また、AWStats は Analog 同様、日本語表示には対応していますが、検索語関係は日本語対応していませんので、こちらも別途対応する必要があります。
※バージョン 6 からは Web サーバだけでなく、メールサーバ等のログにも対応したようです。
※バージョン 6.2 まではセキュリティホールがありますので、6.3 以降を使用するようにしましょう。
インストール
AWStats-6.5 の例です。
以下を前提としています。
・ Web サーバとして、Apache を使用
・ Apache のログは combined 形式で出力されている
AWStats official web siteからアーカイブを取得し、展開します。
% gzip -dc awstats-6.5.tar.gz | tar xvf -
次に 展開してできたディレクトリのwwwroot以下のファイルを適当な場所へコピーします。
% cd awstats-6.5/wwwroot % mkdir -p /project/awstats % cp -a * /project/awstats
最後に awstats.model.conf を、awstats.conf と名前でコピーします。
% cd /project/awstats/cgi-bin % cp awstats.model.conf awstats.conf
設定
awstats.conf を修正します。
1つ1つの設定について awstats.conf 内に解説が書かれているので、それに従って設定を行います。
awstats.confでの設定項目はたくさんありますが、最低限SiteDomainは明確に設定する必要があります。
AWStats Ver.6.0完全日本語版のページに日本語化された awstats.model.conf があるので、これを見つつ設定するのもよいでしょう。
実行方法
以下のようにしてアクセスログを AWStats に解析させます。
% /project/awstats/cgi-bin/awstats.pl -config=domainname -update
domainname
は awstats.conf の SiteDomain で指定したドメイン名を指定します。
上記のコマンドを実行すると解析結果がデータとして蓄積されます。
あとは、通常アクセスログの解析は1日1回程度で自動更新したいですから、cron 等で上記を実行するよう設定しておきます。
閲覧方法
Web 上から統計情報を閲覧するには、Apache の設定で awstats.pl が CGI として参照可能であるように設定をします。
参照 URL は、 http://domainname/awstats.pl?config=domainname
のような感になります。
検索語の日本語化について
AWStats 内で日本語の検索語に対応するような機能や patch は見あたりません。
私はこの問題を AWStats 内で解決するのではなく、log2jp というアプリケーションを使用してアクセスログ自体を日本語化することで回避しています。
この方法の場合、log2jp にて QUERY_STRING 部が日本語化されたアクセスログを生成し、このアクセスログを AWStats に解析させることとなります。
別の方法として、AWStats Ver.6.0完全日本語版のページにて配布されている utf8_decode.pl を使用しても log2jp と同様の処理が可能です。
以下のようにして実行します。
% ./utf8_decode.pl < access_log > access_log_jp
※詳細まで見てないのですが、もしかしたら utf8_decode.pl の方が機能的に良いのかもしれません。
表示文字コードの変更について
log2jp では文字コードが EUC-JP に変換されます。
が、AWStats で日本語表示を行うと UTF8 で表示しようとしますので、検索語表示が文字化けします。
そこで AWStats の日本語表示が EUC-JP になるように変更します。
cgi-bin/lang にある awstats-jp.txt が AWStats の表示関連のファイルです。
このファイルの文字コードを EUC-JP にし、ファイル内の PageCode の項を以下のように設定すればOKです。
PageCode=EUC-JP
その他
※ここは 5.0 時の時の話です。それ以外のバージョンでは試していません。
AWStats ではレポートを動的に表示するだけでなく、解析結果からレポートをHTML ファイルとして出力することも可能です。
以下のようにすると解析結果をファイルに出力可能です。
% awstats.pl -config=domainname -output -staticlinks > awstats.html
上記を実行すると、統計レポートが awstats.html に出力されます。
ただ、実行結果を見てみれば分かると思いますが、このままでは awstats.html からリンクされている個々のレポート内容の詳細の html ファイルが作られていません。
詳細レポートを個々に作る方法も当然ありますが、1つ1つ作成するのはとても面倒なので、全てのレポートを一度に作る方法があります。
% awstats_buildstaticpages.pl -config=domainname -update -dir=/AWStatsHOME/Html -awstatsprog=/AWStatsHOME/bin/awstats.pl
上記のコマンドを実行すると、-dir で指定したディレクトリ内にレポート HTML を吐き出します。