AWStats というツール。一応日本語にも対応している。
まず、AWStats Ver.6 をダウンロード、展開する。安定版は 6.3 (STABLE)。
$ wget http://mesh.dl.sourceforge.net/sourceforge/awstats/awstats-6.3.tgz
$ tar -zxvf awstats-6.3.tgz
解凍したディレクトリの wwwroot/cgi-bin 以下の内容を、サーバーのディレクトリにコピーする。ここでは、 /home/httpd/sleepingbird
下に専用のディレクトリを用意する。
$ cd awstats-6.3
$ cp -r ./wwwroot/cgi-bin/* /home/httpd/sleepingbird/awstats
awstats.pl ファイルの一番先頭は "#! /usr/bin/perl" で VineLinux
の perl の位置になっているが念のため確認しておく。
解凍したディレクトリの wwroot/icon 下にある6ディレクトリを、Apacheが読むことができる場所にコピーする。
httpd.conf の Aliase に記述されている。
VineLinux では、 /home/httpd/icons である。このディレクトリの所有者は
root なので事前に su しておく。
$ su
# cp -r ./wwwroot/icon/* /home/httpd/icons/
# exit
$
サーバーディレクトリにコピーした awstats.model.conf を コピーして編集する。
$ cd /home/httpd/sleepingbird/awstats
$ cp awstats.model.conf awstats.conf
$ vi awstats.conf
デフォルト値以外の部分は次のとおり。なお、他の設定項目についてもひととおり確認しておく。
# less awstats.conf
# 解析したいWebサーバーのログファイル名
LogFile="/var/log/httpd/access_log"
# 分析するログファイルのタイプ(W:web S:streaming M:mail F:ftp)
LogType W
# ログの形式指定
LogFormat=1
# DNSの逆引き指定
# 0 - DNSの逆引きを行わない
# 1 - DNSの逆引きを完全に行う
# 2 - DNSキャッシュファイルに存在するIPアドレスについてのみのみ逆引きを行う
DNSLookup=1
# awstats.plが置かれている相対もしくは絶対URL.
DirCgi="/awstats"
# AWStatsがCGIとして利用される場合, アイコンサブディレクトリの相対もしくは
# 絶対URL
DirIcons="/icons"
デフォルトは /icon なので注意
# "SiteDomain" 統計対象のWebサイトのドメイン名もしくはイントラネット
# のサーバー名
SiteDomain="www.sleepingbird.net"
# awstats のデータを置くディレクトリ
DirData="/home/httpd/sleepingbird/awstats/awstats_db"
# ここには, 誰かが統計対象サイトに到達するために利用される可能性がある,
# 上記以外の全てのドメイン名やアドレス, バーチャルホストのエイリアス名などを
# 設定します.
HostAliases="localhost 127.0.0.1"
# 更新処理が走る際に, AWStatsはロックファイルをTEMPもしくはTMPディレクトリに
# セットすることができます.
EnableLockForUpdate=1
# AWStatsは処理済みのログを切り詰めることができます.
PurgeLogFile=0
(但し、テストが終わるまでは 1:切りつめない)
# PurgeLogFileが1に設定されている場合, AWStatsは処理済みのログファイルを
# 切り詰めます。しかし, この値を1に設定すると, 処理されたログがアーカイブ
# ファイル("DirData"に保存)として残されます(例えば別のログ分析ツールを
# 利用したい場合).
ArchiveLogRecords=1
# AWStatsに破損されていない最新のファイルを,
# .bakという名前で保存させておくことができます. このファイルは"DirData"
# ディレクトリに, その他の履歴ファイルと共に保存されます.
# 取り得る値: 0 or 1
# 既定値: 1
#
KeepBackupOfHistoricFiles=1
# 以下の基準にマッチするクライアントからのアクセスを処理対象外とします。
# ログファイル中のhostフィールドにIPアドレスが含まれる場合、基準はIPアドレスで
# 記述する必要があります。
SkipHosts="localhost 10.99.1.1 210.253.243.85 202.247.193.46"
# 特定のURLを無視させたい場合は, SkipFilesを利用します.
SkipFiles="robots.txt$ /~"
# メインとする言語を指定します.
Lang="jp"
# 画面に表示する, 他言語の統計画面へのリンクとなる国旗をリストします.
ShowFlagLinks=""
apache のログファイル形式は combined にしておく必要があるが、Vine Linux
ではインストール時にデフォルトで combined になっているため変更は不要である。一応確認はしておく。
なお、VirtualDomain を設定した場合、log ファイルを個々に設定したら、combined
設定もそれぞれに行わなければならないので注意する。
$ less /etc/httpd/conf/httpd.conf
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
# CustomLog /var/log/httpd/access_log common
CustomLog /var/log/httpd/access_log combined