UR建築研究所UR建築研究所boxAC総合計画AC総合計画 face UR Architectural LabboxAC Integrated Planning
headline
corner
■Analog

Webサーバーを立ち上げると、そこへいったいどれくらいのアクセスがあるのか知りたくなると思います。ホームページにアクセスカウンタを貼り付ける方法もありますが、ログアナライザを使うと、例えば日毎のアクセス、曜日別、時間別、月別のアクセス集計とか、アクセスしてきたユーザーのドメイン集計、使用ブラウザ集計、リンク元集計、検索エンジンからリンクしてきた場合の検索キーワード集計など、かなり詳細な統計を見る事ができるようになります。ここではフリーのログアナライザ「Analog」のインストールを紹介します。

■Analogのインストール

この原稿執筆時点でのAnalogの最新バージョンは5.23です。analog-5.23.tar.gzをダウンロードします。

  • コンパイル・インストール

ソースパッケージを展開したディレクトリがそのままインストールディレクトリになるので、コンパイル・インストールはrootで行います。ここでは/usr/local/etc にインストールします。

# cd /usr/local/etc
# tar xvzf analog-5.23.tar.gz
# mv analog-5.23 analog
# cd analog
# make

  • 設定ファイルの用意

設定ファイルはデフォルトでanalog.cfgです。インストールディレクトリ内にanalog.cfgを用意しておきます。以下はサンプルです。

#集計の対象となるファイルを指定します。(注1
LOGFILE /usr/local/apache/logs/access_log
LOGFILE /usr/local/apache/logs/access_log.*

#集計結果を出力するファイルを指定します。
OUTFILE /usr/local/apache/report/index.html

#ホスト情報を記入します。レポートのTOPに表示されます。
HOSTNAME "www.hostname"
HOSTURL "http://www.hostname"

#リクエストレポートで、HTMLなどのテキストファイルのみを解析対象にする。
REQINCLUDE pages

#リクエストレポートで、ページへのリンクを付ける
REQLINKINCLUDE pages

#圧縮されたログファイルを展開するコマンドを指定します。
UNCOMPRESS *.gz,*.Z "gzip -cd"

#IIS系ワームからのアクセスを集計の対象外とする記述
FILEEXCLUDE /system32/*
FILEEXCLUDE /MSADC/*
FILEEXCLUDE /scripts/*
FILEEXCLUDE /default.*

#レポート自体に対するアクセスを集計の対象外とする記述
FILEEXCLUDE /report/*

#レポート中のページ数にカウントする対象を追加指定します。
PAGEINCLUDE *.shtml
PAGEINCLUDE *.php

#逆引き情報をキャッシュしておくファイル名 (注2
DNSFILE dnsfile.txt

#キャッシュファイルから情報を読み込み、ファイルに無いアドレスは追記。
DNS WRITE

#同時に複数のanalogを起動してdnsfileを破壊しない為のロックファイル名
DNSLOCKFILE dnsfile.lock

#4週間以上経過したDNSキャッシュ情報を使用しない設定。
DNSGOODHOURS 672

#一度逆引きに失敗したアドレスを24時間は逆引きしない設定。
DNSBADHOURS 24

#レポートを日本語eucで出力する (注3
LANGFILE lang/jpe.lng

#ステイタスコードレポートOFF(標準でON)
STATUS OFF

#ファイルサイズレポートOFF(標準でON)
SIZE OFF

#ファイルタイプレポートOFF(標準でON)
FILETYPE OFF

#ディレクトリレポートOFF(標準でON)
DIRECTORY OFF

#検索語レポートOFF(標準でON)
SEARCHWORD OFF

#日別レポートON
FULLDAILY ON

注1

集計対象のログファイルを指定します。通常はApache等のメジャーなログファイルの書式は自動で解釈するので、ログファイル名を指定するだけでOKです。また、ログファイルを定期的にローテーションして圧縮している場合、例えば access_log.1.gz access_log.2.gz 等の名前で保存している場合は、それらが含まれるように、ワイルドカードで指定します。

注2

Apacheのログファイルでは通常アクセス元はIPアドレスで記録されます。ホスト名で記録する方法もあったような気がしますが、それだとサーバーのパフォーマンスにも影響するので、あまり一般的では無いようです。で、analogでアクセス元のドメインレポートを表示させるにはログファイルのIPアドレスを逆引きしていかなければいけませんが、レポートを作成する度にすべてのアドレスを逆引きしなくても済むように、一度逆引きしたアドレスを記録しておくキャッシュファイル名を指定する事ができます。

注3

レポートを日本語で出力する為の記述です。上記の記述だとeucで出力されますが、langディレクトリ内には他のlngファイルがあり、JISやShift_JISの指定もできます。
また、LANGAGE JAPANESE とする方法もあります。

  • その他の設定

レポートを出力するディレクトリの作成

# mkdir /usr/local/apahce/report/

次の記述をhttpd.confに追加します。

Alias /report/ /usr/local/apache/report/

Apacheを再起動します。

# /usr/local/apache/bin/apachectl restart

Analogのイメージディレクトリをコピーしておきます。

# cd /usr/local/etc/analog/
# cp -R images /usr/local/apache/report/

レポートを出力します。

# cd /usr/local/etc/analog
# ./analog

ブラウザからhttp://www.hostname/report/を開いてアクセスレポートが表示されればOKです。あとは日に1回更新するとして、/etc/crontab に設定を記述します。

0  5  *  *  *  root /usr/local/etc/analog/analog

日本アナログユーザー会のページに、レポートのサンプルがあります。

■関連リンク