For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Statistics(統計)のプロファイルと使い方


【はじめに】

今月のiRuleではStatistics(統計)のプロファイルと使い方を紹介します。

たとえば特定のURIへのアクセス回数やあるIPサブネットからのアクセス回数など、iRuleで統計情報を収集するケースがあります。
統計情報の収集についてよく知られている方法としては、グローバル変数を利用してカウンター変数を作成するというものがあります。
たとえばRULE_INITにて「set ::header_count 0」でグローバル変数を初期化し、ルール本文で変数の値を設定(増加、減少など)できます。

しかし、グローバル変数を使う場合は、変数の値を参照する際にはログメッセージに出力する必要があります。
つまり必ずトラフィックがトリガーになるイベントを待たなければならず、管理者が任意で表示させることができません。

今回ご紹介するStatisticsプロファイルは、上記のような不便な点を解消します。
名前の通りBIG-IP上のプロファイルですが、実際に動作させるにはiRuleを利用する必要があります。

【メリット】
Webサーバが返すデータのContent Typeについて、各タイプへのアクセス回数をGUIでカウントでき、
統計情報を定期的に収集できる

【タイトル】
Content Type Tracking iRule

【機能解説】

 *6種のデータタイプに対して、アクセス回数をカウントアップする
 *Statisticsプロファイルの利用でGUIでアクセス回数が表示できる

【設定概要】:

 *ContentTypeというStatisticsプロファイルを作成
 *Statisticsプロファイルに6種のデータタイプに対してFieldを設定
*Virtual ServerにStatisticsプロファイルを設定

使用手順は以下の通りです。

① Local Traffic >> Profiles >> Other >> Statistics画面で、Createボタンを利用してカスタムプロファイルを作成する
② カスタムプロファイル編集画面でプロファイルのNameを入力する
③ カウンタ(統計用の)変数として利用できる32個の「Field」が用意されています。
使いたい変数に対して、Field 1~32のカスタムチェックボックスをチェックし、Fieldに任意の名前を入力する(例えば「header_count」)
④ Finishedボタンをクリックしカスタムプロファイルを保存する
⑤ Virtual Serverを通常通り設定します。ConfigurationをAdvancedに変更すると、Statistics Profileの設定項目も用意されます。
      上記作成したカスタムプロファイルをここで選びます。
⑥ iRuleを作成し、STATS::関連コマンドで上記のプロファイルの中のFieldを呼び出し、値を設定(増加、減少など)します。

上記でStatisticsプロファイルを利用すると、Overview >> Statistics >> Profiles - Statisticsの画面で情報が表示できます。

STATS::関連コマンドについては、下記のページをご参照ください:
http://devcentral.f5.com/s/wiki/default.aspx/iRules.STATS
 

---------------------------------------------------

 

【Statistics Profileの定義】

Name:  ContentType
Field 1: Images
Field 2: HTML
Field 3: Stylesheets
Field 4: Scripts
Field 5: Documents
Field 6: Other

【iRule定義】

# To view the results, go to Statistics -> Profiles - Statistics

when HTTP_RESPONSE {
   switch -glob [HTTP::header "Content-type"] {
      "image/*"         { STATS::incr "ContentType" "Images" }
      "text/html"       { STATS::incr "ContentType" "HTML" }
      "text/css"        { STATS::incr "ContentType" "Stylesheets" }
      "*javascript"     { STATS::incr "ContentType" "Scripts" }
      "text/vbscript"   { STATS::incr "ContentType" "Scripts" }
      "application/pdf" { STATS::incr "ContentType" "Documents" }
      "application/msword" { STATS::incr "ContentType" "Documents" }
      "application/*powerpoint" { STATS::incr "ContentType" "Documents" }
      "application/*excel" { STATS::incr "ContentType" "Documents" }
      "default"         { STATS::incr "ContentType" "Other" }
   }
}

※F5ネットワークスジャパンでは、サンプルコードについて検証を実施していますが、お客様の使用環境における動作を保証するものではありません。実際の使用にあたっては、必ず事前にテストを実施することを推奨します。

Published Oct 03, 2008
Version 1.0
No CommentsBe the first to comment