Webalizer on CentOS 5.6

  Linux

アクセスログ解析としては AWStats, Webalizer 等といろいろあるけど、yum でさくっとインストールできる Webalizer を選択。

>> 10 Best Log Management Tools (including Alternatives to Cronolog & Analog) 10のベストログ管理ツール (CronologとAnalogの代替)
>> AWStats
>> Webalizer

yum でさくっとインストール。

yum -y install webalizer

今回は接続元 IP アドレスによる制限ではなく、Basic 認証による制限を行う。パスワードファイルを作る。

/usr/bin/htpasswd -c /etc/httpd/conf.d/.htpasswd-webalizer natsu
#   New password: <PASSWORD>
#   Re-type new password: <PASSWORD>
chmod 640 /etc/httpd/conf.d/.htpasswd-webalizer
chgrp apache /etc/httpd/conf.d/.htpasswd-webalizer

httpd の /usage の設定を変更する。

cp -a /etc/httpd/conf.d/webalizer.conf /etc/httpd/conf.d/webalizer.conf.orig
{
    echo -e 'Alias /usage /var/www/usage'
    echo -e ''
    echo -e '<Location /usage>'
    echo -e '    Order allow,deny'
    echo -e '    Allow from all'
    echo -e '    AuthUserFile /etc/httpd/conf.d/.htpasswd-webalizer'
    echo -e '    AuthName "RESTRICTED"'
    echo -e '    AuthType Basic'
    echo -e '    require valid-user'
    echo -e '</Location>'
    echo -e ''
    echo -e 'RewriteEngine on'
    echo -e 'RewriteRule ^/usage/(.*) https://%{HTTP_HOST}/usage/$1 [R,L]'
} > /etc/webalizer.conf
/sbin/service httpd graceful

Webalizer の設定を変更する。

cp -a /etc/webalizer.conf /etc/webalizer.conf.orig
sed -i 's/^#UseHTTPS       no/UseHTTPS        yes/' /etc/webalizer.conf

古いログから順に読み込ませる。

/usr/bin/webalizer /var/log/httpd/access_log.3
/usr/bin/webalizer /var/log/httpd/access_log.2
/usr/bin/webalizer /var/log/httpd/access_log.1
/usr/bin/webalizer

ブラウザで https://<SERVERNAME>/usage/ からアクセスできる。
初期化したいときは /var/lib/webalizer の中を空にしてやればいい。

cp -a /var/lib/webalizer /var/lib/webalizer.$( date '+%Y%m%d%H%M%S' ) && rm -f /var/lib/webalizer/*

Webalizer は 毎日 04:02 に cron にて実行されるので放置。

cat /etc/cron.daily/00webalizer