トラフィック データのクエリ

1 序論

Traffic Serverには、収集するデータについてのウェブベースのクエリ インターフェースがあります。トラフィック情報のリポジトリは2つあります。1つは、モニタされる各インターフェースについての1分ごとのトラフィック データです。このデータは、リアルタイムのトラブル シューティングに役立ちます。もう1つのリポジトリには、エンドツーエンド トラフィックのマトリクス情報が格納されています。この情報は、利用課金、プロファイリング アプリケーションおよびセキュリティ監査に役立ちます。

ウェブベース インターフェースを用いてカスタム クエリを実行するには、数々の方法があります。

2 ウェブベースのフォームを使用する方法

Traffic Serverウェブ ページの左にあるQuery メニューには、数々のウェブベースフォームがあります。これらのフォームは、特定のトラフィック データをフィルタリングにより素早く取得するのに役立ちます。以下のフォームを使用できます。

  • Host ネットワーク上の特定のホストについてのデータにアクセスします。
  • Interface Counters 履歴に基づくインターフェース統計値にアクセスします。
  • Interface Traffic 各インターフェースの1分ごとのフロー データにアクセスします。
  • Site Traffic 単方向トラフィックの1時間ごとのマトリクス データにアクセスします。
  • Site Service 双方向トラフィックの1時間ごとのマトリクス データにアクセスします。

たとえば、送信バイト総数および受信バイト総数を表示して、最も繁忙を極めているウェブ サーバーを直ちに明らかにしたい場合、この情報は、Query > Site Serviceフォームを用いて以下のようにフォーム フィールドに情報を入力するだけで容易に取得できます。

このフォームには注目すべき点がいくつかあります。まず、各フォーム フィールドのラベルは、そのフィールドについてのオンライン ヘルプへのリンクになっています。たとえば、resultFieldパラメータのリンクをクリックすれば、そのパラメータの値について調べることができます。次に、フィールド名はURLクエリに直接含めることのできる値に相当します。たとえば、このクエリを実行することは、URLをリクエストするのと同じことです。

/its/query/Service?tableType=TCP&serverPort=80&date=yesterday&resultField= serverAddress,bytesIn,bytesOut&resultSort=bytes&resultTruncate=10&resultFormat=html

最後に、dateフィールドに相対的な時刻表現(yesterday(昨日)など)を入力すると、毎日繰り返し実行されて最新データを生成するクエリを作成することができます。

submitボタンをクリックすると、以下の結果が得られます。

クエリに素早く回答を提供できるだけでなく、ウェブ ブラウザの一番上にあるAddress値をコピーして任意のウェブ対応ツールに貼り付けることにより、クエリを繰り返し実行することができます。ブラウザのFavoritesメニューを利用してクエリを保存し、必要なときに同じクエリを繰り返すことができます。

3 wgetを使用する方法

wgetは、httpクエリの作成に使用できるシンプルなコマンド ライン ユーティリティです。たとえば、以下の手順により、データをローカル ファイルに容易に抽出できます。

  1. Traffic ServerのQuery Site Serviceフォームを用いてクエリを生成し、resultFormatとしてcsvを選択します。
  2. 結果ウィンドウからURLをコピーします。
  3. コマンド プロンプトに次のように入力します。 wget -q -O - '<paste URL>' > result.txt
    注記: URLの前後には一重引用符を使用してください。

単に結果をファイルに保存する代わりに、awkあるいはPerlで書かれたスクリプトにより結果をパイプに入れてさらに処理することもできます。この方法で作成されるレポートは、cronを用いて容易に定期実行できます。このテクニックは、トラフィック アカウンティング データをTraffic Serverから抽出し、ビリング システムやデータベースにロードできるようにするためにしばしば用いられます。

注記: wgetは、Traffic Serverの一環としてインストールされています。

4 Perlスクリプト

スクリプト言語としてPerlを使用する場合、wgetなどのユーティリティを使用する必要はありません。Perlは、httpクエリを直接生成し、そのクエリにより得られるデータを処理することができます。

