WebAlizerをダウンロードページからダウンロードします。
Standard Unix archive (.tar.Z)をダウンロードします。ダウンロードしたファイルは/home/rev/(自分のホームディレクトリ)以下に保存します。
$ tar xvfz webalizer-2.01-10-src.tar.Z
$ vi webalizer-2.01-10/dns_resolv.c
変更前) #include <db.h> 変更後) #include <db1/db.h>
$ cd webalizer-2.01-10 $ ./configure --prefix=/usr/local/webalizer201 --with-language=japanese --enable-dns $ makerootになり、make installします。
$ su -
# cd /home/rev/webalizer-2.01-10
# mkdir -p /usr/local/webalizer/{bin,man/man1}
# make install
インストール後、設定ファイル webalizer.conf.sampleが /etc に生成されます。
このwebalizer.conf.sampleをwebalizer.confにリネームし、それをログ解析を行う環境に合わせて修正します。
LogFile --> Apacheのアクセスログファイルの場所を絶対パスで記述 OutputDir --> 解析結果HTMLファイルの出力場所を絶対パスで記述 HostName --> サーバのホスト名を記述(解析結果ページに表示される)
NTTPCコミュニケーションズが提供する共有ホスティングサービス WebArenaのアクセスログ解析を行う設定をします。
WebArenaのアクセスログは /log に1日分のログを1ファイルで生成し、翌日にはgz形式で圧縮されます。圧縮ファイルは、access.log.1.gz、access.log.2.gz・・・というようにリネームされ保存*1されます。
このaccess.logファイルを毎日ダウンロードしてWebalizerで解析しても、その日1日分のみの解析結果となり過去の統計は残りません。
そこで、前日にダウンロードしたaccess.logに新たにダウンロードしたaccess.log.1.gzを解凍しcatコマンドで結合します。結合したものはそれまでの累積となります。。これを毎日繰り返せば、過去の統計を残すことができます。
open ftp.example.jp user admin パスワード cd log get access.log.1.gz quit
#!/bin/sh # User Data DIR=/etc/webalizer/example.jp FTP=$DIR/ftp.sh . /etc/webalizer/GetAccesslog.sh
#!/bin/sh # FTP login and get access.log. cd $DIR ftp -n < $FTP gunzip -d $DIR/access.log.1.gz mv $DIR/access.log $DIR/access.log.tmp cat $DIR/access.log.tmp $DIR/access.log.1 > $DIR/access.log rm -f $DIR/access.log.1
# chmod 700 /etc/webalizer/GetAccesslog.sh # chmod 700 /etc/webalizer/example.jp/stat.shこれで、/etc/webalizer/example.jp/stat.sh を実行するとログファイルのダウンロードから結合までが自動化されます。
一般的なログ解析の手順は以下のようにcronで定期的にwebalizerを実行するだけです。
# vi /etc/cron.daily/webalizer # chmod 700 /etc/cron.daily/webalizer/etc/cron.daily/webalizerは、以下のようになります。
#!/bin/sh /usr/local/webalizer/bin/webalizer -c /etc/webalizer.conf > /dev/null解析結果HTMLが出力されるディレクトリが、public_html以下など外部から参照できる場所にあり公開したくない場合は.htaccessなどでアクセス制限を行うとよいでしょう。