webalizer 2.01-10 に関するインストールメモ(2002/07/06, 更新日:2003/03/26) 
 

webalizer とは

apache のアクセスログから、各種の統計情報を解析しグラフィカルなイメージでレポート出力するツールです。レポート出力結果は、月/日単位で見ることができます。こんな感じ。

本家 : The Webalizer(英語です)

参考 : SolarisFAngdとwebalizerによるApacheログファイルの解析

参考 : Webalizer アクセス解析

 

設定方法

1.webalizer を使用するためには、libgd が必要となります。libgd の関連モジュールとして libpng / jpeg-6b / zlib / freetype / freetype2 を必要としますが、「Solaris Software Companion」によって導入済みなので特に必要ありません。

libgd (1.8.4) のコンパイル方法

% cd /opt/local/src
% wget http://www.boutell.com/gd/http/gd-1.8.4.tar.gz
% gzip -cd gd-1.8.4.tar.gz | tar xf -
% cd gd-1.8.4
% vi Makefile  ← Makefile を修正する。斜線部分が記述追加した箇所です。
    #CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG
    CFLAGS=-O3 -DHAVE_LIBPNG -DHAVE_LIBJPEG -DJISX0208

    #INCLUDEDIRS=-I. -I/usr/include/freetype2 -I/usr/include/X11 -I/usr/X11R6/include/X11 -I/usr/local/include
    INCLUDEDIRS=-I. -I/opt/sfw/include/freetype -I/usr/include/freetype2 -I/usr/include/X11 -I/usr/X11R6/include/X11 -I/usr/local/include
% make |& tee make.log
% su
# make install

2.webalizer 2.01-10 をインストールする。

% cd /opt/local/src
% wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tar.Z
% gzip -cd webalizer-2.01-10-src.tar.Z | tar xf -
% cd webalizer-2.01-10
% wget ftp://ftp.mrunix.net/pub/webalizer/lang/webalizer_lang.japanese
% cp webalizer_lang.japanese ./lang 
% env CFLAGS=-O3 LDFLAGS="-L/opt/sfw/lib -R/opt/sfw/lib" ./configure --with-language=japanese --enable-dns
% make
% su
# make install
     /opt/sfw/bin/ginstall -c webalizer /usr/local/bin/webalizer
     /opt/sfw/bin/ginstall -c -m 644 webalizer.1 /usr/local/man/man1/webalizer.1
     /opt/sfw/bin/ginstall -c -m 644 sample.conf /etc/webalizer.conf.sample
     rm -f /usr/local/bin/webazolver
     ln -s /usr/local/bin/webalizer /usr/local/bin/webazolver

※ --enable-dns オプションを指定しないと、DNS逆引きが動作しません

3.webalizer.conf の設定を行う。(もっと詳しい設定については、こっちを参照)

% su
# cd /etc
# cp webalizer.conf.sample webalizer.conf
# vi webalizer.conf
    最低限の設定
      LogFile   apacheのログファイル名までのフルパスを記述
      HostName   ホスト名(表示に使われるホスト名)
      DNSCache dns_cache.db
      DNSChildren 20

4.実行のしかた(最低限の設定しか行っていない場合)です。

% cd 書き込み権限のある任意のディレクトリ   ← このディレクトリに webalizer が出力した結果が書き出されます
% /usr/local/bin/webalizer

高度な設定(なにがじゃい?)方法

1.コマンドラインから毎回 webalizer コマンドを実行するのは、シンドイので cron 化して楽しませう。その前に、webalizer の設定を完璧にしておきませう。

# vi /etc/webalizer.conf    ← 記述した内容

2.webalizer.conf の OutputDir には、webから参照できるディレクトリを記述しておくと便利です。

OutputDir /opt/local/apache/htdocs/webalizer

3.cron から起動するべきシェルスクリプトを作成する。

% cd /usr/local/cron_sh        ← 適当でいいです
% vi webalizer.sh                        ← 自分でわかれば、いいです
     #!/bin/sh
     LD_LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib
     /usr/local/bin/webalizer

4.毎時10分単位で 上記シェルスクリプトを実行するように crontab に設定します。

% su
# csh
# setenv EDITOR vi
# crontab -e
     0,10,20,30,40,50 * * * * /opt/local/cron_sh/webalizer.sh

問題点の解決

国別アクセスで、いつまでたっても 「Unresolved/Unknown」 と表示される場合は、コンパイル時の指定か、設定ファイルの指定が間違っています。ただし修正後に過去分が反映されると思いでしょうが・・・。あはは。修正後からの反映ですので、お気を付けあれ〜