作成日:2001年03月08日、更新日:2004年04月05日 作成:鷹の巣

AN HTTPDのクライアント機用アクセス解析ソフトとして、AWstatsを使用した設定例を説明します。


AN HTTPD用アクセス解析ソフト(AWstats)設定例前編

このページでは、Windows用のWebサーバーであるAN HTTPDに特化したオフラインでのアクセス解析ソフトの設定例を示します。アクセス解析ソフトには、AWstatsを使用しました。AWstatsを使用したApacheの設定方法や一般的な設定方法でしたら、LinuxとフレッツISDN/フレッツADSL/BフレッツによるInternet Serverの構築AWStats Ver.5.0完全日本語版のページをご参照願います。
このサイトのログ解析スクリプトAWStatsドキュメントには、 の文書が日本語化されており、アクセス解析ソフトのダウンロード以外は、上記のサイトを読むだけで、全て設置が出来ます
尚、このWebページのオフラインでのアクセス解析ソフトの設定例は、以下の環境で動作の確認を行いました。

設定の方針は、

  1. 日本語化にあたっては、日本語ロケール(locale)ファイルをそのまま使用し、Perlスクリプトの改造は行なわない

  2. Windows環境で作業を行なうが、文字化け防止のため、ログファイルと生成するHTMLファィルは、全てUTF-8コードに変換して作業を行なう。

  3. Perlのバージョンは、5.8以降を採用するが、Perl5.8のEncodeモジュール(標準モジュール)には、現時点では多少問題があるので、UTF-8コード変換可能なjcode.pmモジュールを使用する。

  4. ログ解析スクリプトAWStats 6.0のawstats.plが504Kbyteもあるので、サーバー機上での定周期実行は行なわない
    (DiCEを利用して、perl awstats.pl -config=www.example.com -lang=jp -updateを定周期実行すると簡単に速報値になりますけど。)

  5. クライアント機にインストールして、アクセス解析ソフトを約1ヶ月程度以上の周期で行なう。(メモリを節約したPerlスクリプトは使用せず、処理速度優先の自作Perlスクリプトを使用する。)

  6. アクセス解析ソフト結果は、静的なHTMLファイルを作成する。(非公開が原則ですが、サーバー機に転送して公開することも考慮。)

  7. クライアント機にインストールするので、セキュリティ上の心配はない。従って、フォルダ(ディレクトリ)の配置は、ダウンロードしたままの配置とする。また、定数ファイルのファイル名を変更したりはしない。(例.awstats.confのファイル名をawstats.conf.cgiに変更しない。)

  8. AN HTTPDログファイルは、NCSA 共通ログファイル形式(NCSA Common Log Format)です。AWStatsでは、通常、LogFormat=4を選択し、2003年1月のアクセス解析のようになって、RefererとUser Agentのデータは無視されます。この状態でもかまわないのであれば、AN HTTPD用refererファイル解析Perlスクリプト(jcode.pm や Encode モジュール使用)を併用することになります。(私が今まで行なっていた方法です。)

  9. RefererとUser Agentのデータも解析するのであれば、あらかじめ、AN HTTPD専用ログファイル変換Perlスクリプト(jcode.pmを使用)を使用して、ログ形式をApacheなどが標準で使用しているcombined log format (NCSA combined/XLF/ELF log format)に変換します。AWStatsでは、LogFormat=1を選択し、2003年2月のアクセス解析のようになり、RefererとUser Agentのデータも利用されます。(今回の設定例の公開に合わせて、急造しました。)

  10. データの安全性を上げるため、システムドライブ(Cドライブ)以外にログ解析スクリプトを設置する。

  11. 私の場合、ログファイルのアクセス元をIPアドレスで記録している為、一月分まとめて、ホスト名に変換しています。この処理に長時間(一月分のデータあたり4時間以上)を要しますので、一連の動作を全て一回の起動操作だけで行なうこととする。

という相当クセのある設定となっています。

目次

  1. はじめに
  2. インストール
  3. フォルダの配置例
  4. ロケール(awstats-jp.txt)ファイルの確認
  5. アクセス解析ソフトスクリプト用設定ファイルの編集
  6. ログファイル整形スクリプトファイル(combined.pl)の処理内容
  7. [後編]HTML作成用バッチファイルの編集
  8. [後編]HTMLファイルの作成
  9. [後編]その他

