Tentang data Log Aliran VPC

Halaman ini menjelaskan format data Log Aliran VPC, termasuk kolom dasar dan metadata yang tersedia. Panduan ini juga menjelaskan cara menggunakan pemfilteran log sehingga hanya log yang cocok dengan kriteria tertentu yang akan dibuat.

Format data

Data log berisi kolom dasar, yang merupakan kolom inti dari setiap data log, dan kolom metadata yang menambahkan informasi tambahan. Kolom metadata dapat dihilangkan untuk menghemat biaya penyimpanan.

Beberapa kolom log menggunakan format multi-kolom, dengan lebih dari satu bagian data dalam kolom tertentu. Misalnya, kolom connection memiliki format IpConnection, yang berisi alamat IP dan port sumber dan tujuan, serta protokol, dalam satu kolom. Kolom multi-kolom ini dijelaskan di bawah tabel format data.

Nilai untuk kolom metadata tidak didasarkan pada jalur bidang data. Nilai tersebut merupakan perkiraan dan mungkin tidak ada atau salah. Tidak seperti kolom metadata, nilai untuk kolom dasar diambil langsung dari header paket.

Kolom Format kolom Jenis kolom: Metadata dasar atau opsional
koneksi IpConnection
5-tuple yang menjelaskan alur.
Dasar
pelapor string
Sisi yang melaporkan aliran. Dapat berupa SRC, DEST, SRC_GATEWAY, atau DEST_GATEWAY.
Dasar
rtt_msec int64
Latensi seperti yang diukur selama interval waktu. Kolom ini hanya tersedia untuk traffic TCP yang dilaporkan dari VM. Latensi yang diukur adalah waktu yang berlalu dari pengiriman SEQ hingga penerimaan ACK yang terkait. Hasil latensi adalah jumlah RTT jaringan dan waktu yang digunakan oleh aplikasi.
Base
bytes_sent int64
Jumlah byte yang dikirim dari sumber ke tujuan.
Dasar
packets_sent int64
Jumlah paket yang dikirim dari sumber ke tujuan.
Dasar
start_time string
Stempel waktu (format string tanggal RFC 3339) dari paket pertama yang diamati selama interval waktu gabungan.
Base
end_time string
Stempel waktu (format string tanggal RFC 3339) dari paket terakhir yang diamati selama interval waktu gabungan.
Dasar
Kolom metadata sumber dan tujuan
src_gateway GatewayDetails
Jika sumber flow adalah endpoint cloud lokal atau lainnya yang terhubung ke Google Cloud melalui gateway seperti lampiran VLAN untuk Cloud Interconnect atau tunnel Cloud VPN dan salah satu kondisi berikut terpenuhi, kolom ini akan diisi dengan detail gateway:
  • Gateway sumber adalah pelapor alur.
  • Tujuan flow adalah pelapor, dan jaringan VPC yang terhubung ke gateway sumber berada dalam project Google Cloud yang sama dengan project tempat VPC Flow Logs melaporkan log untuk tujuan flow.
Metadata
dest_gateway GatewayDetails
Jika tujuan alur adalah endpoint cloud lokal atau cloud lainnya yang terhubung ke Google Cloud melalui gateway seperti lampiran VLAN untuk Cloud Interconnect atau tunnel Cloud VPN dan salah satu kondisi berikut terpenuhi, kolom ini akan diisi dengan detail gateway:
  • Gateway tujuan adalah pelapor alur.
  • Sumber aliran adalah pelapor, dan jaringan VPC yang terhubung ke gateway tujuan berada dalam project Google Cloud yang sama dengan project tempat VPC Flow Logs melaporkan log untuk sumber aliran.
