アクセスログ解析AWStatsの導入

Apacheウェブサーバへのアクセスログから各種統計データをグラフィカルに表示するAWStatsをインストールします。

https://help.ubuntu.com/community/AWStats

1. AWStatsのインストール

sudo apt-get install awstats

AWStatsの設定

/etc/awstats内のawstats.confを編集します。

自分のドメイン用にオリジナルの設定ファイルをコピーします。

cp /etc/awstats/awstats.conf /etc/awstats/awstats.yourdomain.ext.conf

ファイルを編集します。

vi /etc/awstats/awstats.yourdomain.ext.conf

または、

nano /etc/awstats/awstats.yourdomain.ext.conf

以下の3行を編集します。

  LogFile="/var/log/apache2/access.log" 
  LogFormat=1
  SiteDomain="yourdomain.ext"
  HostAliases="localhost 127.0.0.1 yourdomain.ext"

var/log/apache2/access.logに基づきAWStatsをアップデートします。

/usr/lib/cgi-bin/awstats.pl -config=yourdomain.ext -update

2. Apache2の設定

まず初めにApacheモジュールのmod_cgiを有効にします。

a2enmod cgi

AWStatsのページを表示させるためApacheの設定をします。

cd /etc/apache2/sites-available/

/etc/apache2/sites-available/***default.conf内のVirtualHostタグに以下のコードを追加します。

    Alias /awstatsclasses "/usr/share/awstats/lib/"
    Alias /awstats-icon/ "/usr/share/awstats/icon/"
    Alias /awstatscss "/usr/share/doc/awstats/examples/css"
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    ScriptAlias /awstats/ /usr/lib/cgi-bin/
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Apache2をリロードします。

/etc/init.d/apache2 reload

以下アドレスにアクセスし確認します。

http://yourdomain.ext/awstats/awstats.pl

幾つかのドメインごとに設定ファイルを作成している場合は、

http://yourdomain.ext/awstats/awstats.pl?config=yourdomain.ext

3. Crontabの設定

指定ドメインごとに自動アップデートするようcrontabに記述します。

sudo crontab -e

0 */3 * * * /usr/lib/cgi-bin/awstats.pl -config=yourdomain.ext -update > /dev/null

リンク

http://awstats.sourceforge.net/ Official AWStats website

http://awstats.sourceforge.net/docs/index.html Documentation

http://awstats.sourceforge.net/docs/awstats_setup.html

http://www.awstats.org/ Official AWStats website

http://kastang.com/blog/2010/07/awstats-on-ubuntu-10-04-server/ used to create this page

セキュリティ確保のためパスワード認証します。

アクセスユーザとパスワードを設定します。

sudo apt-get install apache2-utils

sammyというユーザの場合

sudo htpasswd -c -b /etc/apache2/.htpasswd sammy password

Apache2のdefault.confファイル内のVirtualHostタグ内に以下追加します。

<Files "awstats.pl">
    AuthUserFile /etc/apache2/.htpasswd
    AuthName "Restricted Area For Customers"
    AuthType Basic
    require valid-user
</Files>  

または

<Directory "/usr/lib/cgi-bin/">
    AuthUserFile /etc/apache2/htpasswd
    AuthName "Please Enter Your Password"
    AuthType Basic
    Require valid-user
</Directory>

Apacheの設定をリロードして動作を確認して下さい。

sudo service apache2 reload

SSL対応した場合にはApacheのSSLサイト設定ファイル **/etc/apache2/sites-available/*ssl-default.confVirtualHost タグ内に上記の項目を追加します。

    Alias /awstatsclasses "/usr/share/awstats/lib/"
    Alias /awstats-icon/ "/usr/share/awstats/icon/"
    Alias /awstatscss "/usr/share/doc/awstats/examples/css"
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    ScriptAlias /awstats/ /usr/lib/cgi-bin/
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

    <Files "awstats.pl">
    AuthUserFile /etc/apache2/.htpasswd
    AuthName "Restricted Area For Customers"
    AuthType Basic
    require valid-user
    </Files>

3. Crontabの設定

www-dataにApacheログファイルの読み取り権限を付与しても、新規ログファイルが作成されると無効になり統計データに反映されません。

https://bugs.launchpad.net/ubuntu/+source/awstats/+bug/1252467

awstatsという新規ユーザを作成し、このユーザをwww-data,admグループに追加します。

$ sudo useradd awstats
$ sudo usermod -a -G www-data awstats
$ sudo usermod -a -G adm awstats

awstatsのクローンジョブユーザ名を変更します。

$ sudo pico /etc/cron.d/awstats

#MAILTO=root

*/10 * * * * awstats [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * awstats [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buil$

以下フォルダ内の所有権をユーザawstatsに変更します。

$ sudo chown -R awstats:www-data /var/lib/awstats

以下スクリプトをユーザawstatsで実行します。エラーが表示されなければ統計データのアップデートは無事完了です。ブラウザで表示を確認して下さい。

$ sudo -u awstats /usr/share/awstats/tools/update.sh

ブラウザで任意の時間にアップデートする場合

以下の変更でブラウザ表示画面上部にアップデートリンクが作成されます。

$ sudo pico /etc/awstats/awstats.ficus.myvnc.com.conf

AllowToUpdateStatsFromBrowser=1