1. はじめに

私はAWstatsを使用し、2001年のアクセス解析を静的なHTMLファイルにして、2001年のアクセス解析を作成していました。しかし、この時点で使用していたAdvanced Web Statistics 3.2 (build 84)のバージョンでは、このHTMLファイル内のアンカー(ハイパーリンク)がCGIを利用するようになっていました。従って、アンカーを一々編集して訂正していました。現在のバージョンでは、アンカーも全てHTMLファイルを使用するようになっていますので、ほとんど手間がかからなくなり、嬉しい限りです。

インターネットで検索しても、AWstatsを使用したAN HTTPDのアクセス解析の設定例がなかったので、ここに設定方法を書くことにしました。

AWstatsのインストール前にPerlの実行環境とUTF-8コードの変換可能なjcode.pmモジュールが必要となりますので、あらかじめインストールして下さい。

  1. AWstatsのアクセス解析は、Perlスクリプトです。事前にActive Perl(5.8以降を推奨)をインストールしておいて下さい。インストールされていない方は、「Windows用CGI(Common Gateway Interface)設定方法の解説サイトリンク集」をご参照願います。

  2. AWStats - Free log file analyzer for advanced web statistics (GNU GPL).のサイトでも紹介されていますが、Perlは、5.8以降を使用すると処理速度が15%程度向上するようです。ただし、日本語のコード変換に使用するPerl5.8のEncodeモジュールには、現時点では多少問題がありますので、jcode.pmモジュールを必ずインストールして下さい。鷹の巣が作成した現在のPerlスクリプトでは、jcode.pmモジュールを使用しています。(参考:「Windows用Jcode.pmのインストール方法」)

2. インストール

  1. 以下の作業は、全てWindowsクライアント機での作業です。サーバー機からログファイルをダウンロードしたり、ログ解析結果として作成されたHTMLファイルをサーバー機にアップロードする場合を除いて、サーバー機は全く関係ありません。

  2. AWStats - Free log file analyzer for advanced web statistics (GNU GPL).のDownloadの項より、awstats-XX.zipかawstats-XX.exeかawstats-X.X.tgz(XXは、Version)のいずれかをダウンロードし、解凍します。(2004年4月の時点では、安定版のバージョンは、6.0です。)

  3. 解凍しますと、awstatsX.Xというフォルダができますので、これをawstatsというフォルダ名に変更し、本例では、D:\www\editのフォルダの下に移動します。Dドライブがない場合は、Cドライブでも構いませんが、最初は、このフォルダにインストールして下さい。レジストリなどは、使用していませんので、フォルダを変更する場合は、一旦設置と動作確認ができてから、フォルダを変更するようにして下さい

  4. D:\www\edit\awstats\tool\awstats_buildstaticpages.pl
    D:\www\edit\awstats\wwwroot\cgi-bin\awstats_buildstaticpages.plにコピー(移動でも可)します。

  5. 以下の説明では、貴方のサイトのWebサーバーのホスト名(FQDN表記)を「www.example.com」として説明しています。この部分だけは、全て自サイトのWebサーバーのホスト名(FQDN表記)に読み替えて下さい。例えば、URLがhttp://subdomain.example.jp/で、ホームページ(トップページ)が表示される場合は、「www.example.com」の部分は、「subdomain.example.jp」と読み替えることになります。

  6. D:\www\edit\awstats\wwwroot\cgi-bin\awstats.model.conf
    D:\www\edit\awstats\wwwroot\cgi-bin\awstats.www.example.com.confにコピーします。このコピー先ファイルは編集しますので、「読み取り専用」となっている属性を解除して下さい。(エクスプローラで、このファイル名を右クリックして、プロバティを選択し、「読み取り専用」のチェックを外します。)後述するメモ帳++で、読み込んで、名前をつけて保存としても良いです。

  7. D:\www\edit\awstats\wwwroot\iconのアイコンフォルダを
    D:\www\edit\awstats\wwwroot\img\awstatsにコピー(移動でも可)します。これは、サーバー機のフォルダ配置環境に合わせるためです。
    サーバー機のアイコンのURLは、http://www.example.com/img/awstats/browser/mozilla.pngとなることを想定しています。

  8. D:\www\edit\awstats\wwwroot\logというフォルダを作成します。これは、サーバー機のフォルダ配置環境に合わせるためです。
    サーバー機のアクセス解析結果表示のURLは、http://www.example.com/log/2003/2003XX.htmlとなることを想定しています。
    (年度別フォルダ2003は、自動作成されるようにしています。)

  9. 鷹の巣が作成したスクリプトのAWS_takanosu1102.lzh(11Kbyte)をダウンロードして解凍し、
    D:\www\edit\awstats\wwwroot\cgi-binフォルダ内に
    combined.pllinkreplace.plmakeuphtml.batを設置します。

  10. 以上でインストールは、完了しました。次項のフォルダ配置例のようになっていることを確認して下さい。

