|目次|手順 0|1|2|3|A|B|C|D|E|F|G|H| I |J|K|L|M|N|O|P|Q|
作成日:2001年03月08日、更新日:2004年04月05日 作成:鷹の巣AN HTTPDのクライアント機用アクセス解析ソフトとして、AWstatsを使用した設定例を説明します。
設定の方針は、
日本語化にあたっては、日本語ロケール(locale)ファイルをそのまま使用し、Perlスクリプトの改造は行なわない。
Windows環境で作業を行なうが、文字化け防止のため、ログファイルと生成するHTMLファィルは、全てUTF-8コードに変換して作業を行なう。
Perlのバージョンは、5.8以降を採用するが、Perl5.8のEncodeモジュール(標準モジュール)には、現時点では多少問題があるので、UTF-8コード変換可能なjcode.pmモジュールを使用する。
ログ解析スクリプトAWStats 6.0のawstats.plが504Kbyteもあるので、サーバー機上での定周期実行は行なわない。
(DiCEを利用して、perl awstats.pl -config=www.example.com -lang=jp -updateを定周期実行すると簡単に速報値になりますけど。)
クライアント機にインストールして、アクセス解析ソフトを約1ヶ月程度以上の周期で行なう。(メモリを節約したPerlスクリプトは使用せず、処理速度優先の自作Perlスクリプトを使用する。)
アクセス解析ソフト結果は、静的なHTMLファイルを作成する。(非公開が原則ですが、サーバー機に転送して公開することも考慮。)
クライアント機にインストールするので、セキュリティ上の心配はない。従って、フォルダ(ディレクトリ)の配置は、ダウンロードしたままの配置とする。また、定数ファイルのファイル名を変更したりはしない。(例.awstats.confのファイル名をawstats.conf.cgiに変更しない。)
AN HTTPDログファイルは、NCSA 共通ログファイル形式(NCSA Common Log Format)です。AWStatsでは、通常、LogFormat=4を選択し、2003年1月のアクセス解析のようになって、RefererとUser Agentのデータは無視されます。この状態でもかまわないのであれば、AN HTTPD用refererファイル解析Perlスクリプト(jcode.pm や Encode モジュール使用)を併用することになります。(私が今まで行なっていた方法です。)
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のデータも利用されます。(今回の設定例の公開に合わせて、急造しました。)
データの安全性を上げるため、システムドライブ(Cドライブ)以外にログ解析スクリプトを設置する。
私の場合、ログファイルのアクセス元をIPアドレスで記録している為、一月分まとめて、ホスト名に変換しています。この処理に長時間(一月分のデータあたり4時間以上)を要しますので、一連の動作を全て一回の起動操作だけで行なうこととする。
目次
私はAWstatsを使用し、2001年のアクセス解析を静的なHTMLファイルにして、2001年のアクセス解析を作成していました。しかし、この時点で使用していたAdvanced Web Statistics 3.2 (build 84)のバージョンでは、このHTMLファイル内のアンカー(ハイパーリンク)がCGIを利用するようになっていました。従って、アンカーを一々編集して訂正していました。現在のバージョンでは、アンカーも全てHTMLファイルを使用するようになっていますので、ほとんど手間がかからなくなり、嬉しい限りです。
インターネットで検索しても、AWstatsを使用したAN HTTPDのアクセス解析の設定例がなかったので、ここに設定方法を書くことにしました。
AWstatsのインストール前にPerlの実行環境とUTF-8コードの変換可能なjcode.pmモジュールが必要となりますので、あらかじめインストールして下さい。
AWstatsのアクセス解析は、Perlスクリプトです。事前にActive Perl(5.8以降を推奨)をインストールしておいて下さい。インストールされていない方は、「Windows用CGI(Common Gateway Interface)設定方法の解説サイトリンク集」をご参照願います。
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のインストール方法」)
以下の作業は、全てWindowsクライアント機での作業です。サーバー機からログファイルをダウンロードしたり、ログ解析結果として作成されたHTMLファイルをサーバー機にアップロードする場合を除いて、サーバー機は全く関係ありません。
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です。)
解凍しますと、awstatsX.Xというフォルダができますので、これをawstatsというフォルダ名に変更し、本例では、D:\www\editのフォルダの下に移動します。Dドライブがない場合は、Cドライブでも構いませんが、最初は、このフォルダにインストールして下さい。レジストリなどは、使用していませんので、フォルダを変更する場合は、一旦設置と動作確認ができてから、フォルダを変更するようにして下さい。
D:\www\edit\awstats\tool\awstats_buildstaticpages.plを
D:\www\edit\awstats\wwwroot\cgi-bin\awstats_buildstaticpages.plにコピー(移動でも可)します。
以下の説明では、貴方のサイトのWebサーバーのホスト名(FQDN表記)を「www.example.com」として説明しています。この部分だけは、全て自サイトのWebサーバーのホスト名(FQDN表記)に読み替えて下さい。例えば、URLがhttp://subdomain.example.jp/で、ホームページ(トップページ)が表示される場合は、「www.example.com」の部分は、「subdomain.example.jp」と読み替えることになります。
D:\www\edit\awstats\wwwroot\cgi-bin\awstats.model.confを
D:\www\edit\awstats\wwwroot\cgi-bin\awstats.www.example.com.confにコピーします。このコピー先ファイルは編集しますので、「読み取り専用」となっている属性を解除して下さい。(エクスプローラで、このファイル名を右クリックして、プロバティを選択し、「読み取り専用」のチェックを外します。)後述するメモ帳++で、読み込んで、名前をつけて保存としても良いです。
D:\www\edit\awstats\wwwroot\iconのアイコンフォルダを
D:\www\edit\awstats\wwwroot\img\awstatsにコピー(移動でも可)します。これは、サーバー機のフォルダ配置環境に合わせるためです。
サーバー機のアイコンのURLは、http://www.example.com/img/awstats/browser/mozilla.pngとなることを想定しています。
D:\www\edit\awstats\wwwroot\logというフォルダを作成します。これは、サーバー機のフォルダ配置環境に合わせるためです。
サーバー機のアクセス解析結果表示のURLは、http://www.example.com/log/2003/2003XX.htmlとなることを想定しています。
(年度別フォルダ2003は、自動作成されるようにしています。)
鷹の巣が作成したスクリプトのAWS_takanosu1102.lzh(11Kbyte)をダウンロードして解凍し、
D:\www\edit\awstats\wwwroot\cgi-binフォルダ内に
combined.plとlinkreplace.plとmakeuphtml.batを設置します。
以上でインストールは、完了しました。次項のフォルダ配置例のようになっていることを確認して下さい。
このページでは、下表に示します様なフォルダの配置で説明します。最初は、このフォルダ配置と同じにしてインストールして下さい。各フォルダには、ファイルが複数ありますので、代表的なものを1つだけ書いています。レジストリなどは、使用していませんので、設置フォルダを変更する場合は、一旦設置と動作確認ができてから、フォルダを変更するようにして下さい。
| 番号 | 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 |
AWStats Ver.5.5以降では、日本語の文字コードがUTF-8コードになっています。
D:\www\edit\awstats\wwwroot\cgi-bin\lang\awstats-jp.txtファイルはそのまま編集せずに使用します。属性が「読み取り専用」になっています。
日本語の文字化けを防止するために文字コードは、全てUTF-8コードのまま使用します。TeraPadを起動し、
D:\www\edit\awstats\wwwroot\cgi-bin\lang\awstats-jp.txtを読み込みますと、下図に示しますようにUTF-8/LFコードで表示されています。PageCode=UTF-8と記載されていることを確認します。