Metadata
src_gke_details GkeDetails
Jika sumber alur adalah endpoint Google Kubernetes Engine (GKE), kolom ini akan diisi dengan detail endpoint GKE.
Metadata
dest_gke_details GkeDetails
Jika tujuan alur adalah endpoint GKE, kolom ini akan diisi dengan detail endpoint GKE.
Metadata
src_google_service GoogleServiceDetails
Jika sumber alur adalah Google API, kolom ini akan diisi dengan metadata Google API yang tersedia.
Metadata
dest_google_service GoogleServiceDetails
Jika tujuan alur adalah Google API, kolom ini akan diisi dengan metadata Google API yang tersedia.
Metadata
src_instance InstanceDetails
Jika sumber alur adalah VM yang terletak di jaringan VPC dan salah satu kondisi berikut terpenuhi, kolom ini akan diisi dengan detail instance VM:
  • VM sumber adalah pelapor alur.
  • Tujuan aliran adalah pelapor, dan VM sumber, atau jaringan VPC yang dihubungkan dengan VM sumber, berada dalam project Google Cloud yang sama dengan project tempat VPC Flow Logs melaporkan log untuk tujuan aliran.
Metadata
dest_instance InstanceDetails
Jika tujuan alur adalah VM yang terletak di jaringan VPC dan salah satu kondisi berikut terpenuhi, kolom ini akan diisi dengan detail instance VM.
  • VM tujuan adalah pelapor alur.
  • Sumber aliran adalah pelapor, dan VM tujuan, atau jaringan VPC yang dihubungkan dengan VM tujuan, berada dalam project Google Cloud yang sama dengan project tempat VPC Flow Logs melaporkan log untuk sumber aliran.
Metadata
src_location GeographicDetails
Jika sumber alur adalah alamat IP publik di luar jaringan VPC, kolom ini akan diisi dengan metadata lokasi yang tersedia.
Metadata
dest_location GeographicDetails
Jika tujuan flow adalah alamat IP publik di luar jaringan VPC, kolom ini akan diisi dengan metadata lokasi yang tersedia.
Metadata
src_vpc VpcDetails
Jika sumber aliran adalah VM yang terletak di jaringan VPC dan salah satu kondisi berikut terpenuhi, kolom ini akan diisi dengan detail jaringan VPC:
  • VM sumber adalah pelapor alur.
  • Tujuan aliran adalah pelapor, dan VM sumber, atau jaringan VPC yang dihubungkan dengan VM sumber, berada dalam project Google Cloud yang sama dengan project tempat Log Aliran VPC melaporkan log untuk tujuan aliran.
Metadata
dest_vpc VpcDetails
Jika tujuan alur adalah VM yang terletak di jaringan VPC dan salah satu kondisi berikut terpenuhi, kolom ini akan diisi dengan detail jaringan VPC:
  • VM tujuan adalah pelapor alur.
  • Sumber aliran adalah pelapor, dan VM tujuan, atau jaringan VPC yang dihubungkan dengan VM tujuan, berada dalam project Google Cloud yang sama dengan project tempat Log Aliran VPC melaporkan log untuk sumber aliran.
Metadata
Kolom metadata lainnya
internet_routing_details InternetRoutingDetails
Jika alirannya antara Google Cloud dan internet, kolom ini akan diisi dengan detail pemilihan rute. Hanya tersedia untuk aliran keluar.
Metadata
load_balancing LoadBalancingDetails
Jika alur melewati load balancer di salah satu konfigurasi berikut, kolom ini akan diisi dengan detail Cloud Load Balancing:
  • Pelapor alur adalah klien load balancer, dan jenis load balancer adalah APPLICATION_LOAD_BALANCER, PROXY_NETWORK_LOAD_BALANCER, PASSTHROUGH_NETWORK_LOAD_BALANCER, atau PROTOCOL_FORWARDING.
  • Pelapor alur adalah backend load balancer, dan jenis load balancer adalah PASSTHROUGH_NETWORK_LOAD_BALANCER atau PROTOCOL_FORWARDING.
Metadata
network_service NetworkServiceDetails
Jika header Differentiated Services Code Point (DSCP) ditetapkan, kolom ini akan diisi dengan detail layanan jaringan.
Metadata
psc PrivateServiceConnectDetails
Jika alur melewati Private Service Connect dalam salah satu konfigurasi berikut, kolom ini akan diisi dengan detail Private Service Connect:
  • Pelapor traffic Private Service Connect adalah konsumen dan menggunakan endpoint Private Service Connect yang menargetkan layanan yang dipublikasikan atau Google API global.
  • Pelapor traffic Private Service Connect adalah produsen dan menggunakan Load Balancer Jaringan passthrough internal atau penerusan protokol internal.
