Utilizza i log di flusso per salvare i metadati del traffico di rete, inclusi i 5 tuple, in Google Distributed Cloud (GDC) air-gapped nello stack di osservabilità sotto forma di log interrogabili. Utilizza questi log per:
- Comprendere i flussi di traffico per un determinato servizio in un'organizzazione.
- Comprendere e identificare i problemi di integrità di rete di un workload Kubernetes.
- Verifica i criteri di rete di Kubernetes.
Flow log è una funzionalità GDC basata sul progetto open source
Hubble: https://github.com/cilium/hubble. Configura i log di flusso utilizzando la risorsa FlowLog dell'API Networking.
Prima di iniziare
Devi ottenere l'autorizzazione per gestire o visualizzare i log di flusso dalla console GDC. Per visualizzare o gestire i log di flusso, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo log di flusso corrispondente.
Per informazioni sull'impostazione dei binding dei ruoli dalla console GDC, vedi Concedere l'accesso alle risorse.
Prima di eseguire query e visualizzare i log di flusso nelle dashboard, devi ottenere l'accesso all'istanza di monitoraggio. Per maggiori informazioni, consulta Eseguire query e visualizzare le metriche.
Crea un log di flusso
Crea un log di flusso per salvare i metadati del traffico di rete filtrati in base a un determinato insieme di specifiche.
Crea un log di flusso con filtri per protocollo e spazio dei nomi
Crea un file denominato
example-flowlog.yamlcon i seguenti contenuti: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"Sostituisci
FLOW_LOG_NAMEcon il nome scelto per il log di flusso.In questo esempio, il log di flusso acquisisce tutti i flussi per i quali una connessione TCP è stata avviata da qualsiasi pod nello spazio dei nomi
gpc-systemokube-systema qualsiasi pod nello spazio dei nomikube-system. Interrompe la registrazione dei log un'ora dopo la creazione dell'oggetto.Crea l'oggetto log di flusso:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yamlSostituisci
MANAGEMENT_API_SERVERcon il percorso kubeconfig del server API Management zonale.Verifica che il valore
FLOW_LOG_NAMEsia stato riconciliato correttamente e che il processo di logging sia iniziato esaminando il campoStatus:kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAMEStato di esempio:
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:53ZQuesto output di esempio contiene le seguenti condizioni:
Propagated: la configurazione dei log di flusso è stata inviata ai clusteruser-vm-1,user-vm-2eorg-1-infra.Reconciled: il log di flusso è stato programmato correttamente sui clusteruser-vm-1,user-vm-2eorg-1-infra.Logging: il log di flusso non è scaduto o disattivato, non ha riscontrato errori e può produrre log se i filtri corrispondono ai flussi.Start TimeeEnd Timeindicano che il job è stato avviato alle ore19:17:53e scade alle ore20:17:53.
Affinché questo log di flusso possa produrre correttamente voci di log, tutte le condizioni
Propagated,ReconciledeLoggingdevono essere vere.
Modifica del log di flusso
Per modificare un log di flusso esistente, modifica la definizione dell'oggetto log di flusso creato nel file example-flowlog.yaml e applicala di nuovo:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml
Visualizza i log di flusso nella dashboard di monitoraggio
Per visualizzare i log di flusso, chiedi agli utenti con il ruolo di log di flusso corrispondente di controllare Esegui query sui log operativi.Riferimenti
- Documentazione su Hubble Dynamic Exporter: https://docs.cilium.io/en/latest/observability/hubble-exporter/#dynamic-exporter-configuration