Flow Analyzer の概要

Flow Analyzer(プレビュー)を使用すると、VPC フローログを分析するための複雑な SQL クエリを作成しなくても、VPC トラフィック フローを迅速かつ効率的に把握できます。Flow Analyzer を使用すると、5 タプル(送信元 IP、宛先 IP、送信元ポート、宛先ポート、プロトコル)で独自のネットワーク トラフィック分析を実行できます。

Log Analytics を使用して開発され、BigQuery を搭載している Flow Analyzer は、VM インスタンスのインバウンド トラフィックとアウトバウンド トラフィックの詳細な分析を可能にします。これにより、ネットワーク デプロイのモニタリング、トラブルシューティング、最適化を行い、パフォーマンスを向上させ、セキュリティを強化して、コンプライアンスの確保と費用の削減を実現できます。

Flow Analyzer は、ログバケット(レコード形式)に保存された VPC フローログのデータを分析します。Flow Analyzer を使用するには、VPC フローログを含むログバケットがあるプロジェクトを選択する必要があります。詳細については、VPC フローログの概要をご覧ください。VPC フローログは、ネットワーク モニタリング、フォレンジック、リアルタイム セキュリティ分析、費用の最適化に使用できます。

Flow Analyzer は、VPC フローログに含まれるフィールドに対してクエリを実行します。詳細については、VPC フローログの主なプロパティをご覧ください。

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

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

仕組み

VPC フローログは、VM インスタンスや Google Kubernetes Engine ノードなどの VPC リソースから送受信されるネットワーク フローのサンプルを記録します。

フローログは Cloud Logging で表示でき、Logging のエクスポートがサポートする任意の宛先にエクスポートできます。Log Analytics を使用してログデータを分析するクエリを実行し、クエリ結果をグラフとテーブルの形式で表示できます。

Flow Analyzer は、Log Analytics を使用して VPC フローログに対してクエリを実行し、最高データフロー グラフやすべてのデータの詳細を提供するテーブルなどの情報を提供することで、トラフィック フローの詳細を確認できます。

クエリ コンポーネント

トラフィック フローを分析して理解するには、VPC フローログに対してクエリを実行する必要があります。Flow Analyzer は、クエリの作成、表示オプションのカスタマイズ、ドリルダウンにより、トラフィック フローの表示とモニタリングに役立ちます。

トラフィックの集計

VPC トラフィック フローを分析するには、リソース間のフローをフィルタする集計方法を決める必要があります。Flow Analyzer は、次の方法で集計のためにフローログを整理します。

  • 送信元と宛先: このオプションでは、VPC フローログに含まれる SRCDEST の情報を使用します。このビューは、送信元から宛先へのトラフィックを集計します。
  • クライアントとサーバー: このオプションは、接続のイニシエーターを探します。ポート番号が小さいリソースは、サーバーと見なされます。また、サービスはリクエストを開始しないため、gke_service 定義があるリソースをサーバーとみなします。このビューでは、双方向のトラフィックが集計されます。

期間セレクタ

デフォルトの期間は 1 時間ですが、プリセット時間のオプションから選択することも、カスタムの開始時刻と終了時刻を指定することも可能で、期間セレクタを使用して特定のタイムスタンプを中心に期間を設定することもできます。たとえば、過去 1 週間のデータを表示する場合は、期間セレクタから [過去 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)

エンドポイント フィルタやトラフィック オプションを変更しようとすると、結果が異なる場合があります。更新された結果を表示するには、クエリを再実行する必要があります。

基本フィルタを使用してクエリを作成して実行するには、クエリを作成して実行するをご覧ください。

SQL フィルタ

複雑なクエリを作成するには、SQL フィルタを使用します。複雑なクエリを使用すると、次のようなタスクを実行できます。

  1. フィールド値の相互比較
  2. AND/OR 演算とネストされた OR 演算を使用して複雑なブール論理を構築する
  3. BigQuery 関数を使用した IP アドレスに対し複雑なオペレーションを実行する

SQL フィルタクエリは BigQuery SQL 構文を使用します。詳細については、BigQuery の SQL 構文をご覧ください。

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

