Kelola log aliran

Gunakan log alur untuk menyimpan metadata traffic jaringan, termasuk 5-tuple, di Google Distributed Cloud (GDC) yang terisolasi dari internet ke stack kemampuan pengamatan 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.
  • Verifikasi kebijakan jaringan Kubernetes.

Log alur adalah fitur GDC berdasarkan project Hubble open source: https://github.com/cilium/hubble. Konfigurasi 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 IAM Organisasi Anda untuk memberi Anda peran Flow Log Admin (flowlog-admin). Untuk hanya melihat log alur yang ada, minta Admin IAM Organisasi Anda untuk memberi Anda peran Flow Log Viewer (flowlog-viewer).

    Untuk mengetahui informasi tentang cara menyetel 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 Kueri dan lihat metrik.

Membuat log alur

Buat log alur untuk menyimpan metadata traffic jaringan yang difilter oleh serangkaian spesifikasi tertentu.

Membuat log alur dengan filter protokol dan namespace

  1. Buat file bernama example-flowlog.yaml dengan konten berikut:

    apiVersion: networking.gdc.goog/v1
    kind: FlowLog
    metadata:
      name: "FLOW_LOG_NAME"
      namespace: "platform"
    spec:
      filters:
        - l4Protocols:
            - tcp
          source:
            namespacePodSelectors:
              - namespace: gpc-system
              - namespace: kube-system
          destination:
            namespacePodSelectors:
              - namespace: kube-system
      lifetime:
        duration: "1h"
    

    Ganti FLOW_LOG_NAME dengan nama yang dipilih untuk log alur.

    Dalam contoh ini, log alur mencatat semua alur yang koneksi TCP-nya dimulai oleh pod mana pun di namespace gpc-system atau kube-system ke pod mana pun di namespace kube-system. Perekaman log akan berhenti satu jam setelah objek dibuat.

  2. Buat objek log alur:

    kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml
    

    Ganti MANAGEMENT_API_SERVER dengan jalur kubeconfig server Management API zonal.

  3. Verifikasi bahwa nilai FLOW_LOG_NAME telah direkonsiliasi dengan benar, dan proses logging telah dimulai dengan memeriksa kolom Status:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAME
    

    Contoh 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:53Z
    

    Output contoh ini berisi kondisi berikut:

    • Propagated: konfigurasi log alur dikirim ke cluster user-vm-1, user-vm-2, dan org-1-infra.
    • Reconciled: log alur berhasil diprogram di cluster user-vm-1, user-vm-2, dan org-1-infra.
    • Logging: log alur tidak kedaluwarsa atau dinonaktifkan, tidak mengalami error apa pun, dan dapat menghasilkan log jika filter cocok dengan alur.
    • Start Time dan End Time menunjukkan bahwa tugas dimulai pada 19:17:53, dan berakhir pada 20:17:53.

    Agar log alur ini dapat berhasil menghasilkan entri log, semua kondisi Propagated, Reconciled, dan Logging harus benar.

Mengubah log alur

Untuk mengubah log alur yang ada, ubah definisi objek log alur yang dibuat dalam file example-flowlog.yaml dan terapkan lagi:

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml

Melihat log alur di dasbor pemantauan

  1. Buka dasbor log operasional. Untuk mengetahui informasi selengkapnya, lihat Kueri log operasional.

  2. 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:

    Menetapkan ID

  3. Klik Run query. Perintah ini akan menampilkan entri log alur yang disimpan:

    Jalankan kueri

  4. Gunakan filter untuk lebih mempersempit hasil. Misalnya, berikan drop-down cluster dengan nilai user-vm-1 untuk hanya melihat alur yang dikumpulkan dari cluster user-vm-1:

    Menyempurnakan filter

  5. Jelajahi entri log alur, luaskan entri untuk melihat detailnya, dan tambahkan filter label lainnya sesuai kebutuhan menggunakan ikon pintasan. Dalam contoh ini, kita ingin memfilter alur lebih lanjut berdasarkan alamat IP sumbernya:

    Entri Log Alur

  6. Klik ikon pintasan + untuk memfilter alur menurut kolom metadata tertentu.

    Pintasan filter label

Melihat hasil menurut 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 terbatas pada log yang dihasilkan oleh FLOW_LOG_NAME, buat filter label dengan nilai berikut:

  • Label disetel ke On. Hal ini peka huruf besar/kecil.
  • Operator disetel ke ~=. Ini menggunakan pencocokan ekspresi reguler.
  • Value disetel ke /FLOW_LOG_NAME/. Nilai FLOW_LOG_NAME harus diapit oleh /.

Filter hasil untuk hanya melihat log yang dihasilkan oleh flowlog1:

Filter label menurut nama alur

Referensi