Metadata

Format kolom IpConnection

Kolom Jenis Deskripsi
protokol int32 Nomor protokol IANA
src_ip string Alamat IP Sumber
dest_ip string Alamat IP tujuan
src_port int32 Port sumber
dest_port int32 Port tujuan

Format kolom GatewayDetails

Kolom Jenis Deskripsi
project_id string ID project Google Cloud gateway
location string Region gateway
nama string Nama gateway
jenis string Jenis gateway. Dapat berupa INTERCONNECT_ATTACHMENT atau VPN_TUNNEL.
vpc VpcDetails Detail jaringan VPC gateway

Format kolom GkeDetails

Kolom Jenis Deskripsi
cluster ClusterDetails Metadata cluster GKE
pod PodDetails Metadata Pod GKE, diisi jika sumber atau tujuan traffic adalah Pod
pelanggan ServiceDetails Metadata Layanan GKE, hanya diisi di endpoint Service. Data berisi hingga dua Service. Jika ada lebih dari dua Service yang relevan, kolom ini berisi satu Service dengan penanda MANY_SERVICES khusus.

Format kolom ClusterDetails

Kolom Jenis Deskripsi
cluster_location string Lokasi cluster. Ini dapat berupa zona atau region, bergantung pada apakah cluster bersifat zonal atau regional.
cluster_name string Nama cluster GKE.

Format kolom PodDetails

Kolom Jenis Deskripsi
pod_name string Nama Pod
pod_namespace string Namespace Pod
pod_workload WorkloadDetails Metadata tentang resource workload tingkat atas yang mengontrol Pod
Format kolom WorkloadDetails
Kolom Jenis Deskripsi
workload_name string Nama pengontrol beban kerja tingkat teratas
workload_type string Jenis pengontrol beban kerja tingkat teratas. Dapat berupa DEPLOYMENT, REPLICA_SET, STATEFUL_SET, DAEMON_SET, JOB, CRON_JOB, atau REPLICATION_CONTROLLER.

Format kolom ServiceDetails

Kolom Jenis Deskripsi
service_name string Nama Service. Jika ada lebih dari dua Service yang relevan, kolom ini ditetapkan ke penanda MANY_SERVICES khusus.
service_namespace string Namespace Service

Contoh:

Jika ada dua layanan, kolom Service akan terlihat seperti ini:

service: [
 0: {
  service_name: "my-lb-service"
  service_namespace: "default"
 }
 1: {
  service_name: "my-lb-service2"
  service_namespace: "default"
 }
]

Jika ada lebih dari dua layanan, kolom Service akan terlihat seperti ini:

service: [
 0: {
  service_name: "MANY_SERVICES"
 }
]

Format kolom GoogleServiceDetails

Kolom Jenis Deskripsi
jenis string Kolom ini ditetapkan ke GOOGLE_API.

Format kolom InstanceDetails

Kolom Jenis Deskripsi
project_id string ID project Google Cloud yang berisi resource VM
region string Region VM
vm_name string Nama instance VM
zone string Zona VM

Format kolom GeographicDetails

Kolom Jenis Deskripsi
asn int32 ASN jaringan eksternal tempat endpoint ini berada.
city string Kota untuk endpoint eksternal
benua string Benua untuk endpoint eksternal
country string Negara untuk endpoint eksternal, direpresentasikan sebagai kode negara ISO 3166-1 Alpha-3
region string Region untuk endpoint eksternal

Format kolom VpcDetails

Kolom Jenis Deskripsi
project_id string ID project Google Cloud yang berisi VPC. Dalam konfigurasi VPC Bersama, project_id adalah ID project host.
subnetwork_name string Nama subnet, jika ada
subnetwork_region string Region subnet, jika ada
vpc_name string Nama jaringan

Format kolom InternetRoutingDetails

