| ログ解析スクリプトAWStats 7.8ドキュメント |

# エクストラセクション機能により追加レポートを作成する

AWStatsエクストラセクション機能は、AWStatsがデフォルトで提供しなかった、個別のレポートを利用できるようにする強力なセットアップオプションです。特別なレポートを造るのに使用できます。たとえば、特定の製品の販売数、特定のユーザかエージェントの数のようなマーケティングレポートのように。

## 構成ファイルに追加レポートを追加・編集する方法

AWStats構成ファイルの中で、以下の部分を見つけてください:

    #-----------------------------------------------------------------------------
    # エクストラセクション
    #-----------------------------------------------------------------------------

この後の構成ファイルの説明が読まれると、ExtraSection構成を構成ファイルに加えて追加レポートを得る方法がわかります。同じものがエクストラセクションに掲載されています。

次の例は貴重なチュートリアルです…

## 個別の追加レポートを得るためのエクストラセクションのセットアップのためのいくつかの例

- 例1: 製品注文の追跡
- 例2: Bugzillaを追跡して最も頻繁に参照されたバグをみつける
- 例3: Exitクリックを追跡
- 例4: 中止したダウンロードの追跡
- 例5: 一番要求されたドメイン別名の追跡
- 例6: ディレクトリ/mydirの下のトップレベル2経路のリスト

### 例1: 製品注文の追跡

ウェブサイトは80個の異なった製品を販売する電子店舗としましょう。それぞれにはidがあります。だれかが製品49を注文するたびに、order.cgiかorder2.cgiスクリプトが起動され、URLクエリパラメタに、製品のidがあると想像してください。つまりログファイルで次のようなヒットがあることになります:

GET /cgi-bin/order.cgi?productid=49&session=A0B1C2

これが、製品注文の追跡するようにエクストラセクションにセットアップする必要がある内容です。

ExtraSectionName1="Product orders"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="URL,\/cgi\-bin\/order\.cgi|URL,\/cgi\-bin\/order2\.cgi"
ExtraSectionFirstColumnTitle1="Product ID"
ExtraSectionFirstColumnValues1="QUERY_STRING,productid=([^&]+)"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=PL
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=1
MaxNbOfExtra1=100
MinHitExtra1=1

### 例2: Bugzillaを追跡して最も頻繁に参照されたバグをみつける

これがエクストラセクションのセットアップ例です

ExtraSectionName1="Bugzilla: Most frequently viewed bugs"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="URL,\/bugzilla\/show_bug\.cgi"
ExtraSectionFirstColumnTitle1="Bug ID"
ExtraSectionFirstColumnValues1="QUERY_STRING,id=([^&]+)"
ExtraSectionFirstColumnFormat1="<a href='/bugzilla/show_bug.cgi?id=%s' target=new>%s</a>"
ExtraSectionStatTypes1=PL
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=1
MaxNbOfExtra1=500
MinHitExtra1=1

### 例3: Exitクリックを追跡

AWStatsは標準で「最後に閲覧」ページの統計を取っています。しかしながら、自分のサイトのページで、外部のリンクをクリックして、自分のサイトにないどこのページに行ったかは分かりません。これを追跡したいなら、エクストラセクションと(AWStatsの提供する)awredir.plツールを使用することです。このツールはCGIwrapperとして動作します。'A HREF'リンクから呼ばれると、必要なページを見せるようにリダイレクタをブラウザに返します。このスクリプトを使用するために、外部のウェブサイトを指すHTML hrefタグを取り替えなければなりません。

<a href="http://externalsite/pagelinked">Link</a>
から
<a href="http://yoursite/cgi-bin/awredir.pl?url=http://externalsite/pagelinked">Link</a>
に変更します。

ウェブ訪問者にとっては違いは全くありません。しかしながら、これで、リンクで外部のウェブサイトに移動するクリックを追跡できます。サーバログに次のようなエントリーが記録されるので:

