Solaris のシステム管理 (IP サービス)

第 36 章 フローアカウンティングの使用と統計情報の収集 (手順)

この章では、IPQoS システムによって処理されるトラフィックに関して、アカウンティング情報と統計情報を取得する方法について説明します。この章では、次の内容について説明します。

フローアカウンティングの設定 (作業マップ)

次の作業マップは、flowacct モジュールを使用してトラフィックフローに関する情報を取得するための一般的な作業を示しています。マップでは、これらの作業の実施手順へのリンクも示しています。

作業 

説明 

説明 

1. トラフィックフローのアカウンティング情報を格納するためのファイルを作成する 

acctadm コマンドを使用して、flowacct による処理結果を格納するファイルを作成する

「フローアカウンティングデータ用のファイルを作成する方法」

2. flowacct のパラメータを IPQoS 構成ファイルに定義する

timertimeout、および max_limit の各パラメータの値を定義する

「IPQoS 構成ファイル内でクラスのアカウンティングを有効にする方法」

トラフィックフローに関する情報の記録

トラフィックフローに関する情報を収集するには、IPQoS flowacct モジュールを使用します。たとえば、発信元アドレスや 宛先アドレス、フロー内のパケット数などのデータを収集することが可能です。フローに関する情報を蓄積して記録するプロセスのことを「フローアカウンティング」と呼びます。

特定のクラスのトラフィックに関するフローアカウンティングの結果は、「フローレコード」というテーブルに記録されます。各フローレコードは、一連の属性から構成されます。これらの属性には、特定のクラスの一定時間のトラフィックフローに関するデータが格納されます。flowacct 属性のリストについては、表 37–4 を参照してください。

フローアカウンティングは、サービスレベル契約 (SLA) に定義されているとおりに顧客に課金するために、非常に役立ちます。また、フローアカウンティングを使って、重要なアプリケーションのフロー統計情報を取得することもできます。この節では、flowacct を Oracle Solaris 拡張アカウンティング機能と組み合わせて、トラフィックフローに関するデータを取得するための作業について説明します。

この章以外の場所からも次の情報が入手できます。

Procedureフローアカウンティングデータ用のファイルを作成する方法

flowacct アクションを IPQoS 構成ファイルに追加する前に、flowacct モジュールからフローレコードのファイルを作成します。このためには、acctadm コマンドを使用します。acctadm では、基本属性または拡張属性のどちらもファイルに記録できます。すべての flowacct 属性のリストについては、表 37–4 を参照してください。acctadm については、acctadm(1M) のマニュアルページを参照してください。

  1. IPQoS 対応システムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 基本フローアカウンティングファイルを作成します。

    次の例に、例 34–1 で構成されるプレミアム Web サーバ用の基本的なフローアカウンティングファイルの作成方法を示します。


    # /usr/sbin/acctadm -e basic -f /var/ipqos/goldweb/account.info flow
    
    acctadm -e

    acctadm-e オプションを指定して呼び出します。-e オプションによって、あとに続く引数が有効になる

    basic

    flowacct の 8 つの基本属性のデータだけがファイルに記録されることを示す

    /var/ipqos/goldweb/account.info

    flowacct から得られるフローレコードを格納するファイルの絶対パス名を示す

    flow

    acctadm にフローアカウンティングを有効にするよう指示する

  3. 引数を指定しないで acctadm と入力し、IPQoS システムのフローアカウンティングに関する情報を表示します。

    acctadm によって次の出力が生成されます。

    Task accounting: inactive
           Task accounting file: none
         Tracked task resources: none
       Untracked task resources: extended
             Process accounting: inactive
        Process accounting file: none
      Tracked process resources: none
    Untracked process resources: extended,host,mstate
                Flow accounting: active
           Flow accounting file: /var/ipqos/goldweb/account.info
         Tracked flow resources: basic
       Untracked flow resources: dsfield,ctime,lseen,projid,uid

    最後の 4 つのエントリ以外はすべて、Solaris のリソースマネージャー機能で使用されます。次の表では、IPQoS に固有のエントリについて説明します。

    エントリ 

    説明 

    Flow accounting: active

    フローアカウンティングが有効になっていることを示す 

    Flow accounting file: /var/ipqos/goldweb/account.info

    現在のフローアカウンティングファイルの名前を示す 

    Tracked flow resources: basic

    基本フロー属性だけが記録されることを示す 

    Untracked flow resources: dsfield,ctime,lseen,projid,uid

    ファイルに記録されない flowacct の属性を示す

  4. (オプション) 拡張属性をアカウンティングファイルに追加します。


    # acctadm -e extended -f /var/ipqos/goldweb/account.info flow
  5. (オプション) 基本属性だけがアカウンティングファイルに記録されるような設定に戻します。


    # acctadm -d extended -e basic -f /var/ipqos/goldweb/account.info

    -d オプションによって拡張アカウンティングが無効になります。

  6. フローアカウンティングファイルの内容を参照します。

    フローアカウンティングファイルの内容の参照方法については、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』「libexacct に対する Perl インタフェース」を参照してください。

参照

統計情報の収集

kstat コマンドを使用すると、IPQoS モジュールから統計情報を生成できます。構文は次のとおりです。


/bin/kstat -m ipqos-module-name

表 37–5 に示されている、有効な IPQoS モジュール名であればどれでも指定できます。たとえば、dscpmk マーカーによって生成される統計情報を表示するには、次の形の kstat を使用します。


/bin/kstat -m dscpmk

技術的な情報については、kstat(1M) のマニュアルページを参照してください。


例 36–1 IPQoS 用の kstat 統計

ここでは、kstat を実行して flowacct モジュールに関する統計情報を取得した場合に予想される結果の一例について説明します。


# kstat -m flowacct
module: flowacct                        instance: 3     
name:   Flowacct statistics             class:    flacct 
        bytes_in_tbl                    84
        crtime                          345728.504106363
        epackets                        0
        flows_in_tbl                    1
        nbytes                          84
        npackets                        1
        snaptime                        345774.031843301
        usedmem                         256
class: flacct

トラフィックフローが属するクラスの名前 (この例では flacct) を示す

bytes_in_tbl

フローテーブルの総バイト数。フローテーブルの総バイト数とは、フローテーブルに現在格納されているすべてのフローレコードの合計バイト数。このフローテーブルの総バイト数は 84 である。テーブルにフローがない場合、bytes_in_tbl の値は 0 になる

crtime

この kstat 出力が作成された最も最近の時間

epackets

処理中にエラーが発生したパケットの数 (この例では 0)

flows_in_tbl

フローテーブルのフローレコード数 (この例では 1)。テーブルにレコードがない場合、flows_in_tbl の値は 0 になる

nbytes

この flowacct アクションのインスタンスで表示される合計バイト数 (この例では 84)。フローテーブルに現在格納されているバイトを含む値。この値には、タイムアウトになり、フローテーブルに現在は含まれていない値も含まれる

npackets

この flowacct アクションのインスタンスで表示される合計パケット数 (この例では 1)。npackets には、フローテーブルに現在あるパケットが含まれる。npackets には、タイムアウトになり、フローテーブルに現在は含まれていないパケットも含まれる

usedmem

この flowacct インスタンスで保持されているフローテーブルが使用しているメモリーのバイト数。この例では、usedmem の値は 256。フローテーブルにフローレコードがまったく存在しない場合、usedmem の値は 0 になる