Gunakan log alur untuk menyimpan metadata traffic jaringan, termasuk 5-tuple, di Google Distributed Cloud (GDC) dengan air gap ke stack kemampuan observasi dalam bentuk log yang dapat dikueri. Gunakan log ini untuk:
- Memahami alur traffic untuk layanan tertentu dalam organisasi.
- Memahami dan mengidentifikasi masalah terkait responsivitas jaringan workload Kubernetes.
- Memverifikasi kebijakan jaringan Kubernetes.
Log alur adalah fitur GDC yang didasarkan pada project Hubble open source: https://github.com/cilium/hubble. Konfigurasikan log alur menggunakan resource FlowLog dari Networking API.
Sebelum memulai
Anda harus mendapatkan otorisasi untuk mengelola atau melihat log alur dari konsol GDC. Untuk mengelola log alur, minta Admin Org IAM Anda untuk memberi Anda peran Flow Log Admin (
flowlog-admin). Untuk hanya melihat log alur yang ada, minta Admin Org IAM Anda untuk memberi Anda peran Flow Log Viewer (flowlog-viewer).Untuk mengetahui informasi tentang cara menetapkan binding peran dari konsol GDC, lihat Memberikan akses ke resource.
Sebelum membuat kueri dan melihat log alur di dasbor, Anda harus mendapatkan akses ke instance pemantauan. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri dan melihat metrik.
Membuat log alur
Membuat log alur untuk menyimpan metadata traffic jaringan yang difilter berdasarkan kumpulan spesifikasi tertentu.
Membuat log alur dengan filter protokol dan endpoint
Buat file bernama
example-flowlog.yamldengan konten berikut:apiVersion: networking.gdc.goog/v1 kind: FlowLog metadata: name: "FLOW_LOG_NAME" namespace: "platform" spec: filters: - l4Protocols: - udp endpoint: ports: - 53 lifetime: duration: "12h"Ganti
FLOW_LOG_NAMEdengan nama yang dipilih untuk log alur.Dalam contoh ini, log alur menangkap semua traffic UDP di port 53 (seperti traffic DNS). Perekaman log akan berhenti 12 jam sejak objek dibuat.
Buat objek log alur:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yamlGanti
MANAGEMENT_API_SERVERdengan jalur kubeconfig server Management API zona.Pastikan nilai
FLOW_LOG_NAMEtelah direkonsiliasi dengan benar, dan proses logging telah dimulai dengan memeriksa kolomStatus:kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAMEContoh status:
Status: Clusters: Cluster: org-1-infra-cluster Conditions: Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Name: cilium-flowlog-config Namespace: kube-system Node: org-1-infra Cluster: user-vm-1-cluster Conditions: Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Name: cilium-flowlog-config Namespace: kube-system Node: user-vm-1 Cluster: user-vm-2-cluster Conditions: Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Name: cilium-flowlog-config Namespace: kube-system Node: user-vm-2 Conditions: Last Transition Time: 2024-01-18T19:17:53Z Message: Observed Generation: 1 Reason: Active Status: True Type: Logging Last Transition Time: 2024-01-19T01:46:11Z Message: Observed Generation: 1 Reason: ResourcesPropagated Status: True Type: Propagated Last Transition Time: 2024-01-18T19:17:53Z Message: Observed Generation: 1 Reason: Succeeded Status: True Type: Reconciled Start Time: 2024-01-18T19:17:53Z End Time: 2024-01-18T20:17:53ZContoh output ini berisi kondisi berikut:
Propagated: konfigurasi log alur dikirim ke clusteruser-vm-1,user-vm-2, danorg-1-infra.Reconciled: log alur berhasil diprogram di clusteruser-vm-1,user-vm-2, danorg-1-infra.Logging: log alur tidak habis masa berlakunya atau dinonaktifkan, tidak mengalami error, dan dapat menghasilkan log jika filter cocok dengan alur.Start TimedanEnd Timemenunjukkan bahwa tugas dimulai pada19:17:53, dan berakhir pada20:17:53.
Agar log alur ini dapat berhasil menghasilkan entri log, semua kondisi
Propagated,Reconciled, danLoggingharus benar.
Mengubah log alur
Untuk mengubah log alur yang ada, ubah definisi objek log alur yang dibuat di file example-flowlog.yaml dan terapkan lagi:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml
Melihat log alur di dasbor pemantauan
Buka dasbor log operasional. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri log operasional.
Tetapkan nilai drop-down identifier ke
network-flow-logs, lalu klik add json parser, dan berikan nilai berikut ke kueri:{identifier="network-flow-logs"} | json:
Klik Run query. Tindakan ini akan menampilkan entri log alur yang disimpan:

Gunakan filter untuk menyaring hasil lebih lanjut. Misalnya, berikan nilai
user-vm-1pada drop-down cluster untuk hanya melihat flow yang dikumpulkan dari clusteruser-vm-1:
Jelajahi entri log alur, luaskan entri untuk melihat detailnya, dan tambahkan lebih banyak filter label sesuai kebutuhan menggunakan ikon pintasan. Dalam contoh ini, kita ingin memfilter flow lebih lanjut berdasarkan alamat IP sumbernya:

Klik ikon pintasan
+untuk memfilter flow berdasarkan kolom metadata tertentu.
Melihat hasil berdasarkan nama log alur
Jika beberapa log alur dibuat, filter label tambahan dapat dibuat untuk melihat hasil dari satu atau beberapa log alur.
Untuk melihat hasil yang dibatasi pada log yang dihasilkan oleh FLOW_LOG_NAME, buat filter label dengan nilai berikut:
Labeldisetel keOn. ID ini peka huruf besar/kecil.Operatordisetel ke~=. Tindakan ini menggunakan pencocok ekspresi reguler.Valuedisetel ke/FLOW_LOG_NAME/. NilaiFLOW_LOG_NAMEharus diapit oleh/.
Filter hasil untuk hanya melihat log yang dihasilkan oleh flowlog1:

Referensi
- Dokumentasi tentang Hubble Dynamic Exporter: https://docs.cilium.io/en/latest/observability/hubble-exporter/#dynamic-exporter-configuration