80.1.2.3 - - [01/Jan/2001:16:00:00 -0300] "GET /cgi-bin/awredir.pl?url=http://externalsite/pagelinked HTTP/1.1" 302 70476 "http://yoursite/pagewithlink.html" "FireBird/0.7"

そして、「url=」パラメタから見出したキーとともにawredir.plのすべての呼び出しをに追跡するチャートをAWStatsに加えることができます。これによって自分のサイトを出た後に訪問者が見たすべての外部ページの統計が手に入ります。
このチャートのために、エクストラセクションをどのようにセットアップしなければならないかを示します:

ExtraSectionName1="Redirected Hit"
ExtraSectionCodeFilter1="302"
ExtraSectionCondition1="URL,\/cgi\-bin\/awredir\.pl"
ExtraSectionFirstColumnTitle1="Url"
ExtraSectionFirstColumnValues1="QUERY_STRING,url=([^&]+)"
ExtraSectionStatTypes1=HL
MaxNbOfExtra1=500
MinHitExtra1=1
ExtraSectionAddSumRow1=1

### 例4: 中止したダウンロードの追跡

中止したダウンロードはログファイルに206エラーで報告されるので、その追跡のチャートを加えるようにエクストラセクションをセットアップする方法を示しています:

ExtraSectionName1="List of aborted download"
ExtraSectionCodeFilter1="206"
ExtraSectionCondition1=""
ExtraSectionFirstColumnTitle1="URL"
ExtraSectionFirstColumnValues1="URL,(.*)"
ExtraSectionStatTypes1=PHB
MaxNbOfExtra1=100
MinHitExtra1=1

### 例5: 一番要求されたドメイン別名の追跡

1つのウェブサイトがあり、このウェブサイトで、いくつかのドメイン名を持っていることがあります(例えば、同じサイトdomain.comにdomain.com, www.domain.com、www.otherdomainname.com、www.againadomainname.org…といったいくつかのurlで到達することができます。)どのドメイン別名が最も使用されているかを知りたいとします。

まず最初に、ドメイン別名がログファイルに記録されているのを確認します。Apacheを使用しているのなら、%Vタグを含むカスタマイズされたApacheログファイルを使用していなければなりません。例えば、Apache httpd.confファイルで新しいApacheログ書式を加えることができます(これはAWStatsではなく、バーチャル・ドメインを含むアパッチログ書式を定義するためにはApacheディレクティブです。):

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %V" combinedv

次に、Apache CustomLogディレクティブが下記ように定義されるのを確認してください:

CustomLog pathtoyourlog/yourlog.log combinedv

Apacheを再開した後にログ形式はこのようになるべきです。

66.130.77.181 - - [09/Aug/2004:03:01:05 +0200] "GET /index.php HTTP/1.1" 200 1473 "-" "Firefox 1.0" www.otherdomainname.com

ウェブサーバーログファイルがドメイン別名を含んでいれば、使用するようにAWStatsにセットアップできます。これには、カスタマイズされたAWStatsログ書式と%extra1タグをドメイン別名があるのと同じ位置に使用してください。例えば、combinedv Apacheログ形式に、次の形式を使用できます。

LogFormat="%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot %extra1"

エクストラセクションでパラメタを抽出するのに名前extraZ(Zは整数である、必要なだけのタグを使用できる)によって定義されたタグを使用できます。ExtraSectionFirstColumnValuesXパラメタ(Xは追加レポートの数である、必要なだけのレポートを追加できる)で、ログファイルのどこの値を使用するかをAWStatsにしめすのにextraZタグを使用できます。例えば:

ExtraSectionName1="Domains aliases"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1=""
ExtraSectionFirstColumnTitle1="Domain alias"
ExtraSectionFirstColumnValues1="extra1,([^&]+)"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=HL
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=1
MaxNbOfExtra1=20
MinHitExtra1=1

そして、結果は

Domains aliases |
Domain alias | Hits | Last visit
--- | --- | ---
www.domain.com | 1757131 | 08 August 2004 - 13:01
www.otherdomainname.com | 98518 | 08 August 2004 - 12:54
domain.com | 19107 | 08 August 2004 - 12:42
www.againadomainname.org | 7609 | 08 August 2004 - 11:56
Total | 1883986 |

