Simple Log Service を使用して Smart Access Gateway (SAG) インスタンスのトラフィックをクエリ・分析することで、トラフィック分散の把握やネットワーク問題のトラブルシューティングが可能になります。
前提条件
-
Simple Log Service でプロジェクトと Logstore が作成済みであること。 詳細については、「Simple Log Service クイックスタート」をご参照ください。
-
SAG デバイスが Alibaba Cloud に接続されていること。 詳細については、「静的ルーティングを使用した Alibaba Cloud への SAG デバイスの接続」をご参照ください。
-
お使いの SAG デバイスモデルが SAG-1000 であることを確認してください。
背景
Smart Access Gateway (SAG) はフローログ機能をサポートしています。 フローログは、SAG インスタンスを通過する IP トラフィック情報をキャプチャし、Alibaba Cloud の Simple Log Service または NetFlow コレクターにデータを保存します。 次の手順では、Simple Log Service を使用してこのトラフィックを保存、クエリ、分析する方法について説明します。
ステップ 1:データの取り込み
トラフィックをクエリ・分析するには、まず SAG インスタンスからのトラフィック情報を指定のプロジェクトと Logstore に記録する必要があります。
-
フローログの作成
SAG コンソールでフローログを作成し、指定されたプロジェクトと Logstore にトラフィック情報を保存します。
-
SAG コンソールにログインします。
-
左側のナビゲーションペインで、Flow Log をクリックします。
-
Flow Log ページで、Create Flow Log をクリックします。
-
Create Flow Log パネルで、次のパラメーターを設定し、OK をクリックします。
-
[Name]:フローログの名前を入力します。
-
[Output Interval Under Active Connections]: アクティブなネットワーク接続のログデータを出力する間隔を指定します。デフォルト値は 300 秒です。値は 60 〜 6,000 秒の範囲で指定する必要があります。
-
[Output Interval Under Inactive Connections]: 無通信のネットワーク接続のログデータを出力する間隔を 10~600 秒の範囲で指定します。デフォルト値は 15 秒です。
-
[Deliver Flow Log Data To]: ログのストレージタイプを選択します。このトピックでは、[SLS] を選択します。
-
ログデータを Simple Log Service に保存するには、[SLS] を選択します。
-
ログデータを NetFlow コレクターに保存するには、[NetFlow] を選択します。
-
ログデータを Simple Log Service と NetFlow コレクターの両方に保存するには、[ALL] を選択します。
-
-
SLS Region:Simple Log Service がデプロイされているリージョンを選択します。
-
SLS Project:フローログデータを保存する Logstore を含むプロジェクトを選択します。
-
SLS Logstore:フローログデータを保存する Logstore を選択します。
パラメーターの詳細については、「フローログの作成」をご参照ください。
-
-
-
フローログと SAG インスタンスの関連付け
フローログを作成したら、それを SAG インスタンスに関連付けます。これにより、クエリと分析のためにトラフィック情報が指定のプロジェクトと Logstore に保存されます。
-
Flow Log ページで、作成したフローログを見つけ、その ID をクリックします。
-
フローログの詳細ページで、Add Instance をクリックします。
-
Add Instance パネルで、対象の SAG インスタンスを選択し、Save をクリックします。
-
ステップ 2:トラフィックのクエリ・分析
フローログを設定したら、Simple Log Service コンソールで収集された SAG トラフィックをクエリ・分析します。
-
Simple Log Service コンソールにログインします。
-
[プロジェクト] セクションで、対象のプロジェクトをクリックします。
-
タブで、目的のログストアをクリックします。
-
インデックスを有効にします。 詳細については、「インデックスの有効化と設定」をご参照ください。
インデックスは、1 つ以上の列のデータを並べ替えるストレージ構造です。 ログをクエリ・分析する前に、インデックスを設定する必要があります。 この例では、フィールドインデックスを有効にし、統計機能をオンにします。 [フィールド検索] セクションで、次のフィールドに対してフィールドインデックスを設定します:ali_uid (long 型)、bytes、dstaddr、dstport、instance_id、packets、protocol、snid、srcaddr、srcport、tos (text 型)、end、start (double 型)、および tcp-flags (text 型)。 text 型のフィールドには、区切り文字として
,";=()[]{}?@&<>/:\nを使用します。 ali_uid、bytes、dstaddr、dstport、packets、protocol、srcaddr、srcport、および tos フィールドについては、[統計を有効にします]。説明フィールドインデックスを設定する際は、データ分析と統計を有効にするために、bytes フィールドが TEXT 型であることを確認してください。
-
インデックスを有効にすると、データのクエリ・分析ができます。 次の例では、上位 10 件の 5 タプルをクエリする方法を示します。
-
検索ボックスに、クエリステートメントを入力します。
5 タプルのトラフィックに対応するフィールドは、srcaddr、srcport、dstaddr、dstport、protocol です。
* | 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 分間のデータを検索します。 クエリに対してカスタムの時間範囲を指定できます。 前述の SQL ステートメントをクエリエディターに入力し、時間範囲を [15 Minutes (Relative)] に設定してから、[Search & Analyze] をクリックしてクエリを実行します。
説明クエリステートメントを作成する際は、フィールドがログ内のフィールドと一致していることを確認してください。 この例で使用されているフィールドは参照用です。 クエリステートメントの詳細については、「クエリ概要」をご参照ください。
-
[検索 & 分析] をクリックします。
コンソールで [グラフ] タブが開き、テーブルに上位 10 の 5 タプルの統計が表示されます。他のグラフの種類を選択してデータを視覚化できます。詳細については、「グラフの概要」をご参照ください。
この例では、円グラフを使用して統計データを表示します。
-
[グラフ] タブで、円グラフのプロパティを調整してグラフをカスタマイズします。
次の 2 つのプロパティを調整します。 他のプロパティにはデフォルト値が使用されます。 詳細については、「円グラフ」をご参照ください。
-
[カテゴリ]: データのカテゴリ。
この例では、データは srcaddr、srcport、dstaddr、dstport、および protocol フィールドで分類されます。 トラフィックの 5 つのフィールドすべてが一致した場合にのみ、レコードがカウントされます。
-
[値列]: カテゴリ化されたデータに対応する数値です。
この例では、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 -
クエリ結果:[Graph] タブを選択します。 右側の [Properties] ペインで、[Chart Type] を [Pie Chart] に設定し、[Category] に [srcaddr]、[dstaddr]、[protocol] を、[Value Column] に [bytes] を選択します。 フォーマットは [K,Mil,Bil] を、[Scale Label Format] は [Percentage] を選択します。 左側のプレビューエリアには、送信元アドレス、宛先アドレス、プロトコル別のトラフィック分散を示す円グラフとデータプレビューテーブルが表示されます。
-
-
上位 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 -
クエリ結果:クエリステートメントを実行後、[Graph] タブをクリックします。 右側の [Properties] ペインで、[Chart Type] を [Pie Chart] に設定し、[Category] に [srcaddr] と [dstaddr] を、[Value Column] に [bytes] を選択します。 円グラフに、送信元アドレスと宛先アドレスごとのトラフィック量の割合が表示されます。 [Add to Dashboard] をクリックすると、グラフを保存できます。
-
-
ステップ 3:(任意) グラフのダッシュボードへの追加
クエリ・分析の結果をダッシュボード上のグラフとして保存し、繰り返し表示することができます。
-
円グラフの右上隅で、[ダッシュボードに追加] をクリックします。
-
[ダッシュボードに追加] ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。
-
[操作]: [ダッシュボードの作成] を選択します。
-
[ダッシュボード名]: 5 タプル統計 など、ダッシュボードの名前を入力します。
-
[グラフ名]: 5 タプル円グラフ統計 など、グラフの名前を入力します。
詳細については、「グラフをダッシュボードに追加」をご参照ください。
-
-
左側のナビゲーションペインで、[ダッシュボード] をクリックします。
-
作成したダッシュボードの名前をクリックして、ダッシュボードを表示します。
ダッシュボードで [時間範囲] をクリックすると、さまざまな期間のクエリと分析の結果を表示できます。 詳細については、「表示モード」をご参照ください。 このダッシュボードには 5 タプル円グラフ統計 チャートが表示されます。 [時間範囲] ボタンを使用して、統計の時間範囲を変更できます。