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

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

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

始める前に

  1. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

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

必要なロールと権限

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

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

    • _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 本の破線です。

次のステップ