AwstatsによるHTTPアクセスログ解析

アクセスログ解析ソフトのAwstatsでもっとも一般的に使われるApacheのログ解析方法に解説します。

なお、環境はCentOS-5を利用し、AwstatsはDagリポジトリを利用します。

Awstatsのインストール

CentOS-5では提供されていないため、ここでは、Dagリポジトリを利用します。

 

Dagリポジトリの追加

Dagリポジトリを追加は、以下のコマンド行います。

i386 ( 32bit )

rpm -Uvh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

x86_64 ( 64bit )

rpm -Uvh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

 

以下のコマンドで読み込みます。

yum update

 

インストール

awstatsをインストールします。

yum install awstats

 

Awstats設定の準備

Apacheのログが、rotatelogsを利用し、1日置きに分隠されたログが出力されていると仮定します。

そのため、アクセスログはaccess.20080625.logのようなファイル名で出力されている物とします。

もし、ログのローテーションを行ってない場合には、その場合の方法も併記します。

Awstatsをインストールすると/etc/awstats/以下に設定ファイルが作成されます。

この中の、awstats.model.confを流用して、自身で必要な設定ファイルを作成します。

今回は、unixlife.jpドメインのログ解析を行う設定をして行きたいと思います。

まず、awstats.model.confをコピーしてawstats.unixlife.confを作成します。

cp awstats.model.conf awstats.unixlife.conf

コピーが終わったら、awstats.unixlife.confを編集していきます。

 

 

Awstats定義ファイルの設定

awstats.unixlife.confを作成しましたので、この内容を編集して行きます。

非常に長い設定ファイルですが、変更が必要な箇所は多くありません。

ここでは、最低限編集が必要と思われる箇所のみ列挙します。

awstats.unixlife.conf

*ローテーションしてないアクセスログの指定方法
LogFile="/var/log/apache/access.log"
1日ごとのログで、解析は1時間毎に行う場合
LogFile="/var/log/apache/access.%YYYY%MM%DD-1.log"
1日ごとのログで、解析は1日1回前日分を行う場合
LogFile="/var/log/apache/access.%YYYY%MM%DD-24.log" 

解析するドメインを指定
SiteDomain="unixlife.jp"

解析結果に含めないIPを指定
SkipHosts="127.0.0.1 192.168.1.1" 

年間レポートの生成
AllowFullYearView=3

 

 

Apacheの設定

Awstats用のアクセス解析ページは、/var/www/awstats/以下に作成されます。

Awstats用のApacheの設定ファイルは、Awstatsインストール時に、/etc/httpd/conf.d/以下にawstats.confが作成されます。

ここでは、awstats.confでアクセス制限などを行います。

Alias /awstats/icon/ /var/www/awstats/icon/

ScriptAlias /awstats/ /var/www/awstats/
<Directory /var/www/awstats/>
	DirectoryIndex awstats.pl
	Options ExecCGI
	order deny,allow
	deny from all
	allow from 127.0.0.1 192.168.1.0/24 ローカルアドレスからのみアクセス可能
</Directory>

これで、Apache側の設定は終了です。Apacheに新しい設定を読み込ませましょう。

/etc/init.d/apache graceful

 


cronによる定時解析

Awstatsで定時的にアクセスログ解析を行うには、cronを設定するが良いでしょう。

例えば、awstats.unixlife.conf設定ファイルの指定で、1時間毎に解析をする設定をした場合は、以下のようにcronを設定します。

01  */1  *  *  *  /var/www/awstats/awstats.pl -config=unixlife -update

これで、1時間毎にログ解析が行われます。

 

 

ログ解析結果ページの閲覧

ログ解析結果のページは以下のURLを指定する事により閲覧可能です。

ここでは、ログ解析サーバのIPアドレスが、192.168.1.1と仮定します。

http://192.168.1.1/awstats/awstats.pl?config=unixlife

 

 

Awstatsでの携帯アクセス解析

CentOS標準パッケージのAwstatsでは、日本の携帯キャリアはアクセス解析に含まれません。

そのため、ここでは、携帯への対応を行います。

browsers_phone.pmへ携帯キャリアを追記

/var/www/awstats/lib/browsers_phone.pm

@BrowsersSearchIDOrder = (
# Japan Mobile Phone
'vodafone',
'j\-phone',
'emobile',
'softbank',
'kddi',
.
.
.
%BrowsersHashIDLib = (
# Japan Mobile Phone
'vodafone', 'SoftBank(Vodafone)',
'j\-phone', 'SoftBank(J-Phone)',
'emobile',,'eMobile',
'softbank', 'SoftBank',
'docomo', 'DoCoMo',
'kddi', 'au',
.
.
.

 

robots.pmの編集

Docomoからのアクセスがロボットに登録されてるので、/var/www/awstats/lib/robots.pmにある、docomoの行を全てコメントにする。

 

解析用設定ファイルの変更

先ほど作成したawstats.unixlife.confを利用します。

LevelForBrowsersDetection=allphones

これで、携帯キャリアからのアクセスも解析されるはずです。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">