« POP3Sを設定する。 | メイン | 使用しているOS・パッケージについて »

2005年04月14日

AWStatsの構築

まぁ、ひょんなことから、自宅サーバのアクセス解析をしてみよ〜かとなりまして、以前から注目していたAWStatsを使用してみることとあいなりました。


0.準備

毎度のことながら、必要なものや環境などを記載します。

  • TurboLinux 8 Server(2.4.18-22)
  • awstats-6.2.tgz
  • apache-1.3.27-26

1.AWStats の準備。

(1)ソースを入手する。

ここから、最新版のソースをダウンロードしてきます。


(2)展開してみる。

ボクの場合は、インストールするパッケージのソースは、/usr/local/srcに展開するようにしていますので、このディレクトリで展開されるようにします。

# cd /usr/local/src

# tar zxvf awstats-6.2.tgz

awstats-6.2/

awstats-6.2/docs/

〜省略〜

awstats-6.2/wwwroot/js/

awstats-6.2/wwwroot/js/awstats_misc_tracker.js

#


2.動作環境の作成

(1)AWStats用のディレクトリを作成する。

展開すると分かるんだけど、wwwrootの下に、以下のようなディレクトリが出来てる。

# ls

cgi-bin classes css icon js

#

これを、Apacheのディレクトリにそのままコピーしたんじゃ、ディレクトリ構成があまりにも美しくない。*1

複数のディレクトリに配置してしまうと、AWStatsを削除するときとか、アップデートするときとかに手間になりそうで。

できれば、一つのディレクトリ配下にまとめて置いておきたいのだ。

そんなワケで、AWStats用にディレクトリをこさえようかと。

# cd /var/www/

# mkdir awstats

#


(2)AWStatsのファイルをコピーする。

先ほど、展開したAWStatsのファイルを、作成したディレクトリにコピーします。

# cd /var/www/awstats

# ( cd /usr/local/src/awstats-6.2/wwwroot/ ; tar cvf - * ) | tar xvf -*2

〜省略〜

icon/other/vp.png

icon/other/vu.png

icon/other/vv.png

js/

js/awstats_misc_tracker.js

# ls

cgi-bin classes css icon js

#

ほい、ラクチンですね。

んでもって、オーナー・グループ・パーミッションを変更します。*3

# cd /var/www/

# chown -R nobody:nobody awstats

# cd awstats/cgi-bin

# chown root:root awstats.conf awstats.pl awredir.pl

# chmod 644 awstats.conf

# chmod 755 awstats.pl

# ls -l

合計 596

-r-xr-xr-x 1 root root 5407 12月 28 2003 awredir.pl

-rw-r--r-- 1 root root 56918 1月 22 14:51 awstats.conf

-rwxr-xr-x 1 root root 523466 10月 31 03:02 awstats.pl

drwxrwxrwx 5 nobody nobody 4096 11月 6 20:04 lang

drwxrwxrwx 2 nobody nobody 4096 11月 6 20:04 lib

drwxrwxrwx 3 nobody nobody 4096 11月 6 20:04 plugins

#


3.Apacheの環境設定

(1)AWStatsの設定(httpd.conf)

AWStats用にhttpd.confを編集します。

httpd.conf の中のの間に、以下のような設定をしました。

Allow from 192.168.0.0/24の行で、AWStatsにアクセスできるクライアントのIPアドレスを設定しました。

こ〜ゆ〜のを第三者に公開したくないですしね。

# AWStats

Alias /awstats/classes "/var/www/awstats/classes"

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

Alias /awstats/css "/var/www/awstats/css"

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

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

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

Alias /awstats/js "/var/www/awstats/js"

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

ScriptAlias /awstats/cgi-bin/ "/var/www/awstats/cgi-bin/"

  AllowOverride None

  Options None

  Order allow,deny

  Allow from 192.168.0.0/24


(2)ログの設定

Apacheのログは、combinedに設定しておきましょう。*4

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

そしたら、httpd.confの内容を反映しておきましょう。


(3)awstats.confの設定

AWStatsの設定ファイルを編集します。と、その前に、/var/www/awstats/cgi-bin に、awstats.model.conf というファイルがありますので、awstats.confに変更しておきます。コピーしてもイイですけど、失敗したら/usr/local/srcに元はあるのでそちらから元に戻してもOKですね。

AWStatsへのアクセスを集計しても仕方がないので、SkipFilesで除外しています。

あ、あとSkipHostsで、家庭内LANもハズしました。

ってことで、以下編集した部分です。

LogFile="/var/log/httpd/access_log"

SiteDomain="XXXXX.net"

DirCgi="/awstats/cgi-bin"

DirIcons="/awstats/icon"

SkipHosts="127.0.0.1 REGEX[^192\.168\.0]"

SkipFiles="REGEX[^/awstats/]"

Lang="jp"


ここまで設定すると、データは何もない状態で、AWStatsの画面にアクセスすることが可能になります。

URLは、httpd.confの設定に左右されますが、ボクの場合は、こんな感じです。

ここで、うまく表示されない等の問題があったら、修正しておきましょう。

http://www.XXXXX.net/awstats/cgi-bin/awstats.pl


4.AWStatsを実行する。

(1)手動で実行する。

まずは、手動で解析させてみましょう。

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

Update for config "/var/www/awstats/cgi-bin/awstats.conf"

With data in log file "/var/log/httpd/access_log"...

Phase 1 : First bypass old records, searching new record...

Direct access after last parsed record (after line X)

Jumped lines in file: X

Found X already parsed records.

Parsed lines in file: X

Found X dropped records,

Found X corrupted records,

Found X old records,

Found X new qualified records.

# ls /var/www/awstats/cgi-bin

awredir.pl awstats.conf awstats.pl awstats012005.txt lang lib plugins

#

そうすると、/var/www/awstatsディレクトリに、awstatsMMDDYY.txt*5というファイルが出来ているのが分かります。


(2)定期的に自動で実行する。

まぁ、アクセスが多数あるわけでもないし、営業しているわけでもないので、あまり頻繁にやってもしょうがないんだけど、cronを使用して毎時0分に実行させるようにしてみます。

# crontab -e

エディタが立ち上がるので、以下の行を入力します。

0 * * * * /var/www/awstats/cgi-bin/awstats.pl -config=awstats.conf -update > /dev/null 2>&1

保存して終了します。

#


以下のコマンドで入力した内容が反映されていればOKです。

# crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/tmp/crontab.XXXXsMNEqk installed on Sun Jan 23 21:23:28 2005)

# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

0 * * * * /var/www/awstat/cgi-bin/awstats.pl -config=awstats.conf -update > /dev/null 2>&1

#


まぁ、まずはこんな感じで終了です。

あとは、運用しながら、ちまちまとAWStatsの設定を変更していこうかと思います。


【参考URL】

AWStats導入

  • *1: あくまで、個人的にです。
  • *2: AWStatsが置いてあるディレクトリに移動して、tarでファイルをまとめて、標準出力に出力し、それをtarで受けて展開しています。cvfの方で、絶対パスで指定しないのは、展開時に/usr/から始まってしまうためです。
  • *3: 動作上、問題はないんだろうけど、設定ファイルがnobodyってのは、イヤだ。
  • *4: TLS8の場合、標準でcombinedになっているみたいですが。
  • *5: 月日年ですね。

投稿者 kurumania : 05/04/14

トラックバック

このエントリーのトラックバックURL:
http://linux.kurumania.net/cgi-bin/mt-tb.cgi/22

コメント

コメントしてください




保存しますか?