MAKIZOU.COM

WEB系SEのホームページ作成&サーバ構築運用メモ

アクセスログ解析(AWStats編)

AWStats とは

AWStats は Apache のアクセスログを解析し、視覚的な統計情報をブラウザで閲覧で表示するPerlスクリプトです。
AWStats 以外にも Analog 、 Webalizer などのログ管理ソフトはありますが AWStats が分かりやすく機能も充実しています。

参照: http://awstats.sourceforge.net/


【AWStatsの分析機能一覧】
分析項目 内容
統計 サイト全体の、該当月のアクセス数を示します。
一意の訪問者数、訪問者ののべ数、PV数(アクセスされたページ数)、ヒット数、バイト数
曜日 該当月における曜日ごとのアクセス数
時間帯別のアクセス状況 該当月における時間帯別のアクセス数
訪問者のドメイン/国名 訪問者のホスト名から国別の訪問数
ホスト名 訪問者のホスト名を表示(IPからホスト名を調べます)
ロボット/スパイダーの訪問者 ロボットの訪問数
滞在時間 訪問者の滞在時間
ページ数/URL 各ページごとのアクセス数(アクセス数の多い順に表示)
ファイルの種類 アクセスされたファイルの種類
OS 訪問者が使用しているOS
ブラウザ 訪問者が使用しているブラウザとバージョン
このサイトへの接続元 訪問者が直前に閲覧していたサイトURLを表示
検索文 検索エンジンに入力された文章によるアクセス数
検索語 検索エンジンに入力された語によるアクセス数
HTTPエラーコード HTTPエラーコードごとのアクセス数

Perlのバージョンと場所の確認

AWStats はPerlのバージョンが5.8.0以降が必要ですので、確認します。

# perl -v


This is perl, v5.8.5 built for i386-linux-thread-multi
    :

Perlの場所(Path)を確認します。

# which perl


/usr/local/bin/perl

Jcode.pmのインストール

URLをデコードするために必要とします。

参照: Jcode.pm インストール

Apacheのログフォーマットがcombinedであるか確認

# view /var/etc/httpd/conf/httpd.conf


#
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
#
CustomLog logs/access_log combined
        
#← combinedになってますか?

Apacheのアクセスログのパスを確認

この文章では /var/log/httpd/access_log

AWStats をインストールするディレクトリのパスを確認

この文章では /var/www/AWStats

AWStats のインストール

AWStatsをダウンロードします。ダウンロードページのLast stableが最新安定版です。
参照: http://awstats.sourceforge.net/

ダウンロードと圧縮ファイルの解凍を行います。

# cd /usr/local/src/
        
#← ダウンロードするディレクトリに移動
# wget http://keihanna.dl.sourceforge.net/sourceforge/awstats/awstats-6.5.tar.gz


–22:28:58–  http://keihanna.dl.sourceforge.net/sourceforge/awstats/awstats-6.5.tar.gz
           => `awstats-6.5.tar.gz’
keihanna.dl.sourceforge.net をDNSに問いあわせています… 210.146.64.4
keihanna.dl.sourceforge.net|210.146.64.4|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 1,051,780 (1.0M) [application/x-gzip]

100%[===============================================================>] 1,051,780       1.88M/s

22:28:59 (1.87 MB/s) - `awstats-6.5.tar.gz’ を保存しました [1051780/1051780]

# tar xzvf awstats-6.5.tar.gz
        
#← 圧縮ファイル解凍


awstats-6.5/
awstats-6.5/docs/
    :
awstats-6.5/wwwroot/js/
awstats-6.5/wwwroot/js/awstats_misc_tracker.js

解凍後のディレクトリの中身を確認してみましょう。

# ls -alh awstats-6.5


合計 28K
drwx—— 5 1007 513 4.0K 12月 25 2005 .
drwxr-xr-x 3 root root 4.0K 8月 5 22:33 ..
-rwxr-xr-x 1 1007 513 6.6K 12月 25 2005 README.TXT
drwxr-xr-x 3 1007 513 4.0K 12月 25 2005 docs
drwxr-xr-x 4 1007 513 4.0K 12月 25 2005 tools
drwxr-xr-x 7 1007 513 4.0K 12月 25 2005 wwwroot

awstats-6.5/wwwrootを全てコピー

# cp -r awstats-6.5/wwwroot /var/www/AWStats

インストール完了。

AWStats の設定

設定ファイルをコピーする

# cd /var/www/AWStats/cgi-bin/
        
#← CGIのインストールしたディレクトリに移動
# cp awstats.model.conf awstats.www.makizou.com.conf

設定ファイルを修正し設定を行います。

# vi awstats.www.makizou.com.conf


    :
#LogFile=”/var/log/httpd/mylog.log”
        
#← コメントアウト
LogFile=”/var/log/httpd/access_log”
        
#← Apacheのログファイルのフルパス
    :
LogFormat=1
        
#← 1である事を確認
    :
DirIcons=”/icon”
        
#← アイコンディレクトリのURLを反映した相対パス
    :
#SiteDomain=”"
        
#← コメントアウト
SiteDomain=”www.makizou.com”
        