3. フォルダの配置例

このページでは、下表に示します様なフォルダの配置で説明します。最初は、このフォルダ配置と同じにしてインストールして下さい。各フォルダには、ファイルが複数ありますので、代表的なものを1つだけ書いています。レジストリなどは、使用していませんので、設置フォルダを変更する場合は、一旦設置と動作確認ができてから、フォルダを変更するようにして下さい

AWstatsログ解析用フォルダ配置例(Windowsクライアント専用)
番号 WebページのURL(URI) 主たるファイルのローカルパス
1 (クライアント機のAN HTTPDのログファイルのフォルダ) D:\www\log\httpd.yyyymmdd.log
2 Active Perl5.8をD:\Perlにインストール) D:\Perl\bin\perl.exe
3 AWstatsを展開したフォルダ D:\www\edit\awstats
4 ログファイルのIPアドレスをホスト名に変換するツール(未使用) D:\www\edit\awstats\tool\logresolvemerge.pl
5 HTMLファイルを作成するツール D:\www\edit\awstats\tool\awstats_buildstaticpages.pl
6 アクセス解析ソフトスクリプト本体 D:\www\edit\awstats\wwwroot\cgi-bin\awstats.pl
7 アクセス解析ソフトスクリプト用設定ファイル初期データ D:\www\edit\awstats\wwwroot\cgi-bin\awstats.model.conf
8 アクセス解析ソフトスクリプト用設定ファイル編集データ
(上記7の初期データを編集して名前を付けて保存します。)
D:\www\edit\awstats\wwwroot\cgi-bin\
awstats.www.example.com.conf
9 AN HTTPD用ログファイル整形スクリプトファイル(combined.pl) D:\www\edit\awstats\wwwroot\cgi-bin\combined.pl
10 上記5のHTMLファイルを作成するツールをコピーする。 D:\www\edit\awstats\wwwroot\cgi-bin\awstats_buildstaticpages.pl
11 AWstats専用アクセス解析HTMLファイル名変更Perlスクリプト D:\www\edit\awstats\wwwroot\cgi-bin\linkreplace.pl
12 HTML作成用バッチファイル(鷹の巣が作成) D:\www\edit\awstats\wwwroot\cgi-bin\makeuphtml.bat
13 日本語化ロケールファイル(1箇所だけ変更します。) D:\www\edit\awstats\wwwroot\cgi-bin\lang\awstats-jp.txt
14 インストールした直後のアイコン用フォルダ(未使用) D:\www\edit\awstats\wwwroot\icon\browser\mozilla.png
15 生成後のHTMLファイル(サーバー機のフォルダ構成に合わせます。) D:\www\edit\awstats\wwwroot\log\2003\2003XX.html
16 生成するHTMLファイルに使用するアイコン用フォルダ(同上。) D:\www\edit\awstats\wwwroot\img\awstats\browser\mozilla.png
17 http://www.example.com/log/2003/200301.html D:\www\public_html\log\2003\200301.html
18 http://www.example.com/img/awstats/browser/mozilla.png D:\www\public_html\img\awstats\browser\mozilla.png
番号)
  1. AN HTTPDのログファイルのフォルダを示します。ファイル名は、毎日変わるものとします。
  2. Active Perlをインストール後のPerl本体のファイルを示しています。(基本的にパスが通っていれば、どこでも良いです。)
    Active Perlは、5.8以降を使用すると処理速度が15%程度向上するようです。ただし、日本語のコード変換に使用するPerl5.8のEncodeモジュールには、多少問題がありますので、jcode.pmも必ずインストールして下さい。
  3. ダウンロードして解凍したフォルダの設置先を示しています。
  4. ログファイルのIPアドレスをホスト名に変換するメモリ節約形のツールです。変換速度が遅いので使用しませんが、WebサーバーのIISのログファイルの変換などでは使用する価値があります。
  5. HTMLファイル作成ツール本体です。クライアント機ですから、このツールは、設定を変更せずにコピーして使用します。
  6. AWstatsのアクセス解析ソフトスクリプト本体示しています。CGIとして、Webサーバーから実行することも出来ます。
    httpのドキュメントルート(一般パスのルート)は、D:\www\public_htmlフォルダになります。
  7. アクセス解析ソフトスクリプト用設定ファイル初期データです。コピーして使用します。
  8. Webサーバーのホスト名単位に使用するアクセス解析ソフトスクリプト用設定ファイルです。必ず1つは、作成しなければなりません。
  9. AN HTTPD用のログファイル整形スクリプトファイル(combined.pl)です。
    AN HTTPDのログファイルのIPアドレスをホスト名に変換したり、combined log formatに変換するツールです。(鷹の巣が作成)
  10. HTMLファイル作成ツール本体をコピーして設置します。
  11. HTMLファイル名を変更するPerlスクリプトです。生成されたHTMLファイル名を変更し、HTMLファイル内のアンカー先も変更するツールです。(鷹の巣が作成)このスクリプトは、Windows95などのシェルコマンドでファイル内の文字列置換をする方法が解らなかったので、作成しました。
  12. 一連の操作手順をシェルコマンドで書いたものです。このバッチコマンドを実行するのに必要な引数は、処理する年データと月データの2つです。
  13. 日本語で使用するためのファイルです。1箇所だけ変更します。
  14. インストールした直後のアイコン用フォルダの位置の1つを示しています。(未使用ですが確認用に記載しています。)
  15. 生成後のHTMLファイルを格納するフォルダです。2003年1月のデータは、このフォルダの下に2003というフォルダが作成され、その中にHTMLファイルが生成されます。最初は、logというフォルダだけを作っておきます。
  16. 生成するHTMLファイルが使用するアイコン用フォルダです。サーバー機のフォルダ構成に合わせます。このアイコン用フォルダは、項14のアイコン用フォルダを移動かコピーして作成します。
  17. サーバー機のURLのHTMLファイルのイメージを示しているだけです。(クライアント機では、全く関係ありません。)
    D:\www\edit\awstats\wwwrootというフォルダがサーバー機のhttpdドキュメントルートになると想定しています。
  18. サーバー機のURLのHTMLファイルのアイコンのイメージを示しているだけです。(同上。)

