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:
|
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:
|
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:
|
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.
|
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:
|
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:
|
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:
|
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:
|
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 .
|
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, sepertisrc_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. |