#← ドメインの名前
    :
#DNSLookup=2
        
#← コメントアウト
DNSLookup=1
        
#← 訪問者のIPアドレス
#0:DNSの逆引きせずは行わず。(最も高速。IPアドレスで表示)
#1:詳細な逆引きを行う。(サーバ負荷がかかります。)
#2:逆引きはDNSサーバにキャッシュされている場合のみ
    :
#DirData=”.”
        
#← コメントアウト
DirData=”/var/www/AWStats/cgi-bin/data”
        
#← 集計データ出力ディレクトリ
    :
#DirIcons=”/icon”
        
#← コメントアウト
DirIcons=”../icon”
        
#← アイコン相対ディレクトリ
    :
#Lang=”auto”
        
#← コメントアウト
Lang=”jp”
        
#← 言語環境

動作チェックをします。

# /usr/local/bin/perl /var/www/AWStats/cgi-bin/awstats.pl -update -config=www.makizou.com


Update for config “/var/www/AWStats/cgi-bin/awstats.www.makizou.com.conf”
With data in log file “/var/log/httpd/access_log”…
Phase 1 : First bypass old records, searching new record…
Searching new records from beginning of log file…
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…
Jumped lines in file: 0
Parsed lines in file: 116
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 116 new qualified records.

以下のURLでブラウザからアクセスでき表示できるか確認。

https://ドメイン名/AWStats/cgi-bin/awstats.pl?config=www.makizou.com

正しく動作したらDirDataで指定したディレクトリ内のファイルを削除しておきます。

どうですか。表示されましたか?
検索文字列が文字化けしていませんでしたか。

AWStats の検索文字の文字化けを解消する

AWStatsが出力するHTMLファイルの文字コードはUTF-8なので、検索語、検索文の統計表示が全てUTF-8で入力されてわけでは文字化けを起こします。その文字化けを解消します。
conv_weblog_to_utf8.pl と言う便利なスクリプトがありますのでこちらをダウンロードして利用します。

参照: http://www.ganaware.jp/viewcvs.cgi/conv_weblog_to_utf8/conv_weblog_to_utf8.pl

ダウンロードと圧縮ファイルの解凍を行います。

# wget http://www.ganaware.jp/viewcvs.cgi/*checkout*/conv_weblog_to_utf8/


conv_weblog_to_utf8.pl?rev=1.6
警告: HTTPはワイルドカードに対応していません。
–00:51:08– http://www.ganaware.jp/viewcvs.cgi/*checkout*/conv_weblog_to_utf8/conv_weblog_to_utf8.pl?rev=1.6
           => `conv_weblog_to_utf8.pl?rev=1.6′
www.ganaware.jp をDNSに問いあわせています… 221.249.35.2
www.ganaware.jp|221.249.35.2|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 特定できません [text/x-perl]

    [ < => ] 2,248 –.–K/s

00:51:22 (178.65 MB/s) - `conv_weblog_to_utf8.pl?rev=1.6′ を保存しました [2248]

# mv conv_weblog_to_utf8.pl\?rev\=1.6 conv_weblog_to_utf8.pl
        
#← ファイル名変更
# chmod 0755 conv_weblog_to_utf8.pl
        
#← パーミッションの変更

このスクリプトにApacheのアクセスログ内の検索文字をUTF-8に変換してもらいます。
変換後のファイル名は分かりやすいように access_log.utf8 とします。

/var/www/AWStats/cgi-bin/conv_weblog_to_utf8.pl < /var/log/httpd/access_log > /tmp/access_log.utf8

UTF-8に変換したログを読み込むように設定ファイルを修正し設定を行います。

# vi awstats.www.makizou.com.conf


    :
#LogFile=”/var/log/httpd/mylog.log”
        
#← コメントアウト
LogFile=”/var/log/httpd/access_log”
        
#← コメントアウト
LogFile=”/tmp/access_log.utf8″
        
#← UTF-8に変換したApacheのログファイルのフルパス

AWStats を毎日動かす

毎時間とか数分おきとか設定は色々と出来るのですが、毎時間見るわけでは無いかと思いますので、ログ・ローテーションのついでに処理をさせたいと思います。

参照: ログ・ローテーションでディスクのダイエット管理

/etc/logrotate.d/httpd を編集します。
※太字の部分を入力。

# vi /etc/logrotate.d/httpd


/var/log/httpd/*log {
    daily
    missingok
    notifempty
    sharedscripts

    prerotate
        /var/www/AWStats/cgi-bin/conv_weblog_to_utf8.pl < /var/log/httpd/access_log > /tmp/access_log.utf8
        /usr/local/bin/perl /var/www/AWStats/cgi-bin/awstats.pl -update -config=www.makizou.com
    endscript

    postrotate
        /bin/kill -USR1 `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

  • カテゴリ:Web開発
  • 公開日:
  • 1つ星2つ星3つ星4つ星5つ星
    Loading ... Loading ...
    ↑ 記事評価をお願いします。

コメント&トラックバック

トラックバック用URL

コメント




使用できるXHTMLタグ <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>