4. ロケール(awstats-jp.txt)ファイルの確認

  1. AWStats Ver.5.5以降では、日本語の文字コードがUTF-8コードになっています。
    D:\www\edit\awstats\wwwroot\cgi-bin\lang\awstats-jp.txtファイルはそのまま編集せずに使用します。属性が「読み取り専用」になっています。

  2. 日本語の文字化けを防止するために文字コードは、全てUTF-8コードのまま使用します。TeraPadを起動し、
    D:\www\edit\awstats\wwwroot\cgi-bin\lang\awstats-jp.txtを読み込みますと、下図に示しますようにUTF-8/LFコードで表示されています。PageCode=UTF-8と記載されていることを確認します。

    ロケールファイルの読み込み

5. アクセス解析ソフトスクリプト用設定ファイルの編集

  1. 自ドメインをwww.example.comとしますと、アクセス解析ソフトスクリプト用設定ファイル初期データ(D:\www\edit\awstats\wwwroot\cgi-bin\awstats.model.conf)をメモ帳++で開いて、「名前を付けて保存(A)」します。ファイル名は、awstats.www.example.com.confとします。これは、決まりごとですから、必ずそのようにして下さい。

  2. AWStatsのインストール / セットアップ / 利用に記載されているように設定します。設定変更箇所は、「LogFile」と「LogFormat」と「SiteDomain」と「HostAliases」と「DirIcons」です。設定例を以下に示します。今回は、コマンドライン上から、「LogFile」のフォルダ(ディレクトリ)の位置を指定するので、設定は、必須ではありません。以下に設定例を示しますので、いずれかに設定して下さい。

  3. RefererとUser Agentのログファィルデータも利用する場合の設定例

    # AWSTATS CONFIGURE FILE 5.5
    # $Revision: 1.188 $ - $Author: eldy $ - $Date: 2003/05/11 19:57:35 $
    
    #-----------------------------------------------------------------------------
    # MAIN SETUP SECTION (Required to make AWStats work)
    #-----------------------------------------------------------------------------
    LogFile="/var/log/apache/access.log" <--- ファイル名はコマンドラインから指定するので、このまま使用します。
    LogFormat=1 <--- そのままにして、AN HTTPDのログファイルをcombined log format (NCSA combined/XLF/ELF log format)に変換して使用します。
    LogSeparator=" "
    SiteDomain="www.example.com" <--- 解析する自ドメイン名を必ず設定します。
    HostAliases="www.example.com localhost 127.0.0.1 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5"
                  <--- ルータのプライベートアドレスも忘れずに設定します。
    DNSLookup=2 <--- ログファイルのアクセス元にホスト名が記録されている場合は、0にするとupdate時間が短くなります。
    DirData="."
    DirCgi="/cgi-bin"
    DirIcons="../../img/awstats" <--- 生成されるHTMLファイルから見たアイコンのフォルダ(ディレクトリ)を相対パスで必ず指定します。
    AllowToUpdateStatsFromBrowser=0
    
    #-----------------------------------------------------------------------------
    # OPTIONAL SETUP SECTION (Not required but increase AWStats features)
    #-----------------------------------------------------------------------------
    ・・・中略・・・
    #-----------------------------------------------------------------------------
    # OPTIONAL APPEARANCE SETUP SECTION (Not required but increase AWStats features)
    #-----------------------------------------------------------------------------
    UseFramesWhenCGI=0
    DetailedReportsOnNewWindows=1
    Expires=0
    MaxRowsInHTMLOutput=1000
    Lang="auto" <--- そのままでも構いません。日本語ロケールファイルを指定する場合は、jpと設定します。
    DirLang="./lang"
    
    ・・・以下省略・・・
    
  4. RefererとUser Agentのログファィルデータを利用しない場合の設定例

    AN HTTPDのログファイル(httpd.yyyymmdd.log)をそのまま使用します。AN HTTPDのログファイルは、NCSA 共通ログファイル形式(NCSA Common Log Format)ですから、上記の項cの設定で、LogFormat=4とします。

  5. 下図は、サーバー機のAN HTTPDの「ログ」タブの設定例です。このWebページで説明していますクライアント機の設定ではありませんので注意して下さい。RefererとUser Agentのログファィルデータも利用する場合は、「参照先」と「ユーザエージェント」にチェックを入れておく必要があります。
    このWebページでは、クライアント機のログファイルの位置をD:\www\log\httpd.yyyymmdd.logとしていますので、サーバー機から、ダウンロードしたログファイルは、クライアント機のD:\www\logというフォルダにコピーすることになります。
    オプション/一般設定のログタブ1の設定図(全体)

6. ログファイル整形スクリプトファイル(combined.pl)の処理内容

鷹の巣が作成したログファイル整形スクリプトファイル(combined.pl)とAWstats専用アクセス解析HTMLファイル名変更Perlスクリプト(linkreplace.pl)は、そのまま使用します。

ログファイル整形スクリプトファイルは、AN HTTPDのログファイルのIPアドレスをホスト名に変換したり、combined log formatに変換したり、漢字コードをUTF-8に変換するツールです。アクセスしたIPアドレスやリンク元のURLがプライベートアドレスであった場合は、その記録行を破棄します。プライベートアドレスの内容も処理する場合は、このスクリプト内の設定を変更して下さい。

目次▲頁先頭