apacheのアクセスログ解析ツールであるAWStatsをインストールし設定します。
さくらのVPSは標準でEPELのリポジトリが効いているので、yum一発でインストールできます。
- awstatsのインストール
- awstatsの初期設定
- バーチャルホスト利用時の設定
- basic認証の導入
- バーチャルホストを使ってアクセス解析結果ページにサブドメインを割り当てる
1.awstatsのインストール
yumコマンドでawstatsをインストールします。
$ sudo yum install awstats
2.awstatsの初期設定
初期設定を行います。
まずは不要な設定ファイルを削除します。
$ sudo rm -f /etc/awstats/awstats.localhost.localdomain.conf $ sudo rm -f /etc/awstats/awstats.初期ドメイン名.conf
サンプルファイルをコピーして新たな設定ファイルを作ります。
(以下の例ではdomainname.confという名前にしています)
(domainnameの部分は、サーバーの初期ドメインと同じ名前をつける必要があり、AWStatsはhttp://初期ドメイン/awstats/awtasts.plにアクセスした際に解析結果を表示しますが、このurl中の初期ドメインと同じ名前の設定ファイルを参照しにいきます)
(初期ドメインがtest.comの場合には、awstats.test.com.confとなります)
$ sudo cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.domainname.conf
設定ファイルを編集します。
$ sudo vi /etc/awstats/awstats.domainname.conf
LogFile="/var/log/httpd/access_log" (51行目付近。apacheのログファイルの保存場所や名前を変更していない場合にはそのまま) SiteDomain="domainname.com" (152行目付近。ドメイン名をつける) DNSLookup=1 (188行目付近。IPアドレスではなくホスト名でアクセスを表示する)
解析結果を外部からも表示できるように、awstatsのapache用設定ファイルを編集します。
$ sudo vi /etc/httpd/conf.d/awstats.conf
<Directory "/usr/share/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all (この部分を編集) </Directory>
これで「http://初期ドメイン名/awstats/awstats.pl」にアクセスするとawstatsの解析結果を表示できると思います。
AWStatsは1時間おきにcronで解析結果を作成するので、はじめは何の結果も表示されていないかと思います。
3.バーチャルホスト利用時の設定
バーチャルホストを利用しており、ログファイルをまとめてとっている場合の追加設定です。
apacheのhttpd.conf設定ファイルを編集し、ログにバーチャルホスト名を記載してもらいます。
$ sudo vi /etc/httpd/conf/httpd.conf
LogFormat "%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined (502行目付近。%vを%hの前に追記する)
awstatsの設定ファイルを編集し、apacheのLogFormatを変更したことを知らせます。
$ sudo vi /etc/awstats/awstats.domainname.conf
#LogFormat=1 LogFormat = "%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot" (122行目付近。バーチャルホスト名(%virtualname)がログファイルに記載されていることを知らせる)
4.basic認証の導入
basic認証をかけて、IDとパスワードで解析結果のページにアクセスするようにします。
まずはbasic認証用のパスワード設定ファイルを作成します。ここでは例として「/etc/awstats/」ディレクトリ内にユーザー名「username」用のパスワードファイルを作成します。
$ sudo htpasswd -c /etc/awstats/.htpasswd username
続いて、awstats.confを編集しbasic認証を設定します。
$ sudo vi /etc/httpd/conf.d/awstats.conf
<Directory "/usr/share/awstats/wwwroot"> Options None AllowOverride AuthConfig (編集) Order allow,deny Allow from all AuthType Basic (追記) AuthName "Please Enter Your ID/Password." (追記) AuthUserFile /etc/awstats/.htpasswd (追記。先ほど作成したパスワードファイルを指定する) Require valid-user (パスワード設定ファイルに記載のあるすべてのユーザーのアクセスを許可する) </Directory>
これでBasic認証によりアクセスを制限できます。
6.バーチャルホストを使ってアクセス解析結果ページにサブドメインを割り当てる
以上の設定では「http://初期ドメイン/awstats/awstats.pl」にアクセスすると解析結果が表示されますが、任意のサブドメインに移します。
awstats.confを編集し、バーチャルホストの設定をします。
$ sudo vi /etc/httpd/conf.d/awstats.conf
以下は記述例です。
<VirtualHost *:80> ServerName ドメイン名 DocumentRoot /usr/share/awstats/wwwroot Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/" Alias /awstatscss "/usr/share/awstats/wwwroot/css/" Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/" <Directory "/usr/share/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all AuthType Basic AuthName "Please Enter Your ID/Password." AuthUserFile /etc/awstats/.htpasswd Require valid-user </Directory> </VirtualHost>