はじめに
ログを解析するにあたり、Apacheのログ形式をより詳細なものへ出力するように変更が必要となります。
デフォルトでは、common形式 になっていますので combined形式 へ変更をします。
CustomLog /usr/local/apache/logs/access_log common
↓変更
CustomLog /usr/local/apache/logs/access_log combined
この変更をすることでaccess_logにREFERER,エージェントなどの値もとることが出来るようになります。もちろん、Apacheの再起動を忘れずに。。。
詳しいログ形式はhttpd.confのログの定義にありますので httpd.conf解説 を参照ください。
ソースの入手
以下のURLから最新のソースを入手してください。
http://awstats.sourceforge.net/
今回はawstats-6.4.tgzをダウンロードしました。
http://jaist.dl.sourceforge.net/sourceforge/awstats/awstats-6.4.tgz
インストール
ここではawstats-6.4.tgzをダウンロードしたものとして説明します。
ここでの説明は /home/hoge/cgi-bin/awstats/以下 で動作させることを前提に説明をしています。
利用の環境によって /home/hoge/cgi-bin/awstats/ を置き換えてください。
$ tar xvfz awstats-6.4.tgz
$ cd awstats-6.4/wwwroot
$ cp -r icon /home/hoge/cgi-bin/awstats/
$ cd cgi-bin
$ cp -r * /home/hoge/cgi-bin/awstats/
これでawstatsの設置は完了です。続いて設定ファイルawstats.confを編集します。
設定ファイル(awstats.conf)の準備
まずは、awstasをコピーしたディレクトリに移動します。
$ cd /home/hoge/cgi-bin/awstats/
コピーしたディレクトリに設定ファイルの雛形となる awstats.model.conf がありますのでそちらをコピーして利用します。
$ cp awstats.model.conf awstats.conf
設定ファイル(awstats.conf)の編集
コピーした設定ファイルawstats.confを編集します。
修正箇所は以下の通りです。
● ログファイルの指定
apacheのログの場所を定義します。
LogFile="/var/log/httpd/mylog.log"
↓変更
LogFile="/usr/local/apache/log/access_log" ←利用環境に置き換えてください。
● ドメイン名の指定
解析をするドメイン名を入力します。
SiteDomain=""
↓変更
SiteDomain="www.marronkun.net"
● DNSの参照設定
接続ホストのDNS参照の設定です。すべて対象にする場合は1にします。
DNSLookup=2
↓変更
DNSLookup=1
● CGI設置場所の指定
http://SiteDomain/以下で閲覧するパスの指定です。
DirCgi="/cgi-bin"
↓変更
DirCgi="/cgi-bin/awstats" ←利用環境に置き換えてください。
● アイコンのディレクトリ
http://SiteDomain/以下でiconディレクトリが閲覧できるパスの指定です。
DirIcons="/icon"
↓変更
DirIcons="/cgi-bin/awstats/icon"
● 言語の設定
利用する言語を設定します。もちろん日本人ですから jp を選びましょう
Lang="auto"
↓変更
Lang="jp"
以上が最低限必要な修正内容となります。
解析結果を出力
webalizerを実行するには以下のコマンドを実行することで出力できます。
【書式】
# 設置ディレクトリ/awstats.pl -config=awstats.conf -update
また、検出結果をベタのhtmlに変換するコマンドです
【書式】
# 設置ディレクトリ/awstats.pl -config=awstats.conf -output -staticlink > /home/hoge/cgi-bin/awstats/index.html
出力するhtmlファイルは利用の環境に応じて変更してください。
これでawststsを導入したディレクトリにアクセスすると以下の様な画面が表示されればOKです。
定期的に集計するためにcrontabで1時間に一回程度、上記コマンドを実行しましょう。
しかし、出力結果で、検索文字列(キーフレーズ)が文字化けしてしまう症状になってしまいませんか?
解消方法は事項で詳しく解説します。
検索文字列の文字化け対策
ほとんどの検索エンジンでの検索文字列は
UTF-8になっているため、文字化けが発生してしまいます。
ここでは、出力されたファイルをUTF-8からeucに変更するようにawstats.plを変更します。
まず、設定には Jcode.pm が必須になります。入っていなければ別途インストールしてください。
awstats.plを修正します。
18行目
use strict;no strict "refs";
use Time::Local; # use Time::Local 'timelocal_nocheck' is faster but not
supported by all Time::Local modules
use Socket;
use Jcode;
4283行目
sub DecodeEncodedString {
my $stringtodecode=shift;
$stringtodecode =~ tr/\+/ /s;
$stringtodecode =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/ieg;
Jcode::convert(\$stringtodecode, "utf8");
return $stringtodecode;
}
以上で修正は完了です。
再度、更新をかけると文字化けが解消されていると思います。
これでAWStatsのインストールは完了です。