Google Cloud Platform VPCフローログ
VPCフローログでは仮想プライベートクラウド(VPC)内のネットワークインターフェースからのIPトラフィックまでの情報を取得できます。
このドキュメントでは、GCPからVPCフローログを収集し、Site24x7アプリケーションログに転送する方法を紹介します。
監視に必要な条件
ログインユーザーにプロジェクトのオーナーレベル権限が必要です。
必要な権限は具体的に次のとおりです。
- Pub/Subトピックの作成と権限の設定
- ログルーターの作成と更新
- データフロージョブの作成
既存サブネットのVPCフローログの有効化
既存サブネットのVPCフローログを有効化する方法は次のとおりです。
詳細はGoogle公式ドキュメントをご確認ください。
- GCPコンソールでVPCネットワークページに移動します。
- 更新を行うサブネットを選択し、[FLOW LOGS]をクリックします。
- 収集間隔とサンプルレートを調整し、ログとコストの管理を行います。
例として、サンプルレートに「100%」、収集間隔に「5秒」を指定した場合、すべてのエントリが記録され、最も高いコストとなります。
- [保存]をクリックします。
GCP VPCフローログのベストプラクティス
収集間隔
ネットワーク接続問題のトラブルシュートやセキュリティ的脅威を検出するために、弊社では5秒の収集間隔を推奨しています。
ネットワークパフォーマンスの分析やネットワークコストの最適化にのみ使用する場合は、1、5、10分への設定を推奨します。
サンプリングレート
100%(全てのログ)に設定してください。
これによりSite24x7がすべてのネットワークトラフィックを収集できるようになります。
GCPからのログ転送
GCPからのログを転送するための設定手順は、こちらのページをご確認ください。
Log Routing Sink作成時に、次のコマンドを実行してください。
gcloud logging sinks create SINK_NAME pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_NAME --log-filter='resource.type="gce_subnetwork"'
サンプルログ
{
"insertId": "2s85kofd71z0y",
"jsonPayload": {
"reporter": "SRC",
"src_gke_details": {
"pod": {
"pod_name": "packageserver-df86dcdd-qlpnz",
"pod_namespace": "olm"
},
"cluster": {
"cluster_name": "redis-test",
"cluster_location": "us-central1-a"
},
"service": [
{
"service_name": "packageserver-service",
"service_namespace": "olm"
}
]
},
"src_instance": {
"zone": "us-central1-a",
"region": "us-central1",
"project_id": "zylker-a76a7ass",
"vm_name": "gke-redis-test-default-pool-2f152eb2-53hc"
},
"dest_vpc": {
"project_id": "zylker-a76a7ass",
"vpc_name": "default",
"subnetwork_name": "default"
},
"src_vpc": {
"vpc_name": "default",
"project_id": "zylker-a76a7ass",
"subnetwork_name": "default"
},
"dest_instance": {
"region": "us-central1",
"vm_name": "gke-redis-test-default-pool-2f152eb2-x642",
"project_id": "zylker-a76a7ass",
"zone": "us-central1-a"
},
"dest_gke_details": {
"pod": {
"pod_namespace": "kube-system",
"pod_name": "konnectivity-agent-777f7f84d6-57fgj"
},
"cluster": {
"cluster_name": "redis-test",
"cluster_location": "us-central1-a"
}
},
"packets_sent": "8",
"end_time": "2023-10-11T05:25:47.962287597Z",
"bytes_sent": "1448",
"start_time": "2023-10-11T05:25:47.958517575Z",
"connection": {
"dest_ip": "10.10.0.10",
"protocol": 6,
"dest_port": 11111,
"src_ip": "10.10.0.10",
"src_port": 1111
}
},
"resource": {
"type": "gce_subnetwork",
"labels": {
"subnetwork_name": "default",
"project_id": "zylker-a76a7ass",
"location": "us-central1-a",
"subnetwork_id": "12345678901"
}
},
"timestamp": "2023-10-11T05:25:52.288729877Z",
"logName": "projects/zylker-a76a7ass
logs/compute.googleapis.com%2Fvpc_flows",
"
receiveTimestamp": "2023-10-11T05:25:52.288729877Z"
}
VPCフローログダッシュボード
GCP VPCフローログダッシュボードで表示できるメトリックは次のとおりです。
- 転送済みバイトの合計
- 平均転送済みバイト
- 送信済みパケットの合計
- 平均送信済みパケット
- 最大レイテンシー
- 平均レイテンシー
- トラフィックごとのトップ送信元VM
- 送信元アドレスロケーション
- 送信元IPからの送信済みバイトの合計
- サブネットワークごとのトラフィック
- 時間単位のプロトコルごとのVPCフロー
- 送信パケット経過時間
- 送信元および宛先IPアドレスごとのバイト転送
- 宛先経過時間の平均レイテンシー
- 宛先アドレスロケーション
- VPCフローごとのトップ外部宛先ポート
- VPCフローごとのトップ外部IP
- トラフィックごとのトップ宛先IP
関連ガイド