アクセスログ解析 - さくらのVPSを使ってみた

アクセスログ解析

Webにコンテンツを公開したらどのぐらいアクセスがあるのかが気になります。Webサーバーのアクセスログを自分で数えたり、アクセス解析のサービスを使う方法もありますが、アクセスログ解析ツールを使うと比較的簡単にそれなりの情報を見ることができます。

Webalizerとは

Webサーバーのアクセスログを解析するツールです。解析結果はHTML形式で保存され、Webブラウザーで結果を見ることができます。

URLごとのアクセス数、Referrer(リンク元)ごとのアクセス数、User Agent(ブラウザー)ごとのアクセス数などの集計結果があります。

サンプル画面を見ると雰囲気をつかめると思います。

Webalizerをインストールする

Webalizerはyumコマンドでインストールできます。

$ sudo yum -y install webalizer

設定ファイルの修正

標準ですとApacheのアクセスログ(/var/log/httpd/access_log)を見る設定になっていますので、Nginxのアクセスログ(/var/log/nginx/access.log)を見るように設定を変更します。

起動時にチェックするファイル名を修正します。

$ sudo vi /etc/cron.daily/00webalizer
#! /bin/bash

if [ -s /var/log/nginx/access.log ]; then
   exec /usr/bin/webalizer -Q
fi

解析対象となるファイル名を修正します。

$ sudo vi /etc/webalizer.conf
LogFile        /var/log/nginx/access.log

標準で代表的な画像ファイルは解析結果の対象から外すようになっていますが、他にも外したい条件があれば設定を追加します。

$ sudo vi /etc/webalizer.conf
# Your own site gives most referrals
HideReferrer    example.com/

# This one hides non-referrers ("-" Direct requests)
HideReferrer    Direct Request

# Usually you want to hide these
HideURL         *.css
HideURL         *.gif
HideURL         *.GIF
HideURL         *.jpg
HideURL         *.JPG
HideURL         *.js
HideURL         *.png
HideURL         *.PNG
HideURL         *.ra

テスト実行

設定ファイルが正しいかどうか実行して確認します。

$ sudo /etc/cron.daily/00webalizer

実行すると結果を /var/www/usage ディレクトリーに出力します。

Web公開

ブラウザーで参照できるようにWebサーバーの設定を行います。

自分だけがアクセスできるように基本認証を実施します。

# 認証用のファイルを置くディレクトリーを作成
$ sudo mkdir /var/www/.password
$ cd /var/www/.password
# 認証情報のファイルを作成
$ sudo htpasswd -cm access アカウント名

公開用の設定を追加します。

$ sudo vi /etc/nginx/conf.d/virtual.conf
# 設定例
server {
    listen       80;
    server_name  webalizer.example.com;

    location / {
        root     /var/www/usage;
        index    index.html;
        auth_basic           "auth";
        auth_basic_user_file "/var/www/.password/access";
    }
}

設定を有効にするためにWebサーバーを再起動します。

$ sudo service nginx restart