### 例6: ディレクトリ/mydirの下のトップレベル2経路のリスト

これは、その追跡のチャートを加えるようにエクストラセクションをセットアップする方法を示しています:
ExtraSectionName1="List of top level 2 path under /mydir"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="URL,^\/mydir\/.*"
ExtraSectionFirstColumnTitle1="Directory name"
ExtraSectionFirstColumnValues1="URL,^\/mydir\/([\w]+)\/"
ExtraSectionStatTypes1=PHK
MaxNbOfExtra1=50
MinHitExtra1=1

エクストラセクションにはもっとたくさんの使用法があります。

### 以下はAWStats構成ファイルにあるのと同じ内容です

    #-----------------------------------------------------------------------------
    # エクストラセクション
    #-----------------------------------------------------------------------------

    # 独自のチャートを作成することができます。この場合、列と行のキーを自分で選択
    # する必要があります。この機能は、例えばマーケティング用途や、商品の注文の
    # トラッキングを行う場合などに特に有用でしょう。
    # この機能を利用するには、エクストラセクションのパラメータを全て自分で編集する
    # 必要があります。一連のパラメータのセットで一つのチャートを構成します。
    # 複数のチャートを作成する場合は、セクションをコピーして数値を変更すると
    # いいでしょう。
    # 註: エクストラセクションごとにAWStatsの処理速度が8%低下します。
    #
    # 警告: エクストラセクションのセットアップを誤ると、メモリを食い尽くすほど
    # 巨大な配列ができてしまい、数回更新しただけでAWStatsが利用不可能な状態に
    # 陥る可能性があります。このため、慎重にセットアップを行ってください。
    # ほとんどの場合、この機能を利用する必要はありません。
    #
    # ExtraSectionNameXには、独自チャートのタイトルを指定します。
    # ExtraSectionCodeFilterXには、レコードコードフィールドがマッチしなければ
    #   ならないコードのリストを記述します。コードに対するテストを行わない場合は,
    #   空の文字列を指定してください。
    # ExtraSectionConditionalXには、ヒットとしてカウントする条件を指定します。
    #   (URL, URLWITHQUERY, QUERY_STRING, REFERER, UA, HOST, extraX)のうちの一つ
    #   を指定し、","の後に正規表現で条件を指定します。OR条件を指定する場合は
    #   "||"を利用します。
    # ExtraSectionFirstColumnTitleXには、チャートの最初のカラムのタイトルを指定
    #   します。
    # ExtraSectionFirstColumnValuesXには、いずれから(URL, QUERY_STRING, REFERER,
    #   UA, HOST)、どのように(正規表現を利用して指定)値を抽出するかをAWStatsに
    #   教える文字列を指定します。検出された値の種類が、レポートの最初のカラムに
    #   個別に表示されます。値の種類は無限ではないので、注意してください。
    # ExtraSectionFirstColumnFormatXには、値を書き込むための文字列を指定します。
    # ExtraSectionStatTypesXには、カウント対象を指定します。標準的なコード文字
    #   (Pはページ数、Hはヒット数、Bはバイト数、Lは最終アクセス)を利用できます。
    # ExtraSectionAddAverageRowXを指定すると、チャートの最下部に平均値の列が追加
    #   されます。
    # ExtraSectionAddSumRowXを指定すると、チャートの最下部に合計値の列が追加
    #   されます。
    # MaxNbOfExtraXには、チャートに表示する最大列数を指定します。
    # MinHitExtraXには、チャートに表示されるために必要とされる最小ヒット数を
    #   指定します。
    #

警告: ExtraSectionConditionXはAWStats6.0以降はregex値を使用しなければなりません。
また、ExtraSectionFirstColumnValuesXにはすべてのAWStatsバージョンでREGEX値が必要です。
構文使用例については、例に戻ってください。

Article written by Laurent Destailleur.
Follow @awstats_project