SQL フィルタを使用してクエリを作成し実行するには、SQL クエリを作成して実行するをご覧ください。

クエリ結果

クエリ結果には次のコンポーネントが含まれます。

  • 最高データフロー グラフ: トラフィックの上位 5 つのトラフィック フローを残りのトラフィックと一緒に表示します。このグラフを使用すると、トラフィックの急増などの傾向を確認できます。
  • すべてのデータフロー テーブル: 選択した期間で集計された最大 10,000 行までの上位のトラフィック フローを表示します。このテーブルには、クエリのフィルタを定義するときにフローを整理するために選択したフィールドが表示されます。

表示オプション

クエリの実行後に、さまざまな表示オプションを使用して、結果をさらに絞り込むことができます。新しく選択したオプションを反映するようにグラフと表の両方が更新されます。カスタム オプションを選択してクエリを実行するには、表示オプションのカスタマイズをご覧ください。

指標タイプ

次のいずれかの指標タイプを表示できます。

  • 送信バイト数: ペイロード ボリュームに関する情報が含まれます。ヘッダーは含まれません。一部のパケットにはヘッダーのみがあり、ペイロードが含まれていないため、この指標値がゼロになる場合があります。

  • 送信パケット数: 送信元から宛先に送信されたパケット数を示します。

どちらの指標タイプでも、追加の指標の集計を選択できます。

指標の集計

指標の集計は、次の方法で表示できます。

指標として [送信バイト数] を選択し、トラフィック集計として [送信元と宛先] を選択した場合、次のオプションを使用できます。

  • 総トラフィック: デフォルトで常に有効になっており、選択した期間の合計トラフィックが表示されます。
  • 平均トラフィック レート: 選択した期間の平均トラフィック レート(1 秒あたりのバイト数)を示します。トラフィックは観測されたアライメント期間に対してのみ計算されます。詳細については、アライメント期間をご覧ください。
  • 中央トラフィック レート: 選択した期間におけるトラフィックの中央値(1 秒あたりのバイト数)が表示されます。これは、トラフィックが観測されたアライメント期間に対してのみ計算されます。詳細については、アライメント期間をご覧ください。
  • P95 トラフィック レート: 選択した期間の 95 パーセンタイル トラフィック レート(1 秒あたりのバイト数)を示します。トラフィックは観測されたアライメント期間に対してのみ計算されます。詳細については、アライメント期間をご覧ください。
  • 最大トラフィック レート: 選択した期間の最大トラフィック レート(1 秒あたりのバイト数)を表示します。

指標として [送信済みパケット] を選択し、トラフィック集計として [送信元と宛先] を選択した場合、次のオプションを使用できます。

  • 集計パケット: 選択した期間に送信されたパケット数が表示されます。デフォルトで有効。
  • 平均パケットレート: 選択した期間の平均パケットレートが表示されます。これは、トラフィックが観測されたアライメント期間に対してのみ計算されます。詳細については、アライメント期間をご覧ください。
  • 中央パケット率: 選択した期間のパケット率の中央値が表示されます。これは、トラフィックが観測されたアライメント期間に対してのみ計算されます。詳細については、アライメント期間をご覧ください。
  • P95 パケットレート: 選択された期間の 95 パーセンタイルのパケットレートを示します。トラフィックが観測されたアライメント期間に対してのみ計算されます。詳細については、アライメント期間をご覧ください。
  • 最大パケットレート: 選択した期間の最大パケットレートが表示されます。

アライメント期間

グラフの詳細の時間範囲は、5 秒から 1 日の間で選択できます。自動モードでは、選択した期間の長さに応じて最適なアライメント期間が選択されます。

タイムライン上の各ポイントは、特定の期間の集計データを表します。この期間の長さは、アライメント期間と呼ばれます。

アライメント期間の値を小さくすると、パフォーマンスは低下します。アライメント期間の値が大きいほど、グラフの粒度が小さくなります。大きな値の短いスパイクは表示されない場合があります。