たくさんのPerlスクリプトの例を利用できます。

  • query.pl - 履歴データベースからのデータ抽出の例です。
  • minuteQuery.pl - リアルタイムminuteデータベースからデータを取り出す例です。
  • entity.pl - 長いhttpクエリのためにPOSTを用い、サブネットを名前エンティティにマッピングする例です。
  • bill.pl - ビリング用のデータ抽出例です。

ユーザーはまた、Traffic Managementメーリング リストにもスクリプトを提供しています。

5 Excelを使用する方法

下の例は、Excelでレポートを生成するための基本的な方法を示しています。

  1. (たとえば、Query > Site Serviceを使用して)resultFormatとしてhtmlを使用してTraffic Serverでクエリを実行し、得られたURLをコピーします。
  2. そのURLをテキスト エディタ(Notepadなど)に貼り付けます。
  3. 最初の「?」を改行文字に変更します。
  4. 「.iqy」(「インターネット クエリ」の意味)ファイルに保存します。
  5. そのクエリ ファイルをExcelで開きます。

クエリ ファイルをExcelで開く代わりに、
Data > Get External Data > Run Saved Queryというメニュー項目を選択して複数のクエリを1枚のシートに挿入することができます。

Excelがユーザーにパラメータの入力を促し、それをURLに代入する場合があります。以下のMicrosoft社の文書を参照してください。
//support.microsoft.com/support/kb/articles/q157/4/82.asp

以下のダウンロードは、Excelのウェブ クエリ機能の使用例を提供します。

  • traffic.iqyは、クエリ ファイルです。このファイルをダウンロードしてください。ExcelでData->Get External Data->Run Saved Queryを選択し、実行するクエリとしてtraffic.iqyを指定すると、様々なクエリ パラメータの入力が要求されます(あるいは、それらのパラメータをスプレッドシートのセルにリンクさせることもできます)。
  • tmquery.xlsは、テーブル形式の結果を取得するための、基本的なクエリ ワークブックです。様々なクエリ パラメータを使って実験し、結果のチャートを出力してみてください。
  • tmapps.xlsは、クエリを用いて小規模アプリケーションを作成する方法を示しています。

6 sFlowToolを使用する方法

sflowtoolは、未加工のsFlowデータグラムを分析できるようにするコマンド ライン ユーティリティです。sflowtoolと一緒に使用できるたくさんのスクリプトの例が//www.inmon.com/technology/sflowTools.phpにあります。sflowtoolは、パケットの詳細分析、フィルタリングおよび捕捉を行う必要がある場合に特に役立ちます。sflowtoolはtcpdumpなどのツールを用いてトレースを分析できるようにトラフィック データをlibpcap形式に変換することができます。

Traffic Serverは、sFlow情報を複数のロケーションに送ることができます。この機能は、Traffic Serverウェブ ページの左にあるServer > Forwardingメニューから利用できます。

この例では、全てのエージェント(0.0.0.0/0)からのsFlowデータが10.0.23.12のポート6343(デフォルトのsFlowポート)に転送されています。エージェント10.0.2.254からのsFlowデータは10.0.23.19のポート6343に転送され、最後に全てのエージェントからのsFlowデータがTraffic Serverホスト(127.0.0.1 = localhost)のポート7343に転送されています。

警告: sFlowパケットをTraffic Serverホストの、Traffic Serverがリッスンしている範囲内のポート(6343~6353)に送らないようにすることが非常に重要です。この範囲内のポートに送ってしまうと、パケットは永久に回り続けてしまう可能性があります。必ず、他のアプリケーションにまだ使用されていないポートに送るようにしてください。ポートの可用性を調べるには、sflowtoolに-pオプションを指定して実行するのがよい方法です。たとえば、
sflowtool -p 7343
を実行すると、ポート7343がすでに使用されている場合にはエラーが返されます。

ユーザーは、Traffic Managementメーリング リストにもスクリプトを提供しています。

注記: sflowtoolは、Traffic Serverの一環としてインストールされています。

関連トピック