トラフィック フローを分析する

Flow Analyzer を使用すると、次のタスクを実行できます。

  • VPC フローログに対して単純なクエリを構築して実行する
  • VPC フローログのクエリ用に SQL フィルタを(WHERE ステートメントを使用して)作成する
  • 選択したフィールドを使用して結果を整理し、合計トラフィックと集計パケットを使用してクエリ結果を並べ替えます。
  • 選択した時間間隔でトラフィックを表示する
  • 時間の経過とともに上位 5 つのトラフィック フローをグラフィカル形式で、他のトラフィックと比較する
  • 選択した期間に集計されたトラフィック量が最も多いリソースを表形式で表示する
  • クエリ結果から、特定の送信元と宛先のペア間のトラフィックの詳細を表示する
  • VPC フローログで使用可能な残りのフィールドを使用して、クエリ結果をドリルダウンする

始める前に

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. サブネットの作成時に VPC フローログを有効にするか、既存のサブネットの VPC フローログを有効にする

必要なロールと権限

Flow Analyzer はユーザーに代わってデータを読み取るため、ログを含むバケットを読み取る十分な権限があることを確認してください。Log Analytics を使用するには、バケットもアップグレードする必要があります。

  • ユーザーがバケットのログを読み取れるようにするには、ログ エクスプローラ ページを使用します。[ログ分析] ページを使用して、次のいずれかのロールを付与します。

    • _Default バケットの _Default ビューにアクセスするには、ログ閲覧者ロール(roles/logging.viewer)を付与します。
    • データアクセス ログを含む、_Default ログバケット内のすべてのログにアクセスするには、プライベート ログ閲覧者ロール(roles/logging.privateLogViewer)を付与します。

    詳細については、Logging のロールをご覧ください。

  • ユーザーがユーザー定義バケットに保存されているログを読み取ることができるようにするには、ログビュー アクセサー(roles/logging.viewAccessor)のロールを付与します。承認は特定のログビューに制限できます。詳細については、ログビューへのアクセスを制御するをご覧ください。

  • または、次の権限を付与するカスタムロールを作成します。

    • logging.buckets.get
    • logging.buckets.list
    • logging.logEntries.list
    • logging.logs.list
    • resourcemanager.projects.get

クエリを作成して実行する

クエリを作成して実行する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[Flow Analyzer] ページに移動します。

    [Flow Analyzer] に移動

  2. ログバケットを選択します。_Default ログバケットを使用する場合は、この手順をスキップできます。

  3. [トラフィック集計] メニューで、次のいずれかのオプションを選択します。

    • 送信元 - 宛先: 送信元から宛先へのトラフィックを集計します。
    • クライアント - サーバー: ポート番号とサービス定義が小さいリソース、または GKE サービス プロパティを持つリソースをサーバーとして見なして、両方向のトラフィックを集約します。

    詳細については、トラフィック集計をご覧ください。

  4. クエリの期間を設定するには、期間セレクタを使用します。デフォルトの期間は 1 時間ですが、プリセット時間のオプションから選択することもできます。カスタムの開始時刻と終了時刻を指定することも、特定の時間の期間を選択することもできます。

  5. グラフの [選択した期間を再実行します] をクリックします。

  6. 送信元と宛先、またはクライアントとサーバーのフィールドで、フィールドのリストからフィールドを選択します。

  7. 1 つ以上のフィルタ式を追加して、キーを選択したフィールドとして、選択した Key-Value ペアに一致するフローをフィルタします。

    同じフィールドに対してさらにフィルタを選択すると、OR 演算子が使用されます。異なるフィールドのフィルタを選択すると、AND 演算子が使用されます。たとえば、2 つの IP アドレス値(1.2.3.410.20.10.30、2 つの Country 値)を選択した場合は、次のようになります。USFrance が含まれていると、次のフィルタ ロジックがクエリに適用されます。

    (IP=1.2.3.4 OR IP=10.20.10.30) AND (Country=US OR Country=France)

  8. フィールドを使用してフローを整理します。フロー詳細を整理するフィールドを選択します。

  9. [新しいクエリを実行] をクリックします。

    [最高のデータフロー] グラフと [すべてのデータフロー] テーブルが更新されます。

  10. 表示オプションを使用してクエリ結果をカスタマイズします。 選択可能な各種表示オプションの詳細については、表示オプションをご覧ください。カスタム オプションを選択するには、表示オプションをカスタマイズするをご覧ください。

  11. 表示オプションの変更が完了したら、[OK] をクリックします。

  12. [再実行] をクリックして、選択した表示オプションでクエリを再実行します。

SQL クエリを作成して実行する

SQL フィルタ オプションを使用して Flow Analyzer でクエリを作成して実行する手順は次のとおりです。

  1. Google Cloud コンソールで、[Flow Analyzer] ページに移動します。

    [Flow Analyzer] に移動

  2. ログバケットを選択します。_Default ログバケットを使用する場合は、この手順をスキップできます。

  3. クエリの期間を設定するには、期間セレクタを使用するか、[選択した期間を再実行] を選択します。

  4. [トラフィック集計] メニューで、次のいずれかのオプションを選択します。

    • 送信元 - 宛先: 送信元から宛先へのトラフィックを集計します。
    • クライアント - サーバー: ポート番号が小さく、サービス定義を持つリソースをサーバーとして見なして、両方向のトラフィックを集約します。

      詳細については、トラフィック集計をご覧ください。

  5. [SQL フィルタ] をクリックします。

  6. BigQuery SQL 構文を使用して SQL フィルタクエリを入力します

  7. フィルタ式の構文と例を表示するには、[フィルタ式の構文と例] をクリックします。

  8. フィールドを使用してフローを整理します。フロー詳細を整理するフィールドを選択します。

  9. [新しいクエリを実行] をクリックします。

    [最高のデータフロー] グラフと [すべてのデータフロー] テーブルが更新されます。

  10. 表示オプションを使用してクエリ結果をカスタマイズします。選択可能な各種表示オプションの詳細については、表示オプションをご覧ください。カスタム オプションを選択するには、表示オプションをカスタマイズするをご覧ください。

  11. 表示オプションの変更が完了したら、[OK] をクリックします。

  12. 選択した表示オプションでクエリを再実行するには、[再実行] をクリックします。

