Home > Follow Up > MacOSX AWStats

MacOSX AWStats

ログ解析ソフトAWStatsのインストール手順

[環境] MacOSX Server 10.4.8 Mac min(PPC)

[導入手順] 以下のとおり

  1. Apacheの設定ファイル変更
  2. AWStatsのダウンロード
  3. CGIファイルのアップロード
  4. Perlのディレクトリの確認
  5. iconファイルのアップロード
  6. .confファイルの設定
  7. Jcode.pmのインストール
  8. .plの実行
  9. アクセス制限
  10. cronの設定

1.Apacheの設定ファイル変更

Apacheのhttpd.confを変更(/etc/httpd/httpd.conf)。バーチャルホストで運用している場合は、/sitesの”000x_any_” のファイルを変更。CustomLogをcommonからcombinedへ。nanoかサーバー管理ツールを使って書き換え。実際のログ設定は↓
CustomLog '|/usr/sbin/rotatelogs "/var/log/httpd/access_log" 2678400' "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

2. AWStatsのダウンロード

AWStatsから最新版をDL(2007/03/05: awstats-6.6.tar.gz)。

3. CGIファイルのアップロード

tarファイルを解凍後、wwwroot/cgi-bin/以下をCGIディレクトリにアップロード(デフォルト: /Library/WebServer/CGI-Executables/)。今回は、/awstatsのディレクトリを作成。そこに以下をアップ。plのパーミッションに注意。

  • awredir.pl
  • awstats.model.conf
  • awstats.pl
  • lang/
  • lib/
  • plugins/

4. Perlディレクトリの確認

awstats.plの先頭にある#!/usr/bin/perlの確認。パスが違う場合は、それぞれのパスに書き換え。MacOSXは問題なし。

5. iconファイルのアップロード

wwwroot/iconを公開サーバーのディレクトリにアップロード(デフォルト: /Library/WebServer/Documents/)。これが鬼門だった鴨。Virtual Hostでいくつかサイトを公開している。で、それぞれの公開ディレクトリにアップロードするのも何かしっくりこず、CGIディレクトリにアップして.confファイルのDirIconsを(後述)を書き換えてみたが、うまくいかず。Oops….結局、各ディレクトリにアップするハメに:’-)

このiconファイルもCGIファイル同様、/直下に”awstats”フォルダを作成してそこにサクっとアップ。

6. .confファイルの設定

awstats.model.confを環境にあわせて変更。”model”を”サーバー名”に。

$mv awstats.model.conf awstats.www.thinksell.net.conf

バーチャルホストで運用していて、解析したいホストがあるならそのホスト分を用意。続いてパラメータ設定。
最低限の設定は、

  • LogFile
  • DirIcons
  • SiteDomain
  • DirData

$nano awstats.www.thinksell.net.conf

  • LogFile=”/var/log/httpd/access_log”(VirtualHostの場合access_log.10桁の数字)
  • DirIcons=”/awstats/icon”(絶対パスではなく公開されたディレクトリからのパス)
  • SiteDomain=”www.thinksell.net”
  • DirData=”DirData=”./data”(分析結果を書き出すディレクトリ “.”のままだとcgi-binファイルと同じディレクトリに書き込まれる)

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

UTF-8なのでEUCの検索キーワードやフレーズは文字化けして全滅。CPAN Jcode.pmをDLしてインストールで解決。すごく便利、深謝 > danさん

$ perl Makefile.PL
$ make
# make install

インストール完了。

8. .plの実行

いよいよawstats.plを実行したいところだけど、その前に少し編集。awstats.plファイルにJcodeに変換するように記述。以下のとおり。

—-Search Keyword Jcode—-

Jcode使用の宣言を追加(#!/usr/bin/perlより後、use *****;とある最後に追加)
use Jcode;
DecodeEncodedString関数の書き換え。

[original awstats.pl]
sub DecodeEncodedString {
my $stringtodecode=shift;
$stringtodecode =~ tr/\+/ /s;
$stringtodecode =~ s/%([A-F0-9][A-F0-9])/pack(”C”, hex($1))/ieg;
return $stringtodecode;
}

[change awstats.pl]
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;
}

—-Date—-

awstats.pl 8845行目を書き換える

[original awstats.pl]
print ($MonthRequired eq 'all'?"$Message[6] $YearRequired”:”$Message[5] “.$MonthNumLib{$MonthRequired}.” $YearRequired”);

[change awstats.pl]
print ($MonthRequired eq 'all'?"$YearRequired $Message[6]“:”$YearRequired $Message[6]“.$MonthNumLib{$MonthRequired});

実行

./awstats.pl -config=HOSTNAME -update

HOSTNAMEのところは適時代入。

9. アクセス制限

パブリックからアクセスする必要がなければプライベート空間からだけアクセス可能に変更。awstats.www.thinksell.net.confから以下のパラメーターを検索して書き換え。

AllowAccessFromWebToFollowingIPAddresses="127.0.0.1 192.168.1.1-192.168.1.255"

10. cronの設定

ログ解析をcronからたたく。
*/15 * * * * /Library/WebServer/CGI-Executables/awstats/awstats.pl -config=www.thinksell.net -update > /dev/null 2>&1
ブラウザからhttp://HOSTNAME/cgi-bin/awstats.plをたたいて表示できれば吉。

[注意]
.plをたたいたとき、次のようなエラーメッセジーがかえってきたらログファイルの形式をうたがってみる。

AWStats did not find any valid log lines that match your LogFormat parameter, in the 50th first non commented lines read of your log.
Your log file /private/var/log/httpd/medicalcomic_access_log must have a bad format or LogFormat parameter setup does not match this format.
Your AWStats LogFormat parameter is:
.
.
.
Setup (’./awstats.www.thinsell.net.conf’ file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in ‘docs’ directory).

この場合、「ログの形式が間違ってるよ」という警告なので”common”から”combined”へ変更しているか確認。ありがちなケースは

AWStats導入前は”common”、導入後”combined”に変更したとき、”common”と”combined”が混在していてAWStatsがうまく解析できない

がある鴨。その場合、

  • Apacheを停止
  • ログファイルをリネーム
  • Apacheを起動

をためしてみる。

タグ: , , , ,

関連する投稿

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.thinksell.net/follow-up/8.html/trackback
Listed below are links to weblogs that reference
MacOSX AWStats from <THINKSELL />

Home > Follow Up > MacOSX AWStats

RSS
sponsor

自動更新バナーfake

Meta

Return to page top