« 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】
- *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