Kolom Jenis Deskripsi
egress_as_path AsPath Daftar jalur AS yang relevan. Jika ada beberapa jalur AS yang tersedia untuk alur, kolom tersebut mungkin berisi lebih dari satu jalur AS.

Format kolom AsPath

Kolom Jenis Deskripsi
as_details AsDetails Daftar detail AS untuk semua sistem di jalur AS. Daftar dimulai dari AS pertama yang bersifat eksternal terhadap jaringan Google Cloud dan diakhiri dengan AS tempat alamat IP jarak jauh berada.

Format kolom AsDetails

Kolom Jenis Deskripsi
asn uint32 Nomor sistem otonom (ASN) AS

Format kolom LoadBalancingDetails

Kolom Jenis Deskripsi
forwarding_rule_project_id string ID project Google Cloud dari aturan penerusan
pelapor string Pelapor Cloud Load Balancing. Dapat berupa CLIENT atau BACKEND.
  • Jika pelapor alur adalah klien load balancer, kolom ini ditetapkan ke CLIENT.
  • Jika pelapor alur adalah backend load balancer, kolom ini ditetapkan ke BACKEND.
jenis string Jenis load balancer. Dapat berupa APPLICATION_LOAD_BALANCER, PROXY_NETWORK_LOAD_BALANCER, PASSTHROUGH_NETWORK_LOAD_BALANCER, atau PROTOCOL_FORWARDING.
skema string Skema load balancer. Dapat berupa EXTERNAL_MANAGED, INTERNAL_MANAGED, EXTERNAL, INTERNAL, atau INTERNAL_SELF_MANAGED.
url_map_name string Nama peta URL. Diisi jika jenis load balancer adalah APPLICATION_LOAD_BALANCER.
forwarding_rule_name string Nama aturan penerusan
backend_service_name string Nama layanan backend. Diisi jika pelapor adalah BACKEND dan jenis load balancer adalah PASSTHROUGH_NETWORK_LOAD_BALANCER. Jika jenis grup backend adalah TARGET_POOL, kolom ini tidak akan diisi.
backend_group_name string Nama grup backend. Diisi jika pelapor adalah BACKEND dan jenis load balancer adalah PASSTHROUGH_NETWORK_LOAD_BALANCER.
backend_group_type string Jenis grup backend. Dapat berupa INSTANCE_GROUP, NETWORK_ENDPOINT_GROUP, atau TARGET_POOL. Diisi jika pelapor adalah BACKEND dan jenis load balancer adalah PASSTHROUGH_NETWORK_LOAD_BALANCER.
backend_group_location string Lokasi grup backend. Dapat berupa zona atau region, bergantung pada apakah cakupan grup backend bersifat zonal atau regional. Diisi jika pelapor adalah BACKEND dan jenis load balancer adalah PASSTHROUGH_NETWORK_LOAD_BALANCER. Jika jenis grup backend adalah TARGET_POOL, kolom ini tidak akan diisi.
vpc VpcDetails Detail jaringan VPC load balancer

Format kolom NetworkServiceDetails

Kolom Jenis Deskripsi
dscp int32 Jika kolom Differentiated Services ada di header paket, kolom ini akan diisi dengan nilai DSCP.

Format kolom PrivateServiceConnectDetails

Kolom Jenis Deskripsi
pelapor string Pelapor Private Service Connect. Dapat berupa CONSUMER atau PRODUCER.
psc_endpoint PrivateServiceConnectEndpointDetails Detail endpoint. Diisi jika pelapor adalah CONSUMER.
psc_attachment PrivateServiceConnectAttachmentDetails Detail lampiran layanan. Diisi jika alur traffic menyertakan produsen Private Service Connect.

Format kolom PrivateServiceConnectEndpointDetails

Kolom Jenis Deskripsi
project_id string ID project Google Cloud dari endpoint Private Service Connect
region string Region endpoint. Tidak diisi jika jenis layanan target adalah GLOBAL_GOOGLE_APIS.
psc_connection_id string ID koneksi Private Service Connect
target_service_type string Jenis layanan target. Dapat berupa GLOBAL_GOOGLE_APIS atau PUBLISHED_SERVICE.
vpc VpcDetails Detail jaringan VPC dari Endpoint Private Service Connect

