この章では、IPQoS システムによって処理されるトラフィックに関して、アカウンティング情報と統計情報を取得する方法について説明します。この章では、次の内容について説明します。
次の作業マップは、flowacct モジュールを使用してトラフィックフローに関する情報を取得するための一般的な作業を示しています。マップでは、これらの作業の実施手順へのリンクも示しています。
作業 |
説明 |
説明 |
---|---|---|
1. トラフィックフローのアカウンティング情報を格納するためのファイルを作成する |
acctadm コマンドを使用して、flowacct による処理結果を格納するファイルを作成する | |
2. flowacct のパラメータを IPQoS 構成ファイルに定義する |
timer、timeout、および max_limit の各パラメータの値を定義する |
トラフィックフローに関する情報を収集するには、IPQoS flowacct モジュールを使用します。たとえば、発信元アドレスや 宛先アドレス、フロー内のパケット数などのデータを収集することが可能です。フローに関する情報を蓄積して記録するプロセスのことを「フローアカウンティング」と呼びます。
特定のクラスのトラフィックに関するフローアカウンティングの結果は、「フローレコード」というテーブルに記録されます。各フローレコードは、一連の属性から構成されます。これらの属性には、特定のクラスの一定時間のトラフィックフローに関するデータが格納されます。flowacct 属性のリストについては、表 37–4 を参照してください。
フローアカウンティングは、サービスレベル契約 (SLA) に定義されているとおりに顧客に課金するために、非常に役立ちます。また、フローアカウンティングを使って、重要なアプリケーションのフロー統計情報を取得することもできます。この節では、flowacct を Oracle Solaris 拡張アカウンティング機能と組み合わせて、トラフィックフローに関するデータを取得するための作業について説明します。
この章以外の場所からも次の情報が入手できます。
IPQoS 構成ファイル内の flowacct のアクション文の作成方法については、「IPQoS 構成ファイル内でフロー制御を構成する方法」を参照してください。
flowacct がどのように機能するかについては、「クラシファイアモジュール」を参照してください。
技術的な情報については、flowacct(7ipp) のマニュアルページを参照してください。
flowacct アクションを IPQoS 構成ファイルに追加する前に、flowacct モジュールからフローレコードのファイルを作成します。このためには、acctadm コマンドを使用します。acctadm では、基本属性または拡張属性のどちらもファイルに記録できます。すべての flowacct 属性のリストについては、表 37–4 を参照してください。acctadm については、acctadm(1M) のマニュアルページを参照してください。
IPQoS 対応システムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
基本フローアカウンティングファイルを作成します。
次の例に、例 34–1 で構成されるプレミアム Web サーバ用の基本的なフローアカウンティングファイルの作成方法を示します。
# /usr/sbin/acctadm -e basic -f /var/ipqos/goldweb/account.info flow |
acctadm を -e オプションを指定して呼び出します。-e オプションによって、あとに続く引数が有効になる
flowacct の 8 つの基本属性のデータだけがファイルに記録されることを示す
flowacct から得られるフローレコードを格納するファイルの絶対パス名を示す
acctadm にフローアカウンティングを有効にするよう指示する
引数を指定しないで 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 の属性を示す |
(オプション) 拡張属性をアカウンティングファイルに追加します。
# acctadm -e extended -f /var/ipqos/goldweb/account.info flow |
(オプション) 基本属性だけがアカウンティングファイルに記録されるような設定に戻します。
# acctadm -d extended -e basic -f /var/ipqos/goldweb/account.info |
-d オプションによって拡張アカウンティングが無効になります。
フローアカウンティングファイルの内容を参照します。
フローアカウンティングファイルの内容の参照方法については、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の「libexacct に対する Perl インタフェース」を参照してください。
拡張アカウンティング機能の詳細については、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 4 章「拡張アカウンティング (概要)」を参照してください。
IPQoS 構成ファイル内に flowacct パラメータを定義するには、「IPQoS 構成ファイル内でクラスのアカウンティングを有効にする方法」を参照してください。
acctadm で作成されたファイルのデータを印刷するには、『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) のマニュアルページを参照してください。
ここでは、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 |
トラフィックフローが属するクラスの名前 (この例では flacct) を示す
フローテーブルの総バイト数。フローテーブルの総バイト数とは、フローテーブルに現在格納されているすべてのフローレコードの合計バイト数。このフローテーブルの総バイト数は 84 である。テーブルにフローがない場合、bytes_in_tbl の値は 0 になる
この kstat 出力が作成された最も最近の時間
処理中にエラーが発生したパケットの数 (この例では 0)
フローテーブルのフローレコード数 (この例では 1)。テーブルにレコードがない場合、flows_in_tbl の値は 0 になる
この flowacct アクションのインスタンスで表示される合計バイト数 (この例では 84)。フローテーブルに現在格納されているバイトを含む値。この値には、タイムアウトになり、フローテーブルに現在は含まれていない値も含まれる
この flowacct アクションのインスタンスで表示される合計パケット数 (この例では 1)。npackets には、フローテーブルに現在あるパケットが含まれる。npackets には、タイムアウトになり、フローテーブルに現在は含まれていないパケットも含まれる
この flowacct インスタンスで保持されているフローテーブルが使用しているメモリーのバイト数。この例では、usedmem の値は 256。フローテーブルにフローレコードがまったく存在しない場合、usedmem の値は 0 になる