自ドメインをwww.example.comとしますと、アクセス解析ソフトスクリプト用設定ファイル初期データ(D:\www\edit\awstats\wwwroot\cgi-bin\awstats.model.conf)をメモ帳++で開いて、「名前を付けて保存(A)」します。ファイル名は、awstats.www.example.com.confとします。これは、決まりごとですから、必ずそのようにして下さい。
AWStatsのインストール / セットアップ / 利用に記載されているように設定します。設定変更箇所は、「LogFile」と「LogFormat」と「SiteDomain」と「HostAliases」と「DirIcons」です。設定例を以下に示します。今回は、コマンドライン上から、「LogFile」のフォルダ(ディレクトリ)の位置を指定するので、設定は、必須ではありません。以下に設定例を示しますので、いずれかに設定して下さい。
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" ・・・以下省略・・・
RefererとUser Agentのログファィルデータを利用しない場合の設定例
AN HTTPDのログファイル(httpd.yyyymmdd.log)をそのまま使用します。AN HTTPDのログファイルは、NCSA 共通ログファイル形式(NCSA Common Log Format)ですから、上記の項cの設定で、LogFormat=4とします。
下図は、サーバー機のAN HTTPDの「ログ」タブの設定例です。このWebページで説明していますクライアント機の設定ではありませんので注意して下さい。RefererとUser
Agentのログファィルデータも利用する場合は、「参照先」と「ユーザエージェント」にチェックを入れておく必要があります。
このWebページでは、クライアント機のログファイルの位置をD:\www\log\httpd.yyyymmdd.logとしていますので、サーバー機から、ダウンロードしたログファイルは、クライアント機のD:\www\logというフォルダにコピーすることになります。
鷹の巣が作成したログファイル整形スクリプトファイル(combined.pl)とAWstats専用アクセス解析HTMLファイル名変更Perlスクリプト(linkreplace.pl)は、そのまま使用します。
ログファイル整形スクリプトファイルは、AN HTTPDのログファイルのIPアドレスをホスト名に変換したり、combined log formatに変換したり、漢字コードをUTF-8に変換するツールです。アクセスしたIPアドレスやリンク元のURLがプライベートアドレスであった場合は、その記録行を破棄します。プライベートアドレスの内容も処理する場合は、このスクリプト内の設定を変更して下さい。
|| 次 頁 |