このトピックでは、Simple Log Service を使用して Smart Access Gateway(SAG)インスタンスのネットワークトラフィックをクエリおよび分析する方法について説明します。
前提条件
Simple Log Service でプロジェクトとログストアが作成されていること。詳細については、「クイックスタート」をご参照ください。
SAG デバイスが Alibaba Cloud に接続されていること。詳細については、「ワンアームモードで SAG デバイスをデプロイし、スタティックルーティングを有効にする」をご参照ください。
SAG デバイスのモデルが SAG-1000 であること。
背景情報
SAG はフローログをサポートしています。フローログを使用して、SAG インスタンスによって配信されるネットワークトラフィックをキャプチャできます。フローログは、Simple Log Service または指定された NetFlow コレクターに保存できます。このトピックでは、Simple Log Service を例として使用します。このトピックでは、SAG インスタンスに関するトラフィック情報を保存し、収集された情報をクエリおよび分析する方法について説明します。これにより、SAG インスタンスのネットワークトラフィック配信に関する洞察を得ることができます。
手順 1:データソースを追加する
ネットワークトラフィックをクエリまたは分析する前に、次の手順を実行して、SAG インスタンスに関するトラフィック情報を収集し、Simple Log Service プロジェクトのログストアに配信する必要があります。
フローログを作成します。
SAG コンソールで、SAG インスタンスのフローログを作成します。各フローログは、Simple Log Service プロジェクトのログストアに関連付けられています。 SAG インスタンスに関するトラフィック情報は、関連付けられたプロジェクトとログストアに保存されます。
SAG コンソール にログインします。
左側のナビゲーションペインで、[フローログ] をクリックします。
[フローログ] ページで、[フローログの作成] をクリックします。
[フローログの作成] パネルで、次のパラメータを設定し、[OK] をクリックします。
名前: フローログの名前を入力します。
アクティブ接続時の出力間隔: アクティブなネットワーク接続のログデータを収集する時間間隔を入力します。デフォルトの時間間隔は 300 秒です。 60 ~ 6,000 秒の時間間隔を指定できます。
非アクティブ接続時の出力間隔: 非アクティブなネットワーク接続のログデータを収集する時間間隔を入力します。デフォルトの時間間隔は 15 秒です。 10 ~ 600 秒の時間間隔を設定できます。
フローログデータの配信先: 収集したログデータを保存するサービスを選択します。この例では、[SLS] が選択されています。
収集したログデータを Simple Log Service に保存する場合は、[SLS] を選択します。
収集したログデータを NetFlow コレクターに保存する場合は、[netflow] を選択します。
収集したログデータを Simple Log Service と NetFlow コレクターの両方に保存するには、[すべて] を選択します。
SLS リージョン: Simple Log Service がデプロイされているリージョンを選択します。
SLS プロジェクト: ログストアが属するプロジェクトを選択します。
SLS ログストア: 収集したログデータを保存するログストアを選択します。
詳細については、「フローログを作成する」をご参照ください。
フローログを SAG インスタンスに関連付けます。
フローログを作成した後、トラフィック情報を収集する SAG インスタンスに関連付ける必要があります。フローログが SAG インスタンスに関連付けられると、SAG インスタンスのネットワークトラフィックに関する情報は、指定された Simple Log Service プロジェクトとログストアに保存されます。収集されたログデータは、Simple Log Service コンソールでクエリおよび分析できます。
[フローログ] ページで、作成したフローログの ID をクリックします。
詳細ページで、[インスタンスに関連付ける] をクリックします。
[インスタンスに関連付ける] パネルで、フローログを関連付ける SAG インスタンスを選択し、[保存] をクリックします。
手順 2:ログデータをクエリおよび分析する
フローログが SAG インスタンスに関連付けられた後、Log Service コンソールで収集されたログデータをクエリおよび分析できます。
Simple Log Service コンソール にログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、管理するログストアをクリックします。
ログストアのインデックス作成機能を有効にします。詳細については、「インデックスを作成する」をご参照ください。
インデックスは、ログデータの 1 つ以上の列をソートするために使用されるストレージ構造です。インデックスを設定した後でのみ、ログデータをクエリおよび分析できます。クエリと分析の結果は、インデックスの設定によって異なります。したがって、ビジネス要件に基づいてインデックスを設定する必要があります。この例では、フィールドインデックス作成と統計機能が有効になっています。
説明データ分析を容易にするために、フィールドインデックス作成を設定する際に、bytes フィールドが TEXT タイプであることを確認してください。
インデックス作成を有効にすると、ログデータをクエリおよび分析できます。次の例では、最大のネットワークトラフィック量を生成した上位 10 個の 5 タプルをクエリします。この例は、ネットワークトラフィックをクエリおよび分析する方法を示しています。
検索ボックスにクエリステートメントを入力します。
この例では、srcaddr、srcport、dstaddr、dstport、および protocol の各フィールドを使用して、最大のネットワークトラフィック量を生成した上位 10 個の 5 タプルをクエリします。
* | select srcaddr,srcport,dstaddr,dstport,protocol,count(*) as num,sum(bytes) as bytes from (select CASE WHEN strpos(bytes, 'M') != 0 then (CAST(replace(bytes,'M') AS double)*1024*1024) WHEN strpos(bytes, 'K') != 0 then (CAST(replace(bytes,'K') AS double)*1024) else CAST(bytes AS double) end as bytes,srcaddr,srcport,dstaddr,dstport,protocol from log limit 100000) GROUP BY srcaddr,dstaddr,srcport,dstport,protocol ORDER BY bytes DESC limit 10デフォルトでは、システムは過去 15 分以内に収集されたログデータを返します。時間範囲を指定することもできます。
説明このトピックで説明されているフィールドをクエリステートメントに直接含めないでください。これらのフィールドは参照用です。収集されたログデータのフィールドが優先されます。詳細については、「ログ検索の概要」をご参照ください。
[検索と分析] をクリックします。
[グラフ] タブにリダイレクトされます。最大のネットワークトラフィック量を生成した上位 10 個の 5 タプルに関する情報が表に表示されます。データを他の種類のグラフに表示することもできます。詳細については、「チャートの概要」をご参照ください。
この例では、データは円グラフで表示されます。
[グラフ] タブで、円グラフの属性を変更できます。
この例では、次の属性が変更されます。他の属性はデフォルト値を使用します。詳細については、「円グラフ」をご参照ください。
カテゴリ: データのカテゴリ。
この例では、データは srcaddr、srcport、dstaddr、dstport、および protocol の各フィールドに基づいて分類されます。上記のすべてのフィールドが指定された条件に一致する場合にのみ、ネットワークトラフィック量がカウントされます。
値の列: 返されるデータエントリの値。
この例では、bytes フィールドが値の列として使用されます。