期間が長い場合、短いアライメント期間は役に立ちません。たとえば、30 日間で 1 分のアライメントを選択した場合、Flow Analyzer は 43,000 を超えるデータポイントを生成します。これは 4K ディスプレイの 10 倍の画素数なので、すべての詳細を表示することはできず、一部のオプションは長時間使用できません。

サンプリングを行う方法と、クエリ結果を表示するためのアライメント期間の決定の詳細については、指標とアライメント期間をご覧ください。

サンプリング ポイント

VM 間ネットワーク通信の場合、トラフィックを送受信する VM の両方でフローログを利用できます(サンプリングを適用)。VPC フローログが有効になっているサブネットに両方のエンドポイント VM がある場合、同じフローが 2 回報告されます。次の 4 つのいずれかの方法を選択して、計算された指標に貢献する VPC フローログとその評価方法を決定できます。

  • 送信元エンドポイント: フローの送信元エンドポイントで報告された送信バイト数または送信パケット数
  • 宛先エンドポイント: フローの宛先エンドポイントで報告された送信バイト数または送信バイト数
  • 送信元エンドポイントと宛先エンドポイントの合計: フローの両方のエンドポイントによって報告された送信バイト数または送信パケット数の合計
  • 送信元エンドポイントと宛先エンドポイントの平均: VPC フローログで送信元と宛先の両方の情報が利用できる場合に、フローの両方のエンドポイントで報告された送信バイト数または送信パケット数の平均

トラフィックの重複除去

送信元 VM と宛先 VM で報告されるトラフィックが 2 回カウントされないようにするには、[送信元エンドポイントと宛先エンドポイントの平均] サンプリング オプションを選択します。Flow Analyzer は、各アライメント期間内で同等のフローを識別し、報告された指標値(バイト数とパケット数)の平均を計算します。

同等のフローが SRC と DEST の両方で報告されるアライメント期間では、特定のアライメント期間に起因するすべてのトラフィックが 2 で除算されます。

フローの詳細を表示する

[すべてのデータフロー] テーブルで、任意のフローの [詳細を表示] をクリックします。[フローの詳細] パネルが表示されます。このパネルには、送信元、宛先、トラフィック、可能なドリルダウン オプションなどの情報が表示されます。

追加のフィールドを使用して、選択したトラフィック フローを分割することで、ドリルダウンできます。たとえば、フローに Google Cloud ゾーン X からゾーン Y への約 1,000 GiB のトラフィックが含まれている場合は、送信元 IP アドレスなど、別のフィールドを使用してドリルダウンできます。結果には、元のフローを構成する複数の IP アドレスが含まれます。

ドリルダウン コンポーネントに表示されるフィールドは、次のように選択されます。

  • フローの詳細にアクセスすると、Flow Analyzer によっていくつかのクエリが実行されます。各クエリは、VPC フローログで使用可能で、元のクエリではまだ使用されていないフィールドを使用して、選択したフローのドリルダウンを試みます。たとえば、実行されたクエリにすでに IP アドレスの詳細が含まれている場合、このフィールドを使用してクエリを再度実行する必要はなく、このフィールドを使用してドリルダウンすることはできません。
  • 追加のクエリのいずれかが単一のフィールド値を返す場合、以前に取得されていなくても、ソースと宛先の詳細セクションに追加されます。
  • いずれかのクエリ結果に複数のフィールド値が含まれている場合は、対応するフィールドがドリルダウン リストに表示されます。

ドリルダウン リストでフィールドを選択すると、ドリルダウン テーブルとグラフが更新され、上位 3 つのトラフィック フローが表示されます。

[過去と比較] 切り替えを使用することもできます。この機能を選択すると、6 本の線が表示されます。ドリルダウンからの上位 3 人のトーカーを表す 3 本の実線と、過去のトラフィックを表す対応する色の 3 本の破線です。

より多くのフィールドを使用してトラフィック フローをドリルダウンするには、トラフィック フローのドリルダウンをご覧ください。

ログ分析で探索

未加工の SQL クエリはログ分析で表示できます。

高度な分析を行う場合は、トラフィックの可視化に使用する SQL コードを直接変更できます。[Log Analytics で調べる] 機能を使用すると、クエリが事前に入力された [Log Analytics] ページが表示されます。

次のステップ