この章では、IPQoS システムによって処理されるトラフィックに関して、アカウンティング情報と統計情報を取得する方法について説明します。
この章では、以下の内容について説明します。
次の表に、flowacct モジュールを使ってトラフィックフローに関する情報を取得するための一般的な作業を示します。
表 5–1 フローアカウンティングの設定 (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
1. トラフィックフローのアカウンティング情報を格納するためのファイルを作成する |
acctadm コマンドを使用して、flowacct による処理結果を格納するファイルを作成する | |
2. flowacct のパラメータを IPQoS 構成ファイルに定義する |
timer、timeout、および max_limit の各パラメータの値を定義する | |
3. ファイルの内容を表示する |
アカウンティングレコードをファイルから読み取るためのユーティリティの作成に使用できるプログラム例を表示する |
IPQoS の flowacct モジュールを使用すると、発信元アドレス、着信先アドレス、フローに含まれるパケット量などの、トラフィックフローに関する情報を収集できます。 フローに関する情報を蓄積して記録するプロセスのことを「フローアカウンティング」と呼びます。
特定のクラスのトラフィックに関するフローアカウンティングの結果は、「フローレコード」というテーブルに記録されます。 各フローレコードは、一連の属性から構成されます。 これらの属性には、特定のクラスの一定時間のトラフィックフローに関するデータが格納されます。 flowacct の属性については、表 6–4 を参照してください。
フローアカウンティングは、サービスレベル契約 (SLA) に定義されているとおりに顧客に課金するために、非常に役立ちます。また、フローアカウンティングを使って、重要なアプリケーションのフロー統計情報を取得することもできます。 この節では、flowacct を Solaris 拡張アカウンティング機能と組み合わせて、トラフィックフローに関するデータを取得するための作業について説明します。
flowacct のアクション文を IPQoS 構成ファイルに作成する手順については、IPQoS 構成ファイル内でフロー制御を構成する方法を参照
flowacct の機能については、クラシファイアモジュールを参照
技術的な情報については、flowacct(7ipp) のマニュアルページを参照
flowacct アクションを IPQoS 構成ファイルに追加する前に、flowacct モジュールから得られるフローレコードを格納するためのファイルを作成する必要があります。 このためには、acctadm コマンドを使用します。 acctadm では、基本属性または拡張属性のどちらもファイルに記録できます。 flowacct のすべての属性については、表 6–4を参照してください。acctadm の詳細については、acctadm(1M) のマニュアルページを参照してください。
スーパーユーザーとして IPQoS 対応システムにログインします。
基本フローアカウンティングファイルを作成します。
次の例では、例 3–1 で構成したプレミアム Web サーバー用に、基本フローアカウンティングファイルを作成する方法を示します。
# /usr/sbin/acctadm -e basic -f /var/ipqos/goldweb/account.info flow |
文 |
定義 |
---|---|
acctadm -e |
-e オプションを使って acctadm を呼び出す。 -e オプションによって、あとに続く引数が有効になる |
basic |
flowacct の 8 つの基本属性のデータだけがファイルに記録されることを示す |
/var/ipqos/goldweb/account.info |
flowacct から得られるフローレコードを格納するファイルの絶対パス名を示す |
flow |
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 9 のリソースマネージャ機能で使用されます。 次の表では、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 オプションによって拡張アカウンティングが無効になります。
作業 |
参照先 |
---|---|
flowacct のパラメータを IPQoS 構成ファイルに定義する | |
acctadm を使って作成したファイルのデータを表示する |
acctadm で作成したフローアカウンティングファイルの内容を表示するには、スクリプトを作成する必要があります。 作成するスクリプトのベースとして、資源管理作業用およびアカウンティング処理用のデモスクリプトを使用できます。次の手順では、デモスクリプトに関する情報の入手方法を示します。
次の手順の前に、フローアカウンティングデータ用のファイルの作成方法の説明に従って、フローレコードを格納するファイルを作成している必要があります。 また、トラフィッククラスが flowacct によって追跡されるように、flowacct のアクションとパラメータを IPQoS 構成ファイルに追加している必要もあります。
次の手順では、プロセスや作業を表示するために acctadm ファイルの出力を行う、libexacct プログラムインタフェースと exdump ユーティリティを紹介します。 技術的な情報については、libexacct(3LIB) のマニュアルページを参照してください。
IPQoS システムでスーパーユーザーになり、ディレクトリ /usr/demo/libexacct にアクセスします。
このディレクトリには、Makefile と exdump.c スクリプトが入っています。
README の説明に従って、exdump の構築手順を実行します。
README の説明に従って、フローアカウンティングファイルのデータを表示します。
kstat コマンドを使用すると、IPQoS モジュールから統計情報を生成できます。次の構文を使用します。
/bin/kstat -m ipqos-module-name |
/bin/kstat -m dscpmk |
ここでは、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 は、フローテーブルに現在格納されているパケットと、タイムアウトしてすでにフローテーブルに存在しないパケットとを含む |
usedmem |
この flowacct インスタンスで保持されているフローテーブルが使用しているメモリのバイト数。 この例では、usedmem の値は 256。 フローテーブルにフローレコードがまったく存在しない場合、usedmem の値は 0 になる |