Apacheアクセスログ解析ツール「AWStats」のインストール

さくらVPSで運用しているApacheアクセスログ解析にAWStatsをインストールしました。

AWStatsのインストール

CentOSの標準リポジトリにはパッケージが含まれていないようなので、dagリポジトリのパッケージをインストールしました。
dagリポジトリの利用については、こちらのエントリを参照してください。

$ sudo yum install awstats

AWStatsの設定

"/etc/awstats"配下に設定ファイルを作成します。
"awstats.<ドメイン名>.conf"のような名前で設定ファイルを作成します。
本エントリでは、"awstats.fugahoge.com.conf"という名前で進めます。

$ cd /etc/awstats
$ sudo rm awstats.localhost.localdomain.conf
$ sudo cp awstats.model.conf awstats.fugahoge.com.conf

AWStatsではFTPSMTPログも解析することができますが、Apacheログの場合は以下のパラメータを設定すればログ解析できます。*1

LogFile="/usr/local/apache2/logs/access_log"
SiteDomain="fugahoge.com"

Apacheの設定

AWStatsにアクセスできるように、Apache(httpd.conf)を設定します。
また、AWStatsPerlでログ解析するのでCGI実行ができるように設定します。

Alias /awstats/icon "/var/www/awstats/icon"
ScriptAlias /awstats/ "/var/www/awstats/"
<Directory "/var/www/awstats">
    DirectoryIndex awstats.pl
    Options ExecCGI
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from all
</Directory>

アクセス解析の実行

以下のコマンドを実行して、初回アクセス解析を手動実行します。

$ sudo /var/www/awstats/awstats.pl -config=fugahoge.com -update

"-config"オプションには、設定ファイル名の<ドメイン名>を指定します。
上記のコマンドは、AWStatsインストール時に作成される"/etc/cron.hourly/00awstats"により定期実行されますが、ログのパスが異なる場合などは環境に合わせて変更します。

#!/bin/bash

if [ -f /usr/local/apache2/logs/access_log ] ; then
    exec /usr/bin/awstats_updateall.pl now -confdir="/etc/awstats" -awstatsprog="/var/www/awstats/awstats.pl" > /dev/null
fi
exit 0

コマンド実行後、"http://サーバーのIPアドレス/awstats/awstats.pl?config=fugahoge.com"にアクセスすれば、解析ページが表示されます。

ログローテートへの対応

Apacheアクセスログをローテートしている場合は、ログローテート前にアクセス解析を実行するように設定します。

prerotate
    /usr/bin/awstats_updateall.pl now -confdir="/etc/awstats" -awstatsprog="/var/www/awstats/awstats.pl" > /dev/null
endscript


AWStats - Open Source Log File Analyzer for advanced statistics (GNU GPL)

*1:Apacheアクセスログフォーマットを"combined"に設定します。