AWStats 6.5 日本語版 インストール&設定

AWStatsは、Apacheのアクセスログからさまざまな統計情報を解析し、グラフィカルな解析結果をレポート出力するツールである。ここではソースファイルでのインストール&設定を行う方法を紹介する。

1.Jcode.pmのインストール

AWStatsの日本語版は、Jcode.pmを使用して日本語関係の処理を行っている。インストールされていない場合はソースを入手して、次のようにインストールしておく。

# cd /usr/local/src
# tar zxvf Jcode-0.87.tar.gz
# cd Jcode-0.87
# perl Makefile.PL
# make
# make install

2.AWStatsの解凍および設定

AWStatsには日本語版が存在するので、それをインストールすることにした。
しかし、AWStats 6.5 日本語版はutf8を使っているため、設定ファイルの編集などをLinux上で行う場合、注意が必要である。私はFedora Coreを使う際、ロケールをutf8からEUC-JPに変更しているため、Linux上でutf8を使っているファイルを開くと文字化けしてしまう。
よって、ソースファイルの解凍や設定ファイルの編集はWindows上で行い、編集後のファイルをLinuxサーバに配置することにした。

WindowsマシンでAWStats日本語サイトから最新版をダウンロードしてデスクトップなどに配置し、Lhaca完全版などで解凍する。

解凍したファイルをWWWサーバ上に配置する前に、設定ファイルを編集する。編集にはUTF8で作成されたファイルを読み書きできるテキストエディタ(秀丸やEmEditorなど)が必要である。
設定ファイルのサンプルとして「wwwroot\cgi-bin\awstats.model_jp.conf」というファイルがあるため、これをコピーして使用する。同一フォルダにawstats.confという名前でコピーし、そのファイルをエディタで開いて次のように編集する。

LogFile="/usr/local/apache2/logs/access_log.utf8"
SiteDomain="rina.jpn.ph"
DNSLookup=1
DirData="/www/wwwroot"
DirCgi="/cgi-bin"
DirIcons="/icon"
Lang="jp"

とりあえずこれだけのパラメータを設定した。
設定ファイルには各パラメータの説明が日本語で詳しく載っているため、よく読めば分かるだろう。

3.AWStatsのインストール

設定ファイルを編集し、保存したら、FFFTPなどのFTPソフトを使ってファイルを配置する。
配置するファイルはDirDataに設定したディレクトリとDirCgiに設定したディレクトリにそれぞれ配置しなければならないため、注意する。
上記のように設定した場合、DirDataに指定した/www/wwwrootディレクトリに次のファイル(フォルダ)を転送する。

次に、DirCgiに指定した/cgi-binディレクトリに次のファイル(フォルダ)を転送する。

転送後、cgi-bin内に配置したperlスクリプト(拡張子が.plのファイル)に対して実行権(755)を付ける

4.Apacheのログファイルの形式を変更

AWStatsを使う場合、Apacheのログファイル形式はcombindにしたほうが良い。Apacheの設定ファイルhttpd.confを開き、次のように編集する。

CustomLog logs/access_log combined

編集したら、Apacheを停止して古いログファイルを削除後、Apacheを起動する。

5.ログレポートの作成(手動)

ログレポートの作成手順は、次のとおりである。

  1. Apacheのログファイルを日本語に変換する
  2. 日本語変換されたログファイルを使ってデータベースファイルを生成する
  3. 作成したデータベースファイルを使ってログレポートを生成する
  4. ログレポートを確認する

5-1 Apacheのログファイルを日本語に変換する

Apacheのログファイルをそのまま使ってログレポートを生成すると、日本語が全て化けてしまうため、次のコマンドを実行して、日本語変換したログファイルを作成する。

# /www/cgi-bin/utf8_decode.pl < /usr/local/apache2/logs/access_log > /usr/local/apache2/logs/access_log.utf8

※各ファイルのパスは、それぞれの環境に合わせる

5-2 日本語変換されたログファイルを使ってデータベースファイルを生成する

5-1で作成したaccess_log.utf8を使って、データベースファイルに書き出す。コマンドは次のとおり。

# perl /www/cgi-bin/awstats.pl -config=awstats.conf -update

5-3 作成したデータベースファイルを使ってログレポートを生成する

5-2で作成したデータベースファイルを使って、ログレポートを生成する。コマンドは次のとおり。

# perl /www/cgi-bin/awstats.pl -config=awstats.conf -output -staticlinks > /www/wwwroot/awstats.html

5-4 ログレポートを確認する

5-2で作成したレポートファイルを、ブラウザから確認する。

http://rina.jpn.ph/awstats.html
http://rina.jpn.ph/cgi-bin/awstats.pl

より詳しく見たいなら、次のように指定する。

http://rina.jpn.ph/cgi-bin/awstats.pl

6.ログレポートを定期的に生成する

ログレポートを手動で生成するのは面倒なので、定期的に生成することを考える。
定期的・・・といえばcronを使って作成処理を実行させると思いつくが、AWStats 6.0 日本語版にはcronのサンプルファイルが用意されているので、それを利用する。

cronのサンプルファイルは、Windows上で解凍したファイルのルートにawstats.cronという名前で用意されている。設定ファイルと同様、utf8で作成されているため、Windows上で修正を行った後、サーバに配置する。
いままでの設定のとおりに構築してきた場合、cronファイルは次のようになる。

#! /usr/bin/perl

# 完全日本語版AWStats用サンプルcronファイル
#
# ファイルパス等は自分の環境に合わせて書き直して下さい。

# httpのログファイルをデコードした上で一時ディレクトリに格納します。
# access_log.utf8は一時的にデコードしたログを保存するファイルの名前です。

system("/www/cgi-bin/utf8_decode.pl < /usr/local/apache2/logs/access_log > /usr/local/apache2/logs/access_log.utf8");

# awstats.plが切り詰めないオリジナルのログを切り詰めます。
open(LOG,"+</usr/local/apache2/logs/access_log");
truncate(LOG,0);
close(LOG);

# Ver.5.0から、更新処理を別途走らせる必要ができたらしい....
system("/www/cgi-bin/awstats.pl -config=awstats.conf -update > /dev/null");

# awstats.plを走らせ、htmlファイルを出力します。
# 必須ではありませんが、awstats.plを直接参照させるよりも、htmlに出力して表示す
# る方が、良好なパフォーマンスが得られます。
system("/www/cgi-bin/awstats.pl -config=awstats.conf -output > /www/wwwroot/awstats.html");

# アクセス可能になるように出力したhtmlファイルの権限を変更
system("chgrp nobody /www/wwwroot/awstats.html");
system("chown nobody /www/wwwroot/awstats.html");

編集したawstats.cronをサーバに転送し、実行権(700)を付ける。あとは、cronに実行させるだけである。毎時間実行したいなら/etc/cron.hourlyの中に、毎日(午前4時)更新したいなら/etc/cron.dailyの中にawstats.cronを配置する。

また、awstats.cronの内容を見て分かるとおり、ログファイルの切り詰めを行っている。これを行うためにはAWStatsの設定ファイルを次のように修正する必要がある。

PurgeLogFile=1

修正後、awstats.cronが正常に動作するかを確認する

# /etc/cron.hourly/awstats.cron

上記コマンドによって、レポートファイルが更新されたはずなので、ブラウザから確認する。更新されていれば、定期的にも更新だれるだろう。

参考文献・サイト


[ TOP ]