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 フローログに含まれる SRC と DEST の情報が使用されます。このビューでは、送信元から宛先へのトラフィックが集計されます。
- クライアントとサーバー: このオプションでは、接続のイニシエータを検索します。ポート番号が小さいリソースがサーバーであるとみなされます。また、サービスはリクエストを開始しないため、gke_service 定義があるリソースをサーバーとみなします。このビューでは、両方向のトラフィックが集計されます。
期間セレクタ
デフォルトの期間は 1 時間ですが、プリセット時間のオプションから選択することも、カスタムの開始時刻と終了時刻を指定することも可能で、期間セレクタを使用して特定のタイムスタンプを中心に期間を設定することもできます。たとえば、過去 1 週間のデータを表示する場合は、期間セレクタから [過去 1 週間] を選択します。
期間セレクタを使用してタイムゾーンの設定を行うこともできます。
基本フィルタ
両方向のリソースに応じてフローを整理することで、クエリを作成できます。
フィルタを使用するには、リストからフィールドを選択し、これらのフィールドの値を指定します。
複数のフィルタ式を追加して、選択した Key-Value ペアに一致するフローをフィルタできます。同じフィールドに対してさらにフィルタを選択すると、OR 演算子が使用されます。異なるフィールドのフィルタを選択すると、AND 演算子が使用されます。
たとえば、2 つの IP アドレス値(1.2.3.4
と 10.20.10.30
)と 2 つの Country 値(US
と France
)を選択した場合は、次のフィルタ ロジックがクエリに適用されます。
(IP=1.2.3.4
OR IP=10.20.10.30
) AND (Country=US
OR Country=France
)
エンドポイント フィルタやトラフィック オプションを変更しようとすると、結果が異なる場合があります。更新された結果を表示するには、クエリを再度実行する必要があります。
基本フィルタを使用してクエリを作成して実行するには、クエリを作成して実行するをご覧ください。
SQL フィルタ
複雑なクエリを作成するには、SQL フィルタを使用します。複雑なクエリを使用すると、次のようなタスクを実行できます。
- フィールド値の相互比較
- AND/OR 演算とネストされた OR 演算を使用した複雑なブール論理の作成
- 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 でフローログ(サンプリングが適用されたもの)を利用できます。両方のエンドポイント VM が VPC フローログが有効になっているサブネット内にある場合、同じフローが 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 コードを直接変更できます。[ログ分析で探索] 機能を使用すると、事前入力されたクエリで [ログ分析] ページが表示されます。
次のステップ
- 指標とアライメント期間
- トラフィック フローを分析する
- ログ分析を有効にする
- 一元的なバケットを構成する
- Flow Analyzer から接続テストを実施する
- トラフィック フローをモニタリングする
- Flow Analyzer でデータの問題をトラブルシューティングする