Format kolom PrivateServiceConnectAttachmentDetails

Kolom Jenis Deskripsi
project_id string ID project Google Cloud dari lampiran layanan
region string Region lampiran layanan
vpc VpcDetails Detail jaringan VPC dari lampiran layanan

Anotasi metadata

Data log berisi kolom dasar dan kolom metadata. Bagian Format data mencantumkan kolom mana yang merupakan metadata jenis dan mana yang merupakan basis jenis. Semua kolom dasar selalu disertakan. Anda dapat menyesuaikan kolom metadata yang ingin disimpan.

  • Jika Anda memilih semua metadata, semua kolom metadata dalam format data Log Aliran VPC disertakan dalam log aliran. Saat kolom metadata baru ditambahkan ke format data, log aliran akan otomatis menyertakan kolom baru.

  • Jika Anda tidak memilih metadata, semua kolom metadata akan dihapus.

  • Jika memilih metadata kustom, Anda dapat menentukan kolom metadata yang ingin disertakan oleh kolom induk, seperti src_vpc, atau dengan nama lengkapnya, seperti src_vpc.project_id

    Saat kolom metadata baru ditambahkan ke format data, kolom tersebut dikecualikan dari log aliran, kecuali jika kolom tersebut berada dalam kolom induk yang telah Anda tentukan untuk disertakan.

    • Jika Anda menentukan metadata kustom menggunakan kolom induk, saat kolom metadata baru ditambahkan ke format data dalam kolom induk tersebut, log aliran akan otomatis menyertakan kolom baru tersebut.

    • Jika Anda menentukan metadata kustom menggunakan nama lengkap kolom, kolom metadata baru yang ditambahkan ke kolom induk akan dikecualikan dari log aliran.

Untuk mengetahui informasi tentang cara menyesuaikan kolom metadata, lihat petunjuk Google Cloud CLI atau API untuk mengaktifkan logging aliran VPC saat Anda membuat subnet.

Anotasi metadata GKE

Aliran yang memiliki endpoint di Cluster GKE dapat dianotasi dengan anotasi metadata GKE, yang dapat mencakup detail Cluster, Pod, dan Layanan endpoint.

Anotasi Layanan GKE

Traffic yang dikirim ke ClusterIP, NodePort, atau LoadBalancer dapat menerima anotasi Service. Jika dikirim ke NodePort atau LoadBalancer, aliran akan menerima anotasi Service pada kedua hop koneksi.

Traffic yang dikirim langsung ke port Service Pod dianotasi dengan anotasi Service pada endpoint tujuan.

Traffic yang dikirim ke port Service Pod tempat Pod mendukung lebih dari satu Service di port Service yang sama akan dianotasi dengan beberapa Service di endpoint tujuan. Hal ini terbatas untuk dua Service. Jika jumlahnya lebih dari itu, endpoint akan dianotasi dengan penanda MANY_SERVICES khusus.

Anotasi pod pada traffic internet

Traffic antara Pod dan internet tidak menerima anotasi Pod secara default. Log Aliran VPC tidak dapat menambahkan anotasi Pod karena, untuk paket ke internet, agen penyamaran menerjemahkan alamat IP Pod ke alamat IP node sebelum Log Aliran VPC melihat paket tersebut.

Karena penyamaran, anotasi Pod hanya terlihat jika tujuannya berada dalam salah satu tujuan non-penyamaran default atau dalam daftar nonMasqueradeCIDRs kustom. Jika Anda menyertakan tujuan internet dalam daftar nonMasqueradeCIDRs kustom, Anda harus memberikan cara agar alamat IP Pod internal dapat diterjemahkan sebelum dikirimkan ke internet. Anda dapat menggunakan Cloud NAT, baik untuk cluster pribadi maupun non-pribadi. Lihat interaksi GKE untuk mengetahui detail selengkapnya.

Pemfilteran log