表示オプションをカスタマイズする

トラフィック フローの詳細を表示するには、表示オプションをカスタマイズします。選択可能な各種表示オプションの詳細については、表示オプションをご覧ください。

コンソール

  1. クエリを作成します
    1. ログバケットを選択します。_Default ログバケットを使用する場合は、この手順をスキップできます。
    2. クエリの期間を設定するには、期間セレクタを使用するか、[選択した期間を再実行] を選択します。
    3. フィルタを選択します。
    4. 結果を整理するフィールドを選択します。
  2. クエリを実行します。
  3. 指標タイプ([送信バイト数] または [送信パケット数])を選択します。
  4. 指標の集計オプションを選択します。

    指標として [送信バイト数] を選択した場合は、次のいずれかのオプションを選択します。

    1. 合計トラフィック: 選択した期間の合計トラフィック。デフォルトで有効。
    2. 平均トラフィック レート: 選択した期間の平均トラフィック レート。トラフィックが観測されたアライメント期間に対してのみ計算されます。
    3. トラフィック レートの中央値: 選択した期間のトラフィック レートの中央値。トラフィックが観測されたアライメント期間に対してのみ計算されます。
    4. P95 トラフィック レート: 選択した期間の 95 パーセンタイル トラフィック レート。トラフィックが観測されたアライメント期間に対してのみ計算されます。
    5. 最大トラフィック レート: 選択した期間の最大トラフィック レート。

    指標として [送信パケット数] を選択した場合は、次のいずれかのオプションを選択します。

    1. 集計パケット: 選択した期間のパケットの集計数。デフォルトで有効。
    2. 平均パケット率: 選択した期間の平均パケット率。トラフィックが観測されたアライメント期間に対してのみ計算されます。
    3. パケット率の中央値: 選択した期間のパケット率の中央値。トラフィックが観測されたアライメント期間に対してのみ計算されます。
    4. P95 パケット率: 選択した期間の 95 パーセンタイル パケット率。トラフィックが観測されたアライメント期間に対してのみ計算されます。
    5. 最大パケットレート: 選択した期間の最大パケットレート。

    さまざまな指標の集計オプションの詳細については、指標の集計をご覧ください。

  5. アライメント期間を選択します。アライメント期間の詳細については、アライメント期間をご覧ください。

  6. サンプリング ポイントを選択します。

    • 送信元エンドポイント: フローの発信元エンドポイントで報告された送信バイト数または送信パケット数。
    • 宛先エンドポイント: フローの発信元エンドポイントで報告された送信バイト数または送信パケット数。
    • 送信元エンドポイントと宛先エンドポイントの合計: フローの両方のエンドポイントで報告された送信バイト数または送信パケット数の合計。
    • 送信元エンドポイントと宛先エンドポイントの平均: VPC フローログで送信元と宛先の両方の詳細が利用可能な場合、フローの両方のエンドポイントで報告された送信バイト数または送信パケット数の平均。

    詳細については、サンプリング ポイントをご覧ください。

フローの詳細を表示する

データフロー テーブルで選択したフローのフロー詳細を表示するには、次の操作を行います。

コンソール

  1. クエリを作成します
    1. ログバケットを選択します。_Default ログバケットを使用する場合は、この手順をスキップできます。
    2. クエリの期間を設定するには、期間セレクタを使用するか、[選択した期間を再実行] を選択します。
    3. フィルタを選択します。
    4. 結果を整理するフィールドを選択します。
  2. クエリを実行します。
  3. [すべてのデータフロー] 表で、任意のフローの [詳細を表示] をクリックします。

    表示された [フローの詳細] ページには、選択したフィルタに一致するすべてのリソースと、これらのリソースのトラフィックが表示されます。

トラフィック フローをドリルダウンする

選択したリソースのトラフィックについて、さらに絞り込むことができます。Flow Analyzer を使用すると、VPC フローログで使用可能な残りのフィールドを使用して、クエリ結果をドリルダウンできます。詳細については、内訳またはドリルダウン フローの詳細をご覧ください。

他のフィールドを使用してトラフィック フローをドリルダウンする手順は次のとおりです。

コンソール

  1. クエリを作成します
    1. ログバケットを選択します。_Default ログバケットを使用する場合は、この手順をスキップできます。
    2. クエリの期間を設定するには、期間セレクタを使用するか、[選択した期間を再実行] を選択します。
    3. フィルタを選択します。
    4. 結果を整理するフィールドを選択します。
  2. クエリを実行します。
  3. [すべてのデータフロー] 表で、任意のフローの [詳細を表示] をクリックします。

    表示された [フローの詳細] ページには、選択したフィルタに一致するすべてのリソースと、これらのリソースのトラフィックが表示されます。

  4. [ドリルダウン] リストで、ドリルダウンするフィールドを選択します。

  5. 過去のトラフィックと比較するには、[過去と比較] 切り替えボタンをクリックします。この機能を使用すると、6 本の線を表示できます。ドリルダウンからの上位 3 つのトラフィック フローを表す 3 本の実線と、過去のトラフィックを表す対応する色の 3 本の破線です。

次のステップ