Webalizer による Squid のログ解析

Webalizer は各種のログを解析するアプリケーションで,今回は Squid のログを解析します.Squid のログは標準ではあまり可読性が良くありません.Apache ライクなログをとる方法がありますが,これもあまり当てになりません.そこで Webalizer にログ解析をさせます.

インストール

Webalizer のサイトは, http://www.webalizer.org/ です,またコンパイルには GD のライブラリが必要です.今回は日本語出力をさせます.

 
# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz
# tar xvzf webalizer-2.01-10-src.tgz
# cd webalizer-2.01-10
# ./configure --prefix=/usr/local/webalizer \
# --with-language=japanese
# make
# インストール時にディレクトリを作ってくれないので自分で作る
# mkdir -p /usr/local/webalizer/bin
# mkdir -p /usr/local/webzlizer/man/man1
# make install

コンフィグ

Webalizer インストール時に /etc/webalizer.conf.sample というファイルが生成されるのでそれを参考にして設定をします.サンプルファイルには詳細に説明が書かれているのでそれほど困ることはないでしょう.この設定は必要最小限でほかにも有用な設定が多々あります.

/etc/webalizer.conf
# Squid のログのありかを示す
LogFile        /usr/local/squid-2.5/var/logs/access.log
# ログのタイプを指定する
LogType        squid
# 出力先ディレクトリを指定する
OutputDir      /home/httpd/html/webalizer
# 履歴ファイルを指定する
HistoryName    /home/httpd/html/webalizer/webalizer.hist
# ログを増分で見るかどうかを決める
Incremental    yes
# 増分を判断するファイルのありかを示す
IncrementalName        /home/httpd/html/webalizer/webalizer.current

運用

ここでは,23:00に cron で処理させます.また,/usr/local/webalizer にはパスが通っていないので cron には簡単なシェルスクリプトを実行させます.

webalizer の cron ファイル
# こいつを /etc/cron.d/ に放り込みます
0 23 * * * root /usr/local/webalizer/webalizer.sh
webalizer.sh
#!/bin/sh
# 当然ながら,このスクリプトは cron で指定された先に置きます
cd /usr/local/webalizer
./bin/webalizer -q
chown -R httpd:users /home/httpd/html/webalizer