Saat mengaktifkan Log Aliran VPC, Anda dapat menetapkan filter berdasarkan kolom dasar dan metadata yang hanya menyimpan log yang cocok dengan filter. Semua log lainnya akan dihapus sebelum ditulis ke Logging, sehingga menghemat biaya Anda dan mengurangi waktu yang diperlukan untuk menemukan informasi yang Anda cari.

Anda dapat memfilter subset kolom mana pun yang tercantum di Format data, kecuali untuk kolom berikut:

  • rtt_msec
  • bytes_sent
  • packets_sent
  • start_time
  • end_time

Pemfilteran Log Aliran VPC menggunakan CEL, bahasa ekspresi yang disematkan untuk ekspresi logika berbasis atribut. Ekspresi filter untuk Log Aliran VPC memiliki batas 2.048 karakter. Untuk mengetahui informasi selengkapnya, lihat Operator logika CEL yang didukung.

Untuk mengetahui informasi selengkapnya tentang CEL, lihat pengantar CEL dan definisi bahasa. Fitur filter pembuatan mendukung subset terbatas dari sintaksis CEL.

Untuk mengetahui informasi tentang cara membuat subnet yang menggunakan pemfilteran log, lihat petunjuk gcloud CLI atau API untuk Mengaktifkan Log Aliran VPC saat membuat subnet.

Untuk mengetahui informasi tentang cara mengonfigurasi pemfilteran log, lihat petunjuk gcloud CLI atau API untuk Memperbarui parameter Log Aliran VPC.

Contoh 1: Membatasi pengumpulan log ke VM tertentu yang bernama my-vm. Dalam kasus ini, hanya log dengan kolom src_instance seperti yang dilaporkan oleh sumber traffic adalah my-vm atau kolom dst_instance seperti yang dilaporkan oleh tujuan traffic adalh my-vm yang dicatat.

gcloud compute networks subnets update my-subnet \
    --logging-filter-expr="(src_instance.vm_name == 'my-vm' && reporter=='SRC') || (dest_instance.vm_name == 'my-vm' && reporter=='DEST')"

Contoh 2: Membatasi pengumpulan log ke paket yang alamat IP sumbernya berada di subnet 10.0.0.0/8.

gcloud compute networks subnets update my-subnet \
    --logging-filter-expr="inIpRange(connection.src_ip, '10.0.0.0/8')"

Contoh 3: Membatasi pengumpulan log ke traffic yang bersifat eksternal pada VPC.

gcloud compute networks subnets update my-subnet \
    --logging-filter-expr '!(has(src_vpc.vpc_name) && has(dest_vpc.vpc_name))'

Operator logika CEL yang didukung

Ekspresi Jenis yang didukung Deskripsi
benar, salah Boolean Konstanta Boolean

x == y

x != y

Boolean, Int, String

Operator perbandingan

Contoh: connection.protocol == 6

x && y

x || y

Boolean

Operator logika Boolean

Contoh: connection.protocol == 6 && src_instance.vm_name == "vm_1"

!x Boolean Negasi
1, 2.0, 0, ... Int Literal numerik konstanta
x + y String Penyambungan string
"foo", 'foo', ... String Literal string konstanta
x.lower() String Menampilkan nilai huruf kecil dari string
x.upper() String Menampilkan nilai huruf besar dari string
x.contains(y) String Menampilkan benar jika string berisi substring yang ditentukan
x.startsWith(y) String Menampilkan benar jika string dimulai dengan substring yang ditentukan
x.endsWith(y) String Menampilkan benar jika string diakhiri dengan substring yang ditentukan
inIpRange(X, Y) String

Menampilkan benar jika X adalah IP dan Y adalah rentang IP yang berisi X

Contoh: inIpRange("1.2.3.1", "1.2.3.0/24")

x.containsFieldValue(y) x: list
y: map(string, string)

Menampilkan benar jika daftar berisi objek dengan kolom yang cocok dengan key-value pair yang ditentukan

Contoh: dest_gke_details.service.containsFieldValue({'service_name': 'service1', 'service_namespace': 'namespace1'})

has(x) String

Menampilkan benar jika kolom ada.

Langkah selanjutnya