フローログにアクセスする
このページでは、Cloud Logging を使用してフローログにアクセスする方法について説明します。
ログ エクスプローラでフローログにアクセスする
フローログを表示するには、ログ エクスプローラを使用します。ログ エクスプローラでは、リソース フィルタとクエリを使用してフローログを表示できます。VPC Flow Logs によって生成されたログは、次のようにグループ化されます。
- サブネットのフローログは
compute.googleapis.com/vpc_flows
ログで確認できます。 - VLAN アタッチメントと Cloud VPN トンネルのフローログは、
networkmanagement.googleapis.com/vpc_flows
ログ(プレビュー)で確認できます。
IAM を構成する
ロギングのアクセス制御を構成するには、Logging のアクセス制御ガイドをご覧ください。
リソース フィルタを使用してフローログにアクセスする
リソース フィルタを使用して Google Cloud プロジェクトのフローログを表示するには、次のセクションをご覧ください。クエリを使用してフローログにアクセスするで説明されているように、ログ エクスプローラのクエリを使用して、これらのログを表示することもできます。
すべてのサブネットのフローログにアクセスする
コンソール
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[すべてのリソース] をクリックします。
[リソースの選択] リストで [サブネットワーク] をクリックし、[適用] をクリックします。
[すべてのログ名] をクリックします。
[ログ名の選択] リストで [Compute Engine] を見つけて [vpc_flows] をクリックし、[適用] をクリックします。
特定のサブネットのフローログにアクセスする
コンソール
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[すべてのリソース] をクリックします。
[リソースの選択] リストで、[サブネットワーク] をクリックします。
[サブネットワーク ID] リストでサブネットワークを選択し、[適用] をクリックします。
[すべてのログ名] をクリックします。
[ログ名の選択] リストで [Compute Engine] を見つけて [vpc_flows] をクリックし、[適用] をクリックします。
すべての VLAN アタッチメントと Cloud VPN トンネルのフローログにアクセスする
コンソール
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[すべてのリソース] をクリックします。
[リソースの選択] リストで [VPC Flow Logs 構成] をクリックし、[適用] をクリックします。
特定の VLAN アタッチメントまたは Cloud VPN トンネルのフローログにアクセスする
コンソール
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[すべてのリソース] をクリックします。
[リソースの選択] リストで [VPC Flow Logs 構成] をクリックし、表示する VLAN アタッチメントまたは Cloud VPN トンネルのフローログを収集する VPC Flow Logs 構成を選択します。
[適用] をクリックします。
クエリを使用してフローログにアクセスする
コンソール
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[クエリ] ペインにクエリ エディタ フィールドが表示されない場合は、[クエリを表示] をクリックします。
クエリエディタ フィールドにクエリを入力します。
サブネットのフローログを表示するには、クエリで
compute.googleapis.com
をターゲットにする必要があります。たとえば、特定のサブネットのフローログを表示するには、次のクエリを入力します。PROJECT_ID
は Google Cloud プロジェクト ID に、SUBNET_NAME
はサブネットワークに置き換えます。resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" resource.labels.subnetwork_name="SUBNET_NAME"
VLAN アタッチメントまたは Cloud VPN トンネルのフローログを表示するには、クエリで
networkmanagement.googleapis.com
をターゲットにする必要があります。たとえば、特定の送信元 Cloud VPN トンネルのフローログを表示するには、次のクエリを入力します。resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="src_gateway" labels.target_resource_name="projects/PROJECT_ID/regions/REGION/vpnTunnels/NAME"
次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト IDREGION
: Cloud VPN トンネルのリージョンNAME
: Cloud VPN トンネルの名前
フローログを表示するために実行できるクエリの例については、VPC Flow Logs のログ エクスプローラ クエリの例をご覧ください。
[クエリを実行] をクリックします。
VPC Flow Logs のログ エクスプローラ クエリの例
次の表に、Google Cloud プロジェクトのフローログを表示するために実行できるログ エクスプローラ クエリの例を示します。
表示するログ | クエリ |
---|---|
すべてのフローログ | resource.type=("gce_subnetwork" OR "vpc_flow_logs_config") logName=("projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" OR "projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows") |
サブネットのクエリ | |
すべてのサブネットのログ | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" |
特定のサブネットのログ | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" resource.labels.subnetwork_name="SUBNET_NAME" |
特定の仮想マシン(VM)インスタンスのログ | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" (jsonPayload.src_instance.vm_name="VM_NAME" OR jsonPayload.dest_instance.vm_name="VM_NAME") |
特定のサブネットワーク範囲へのトラフィックのログ | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" ip_in_net(jsonPayload.connection.dest_ip, SUBNET_RANGE) |
特定の Google Kubernetes Engine(GKE)クラスタのログ | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" (jsonPayload.src_gke_details.cluster.cluster_name="CLUSTER_NAME" OR jsonPayload.dest_gke_details.cluster.cluster_name="CLUSTER_NAME") |
サブネットワークからの下り(外向き)トラフィックのみのログ | logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" AND jsonPayload.reporter="SRC" AND jsonPayload.src_vpc.subnetwork_name="SUBNET_NAME" AND (jsonPayload.dest_vpc.subnetwork_name!="SUBNET_NAME" OR NOT jsonPayload.dest_vpc.subnetwork_name:*) |
Virtual Private Cloud(VPC)ネットワークからのすべての下り(外向き)トラフィックのログ | logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" AND jsonPayload.reporter="SRC" AND jsonPayload.src_vpc.vpc_name="VPC_NAME" AND (jsonPayload.dest_vpc.vpc_name!="VPC_NAME" OR NOT jsonPayload.dest_vpc:*) |
個別の宛先ポートのログ | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.dest_port=PORT jsonPayload.connection.protocol=PROTOCOL |
複数の宛先ポートのログ | resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" jsonPayload.connection.dest_port=(PORT1 OR PORT2) jsonPayload.connection.protocol=PROTOCOL |
Cloud Interconnect と Cloud VPN トンネルの VLAN アタッチメントのクエリ(プレビュー) | |
すべての VLAN アタッチメントと Cloud VPN トンネルのログ | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" |
特定の VPC Flow Logs 構成のログ | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" resource.labels.name="CONFIG_NAME" |
特定の送信元 Cloud VPN トンネルのログ | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="src_gateway" labels.target_resource_name="projects/PROJECT_ID/regions/REGION/vpnTunnels/NAME" |
すべての宛先 VLAN アタッチメントのログ | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="dest_gateway" jsonPayload.dest_gateway.type="INTERCONNECT_ATTACHMENT" |
特定のリージョン内のすべての宛先 VLAN アタッチメントのログ | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="dest_gateway" jsonPayload.dest_gateway.type="INTERCONNECT_ATTACHMENT" jsonPayload.dest_gateway.location="REGION" |
次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。SUBNET_NAME
: サブネットワークの名前。VM_NAME
: VM の名前。SUBNET_RANGE
: CIDR 範囲(192.168.1.0/24
など)。CLUSTER_NAME
: GKE クラスタの名前。VPC_NAME
: VPC ネットワークの名前。PORT1
とPORT2
: 宛先ポート。PROTOCOL
: 通信プロトコル。CONFIG_NAME
: 表示する VLAN アタッチメントまたは Cloud VPN トンネルの VPC Flow Logs 構成の名前。REGION
: VLAN アタッチメントまたは Cloud VPN トンネルのリージョン。NAME
: Cloud VPN トンネルの名前。
BigQuery、Pub/Sub、カスタム ターゲットにログを転送する
Logging のドキュメントのルーティングとストレージの概要の説明に従って、Logging から任意の宛先にフローログを転送できます。フィルタの例については、前のセクションをご覧ください。
トラブルシューティング
Logging で gce_subnetwork
リソースの下に vpc_flows
が表示されない
- 指定したサブネットで Logging が有効になっていることを確認します。
- VPC フローがサポートされるのは VPC ネットワークのみです。レガシー ネットワークを使用している場合、ログは表示されません。
- 共有 VPC ネットワークでは、ログはホスト プロジェクトでのみ表示され、サービス プロジェクトでは表示されません。ホスト プロジェクトのログを調べていることを確認してください。
- Logging の除外フィルタは、指定されたログをブロックします。VPC Flow Logs を破棄する除外ルールが存在しないことを確認してください。
- ログルーターに移動
- ロギング バケットの 「その他の操作」メニューで、[シンクの詳細を表示] をクリックします。
- VPC Flow Logs を破棄する除外ルールが存在しないことを確認します。
- Google Cloud CLI または API を使用して、ログ フィルタリング構成が特定のサブネット内のすべてのトラフィックをフィルタリングしているかどうかを判断します。たとえば、
filterExpr
がfalse
に設定されている場合、ログは表示されません。
一部のログで RTT 値またはバイト値が存在しない
- RTT をキャプチャするのに十分なパケットがサンプリングされなかった場合、RTT の測定値が存在しないことがあります。この現象は、接続が少量である場合に発生する可能性が高くなります。
- RTT 値は、VM から報告された TCP フローに対してのみ使用できます。
- 一部のパケットはペイロードなしで送信されます。ヘッダーのみのパケットがサンプリングされた場合、バイト値は 0 になります。
一部のフローが見つからない
- 上り(内向き)パケットは、上り(内向き)の VPC ファイアウォール ルールの後にサンプリングされます。ログに記録されると想定したパケットが、いずれかの上り(内向き)ファイアウォール ルールによって拒否されていないかどうか確認してください。VPC ファイアウォール ルールが上り(内向き)パケットをブロックしているかどうか不明な場合は、ファイアウォール ルールのロギングを有効にしてログを調べてください。
- サポートされているのは TCP、UDP、ICMP、ESP、GRE プロトコルのみです。VPC Flow Logs は他のプロトコルをサポートしていません。
- ログはサンプリングされます。非常に少量のフローでは、一部のパケットが失われる場合があります。
一部のログで GKE アノテーションが見つからない
GKE クラスタがサポート対象バージョンであることを確認してください。
一部の GKE フローのログが見つからない
クラスタでノード内の可視化が有効になっていることを確認してください。有効になっていない場合、同じノード上の Pod 間のフローはログに記録されません。
次のステップ
- Logging のドキュメントを参照する
- Logging シンクのドキュメントを参照する