オプション。 前述の手順を実行して、最大のネットワークトラフィック量を生成した上位 10 個の 3 タプル、または最大のネットワークトラフィック量を生成した上位 10 個の送信元 IP アドレスをクエリできます。
最大のネットワークトラフィック量を生成した上位 10 個の 3 タプルをクエリする
クエリされるフィールド: srcaddr、dstaddr、protocol。
データをクエリするためのステートメント:
* | select srcaddr,dstaddr,protocol,count(*) as num,sum(bytes) as bytes from (select CASE WHEN strpos(bytes, 'M') != 0 then (CAST(replace(bytes,'M') AS double)*1024*1024) WHEN strpos(bytes, 'K') != 0 then (CAST(replace(bytes,'K') AS double)*1024) else CAST(bytes AS double) end as bytes, srcaddr,dstaddr,protocol from log limit 100000) GROUP BY srcaddr,dstaddr,protocol ORDER BY bytes DESC limit 10クエリ結果:

最大のネットワークトラフィック量を生成した上位 10 個の送信元 IP アドレスをクエリする
クエリされるフィールド: srcaddr および dstaddr。
データをクエリするためのステートメント:
* | select srcaddr,dstaddr,count(*) as num,sum(bytes) as bytes from (select CASE WHEN strpos(bytes, 'M') != 0 then (CAST(replace(bytes,'M') AS double)*1024*1024) WHEN strpos(bytes, 'K') != 0 then (CAST(replace(bytes,'K') AS double)*1024) else CAST(bytes AS double) end as bytes, srcaddr,dstaddr from log limit 100000) GROUP BY srcaddr,dstaddr ORDER BY bytes DESC limit 10クエリ結果:

手順 3:(オプション)ダッシュボードにグラフを追加する
Simple Log Service では、クエリ結果を含むグラフをダッシュボードに追加できます。これにより、必要に応じて保存されたデータを表示できます。
円グラフの右上隅にある [新しいダッシュボードに追加] をクリックします。
[新しいダッシュボードに追加] ダイアログボックスで、パラメータを設定し、[OK] をクリックします。
操作: この例では、[ダッシュボードの作成] が選択されています。
ダッシュボード名: ダッシュボードの名前を入力します。この例では、5 タプルに基づく統計 が使用されています。
チャート名: グラフの名前を入力します。この例では、5 タプルに基づく円グラフ が使用されています。
詳細については、「ダッシュボードにチャートを追加する」をご参照ください。
左側のナビゲーションペインで、[ダッシュボード] アイコンをクリックします。
作成したダッシュボードの名前をクリックして、データを表示します。
ダッシュボードで、[時間範囲] をクリックして、分析データをフィルタリングする時間範囲を指定できます。詳細については、「表示モードでダッシュボードを管理する」をご参照ください。
