VPC-Flusslogs konfigurieren

Auf dieser Seite wird beschrieben, wie Sie VPC-Flusslogs konfigurieren. Dabei wird davon ausgegangen, dass Sie mit den Konzepten in VPC-Flusslogs und Informationen zu Einträgen von VPC-Flusslogs vertraut sind.

VPC-Flusslogs aktivieren

Wenn Sie VPC-Fluss-Logs aktivieren, aktivieren Sie Logging für alle VMs in einem Subnetz. Sie können jedoch die Menge der in Logging geschriebenen Informationen reduzieren. Weitere Informationen zu den Parametern, die Sie festlegen können, finden Sie unter Logprobenahme und Logverarbeitung.

Wenn Sie Metadatenfelder anpassen oder die Logfilterung konfigurieren möchten, verwenden Sie das Google Cloud CLI oder die API.

VPC-Flusslogs beim Erstellen eines Subnetzes aktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf das Netzwerk, dem Sie ein Subnetz hinzufügen möchten.

  3. Klicken Sie auf Subnetz hinzufügen.

  4. Wählen Sie für Flusslogs die Option Ein aus.

  5. Wenn Sie die Logprobenahme und Logaggregation anpassen möchten, klicken Sie auf Logs konfigurieren und ändern Sie die folgenden Einstellungen wie gewünscht:

    • Das Aggregationsintervall.
    • Ob Metadaten in die endgültigen Logeinträge einbezogen werden sollen. Standardmäßig umfasst Metadaten einschließen alle Felder.
    • Die Abtastrate (100% bedeutet, dass alle Einträge erhalten bleiben).
  6. Füllen Sie die anderen Felder je nach Bedarf aus.

  7. Klicken Sie auf Hinzufügen.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud compute networks subnets create SUBNET_NAME \
       --enable-flow-logs \
       [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
       [--logging-flow-sampling=SAMPLE_RATE] \
       [--logging-filter-expr=FILTER_EXPRESSION] \
       [--logging-metadata=LOGGING_METADATA] \
       [--logging-metadata-fields=METADATA_FIELDS] \
       [other flags as needed]
    

    Ersetzen Sie Folgendes:

    • AGGREGATION_INTERVAL: das Aggregationsintervall für Flusslogs in diesem Subnetz. Das Intervall kann 5 Sekunden (Standard), 30 Sekunden, 1 Minute, 5 Minuten, 10 Minuten oder 15 Minuten betragen.
    • SAMPLE_RATE: die Flussabtastrate. Das Fluss-Sampling kann auf einen Wert zwischen 0.0 (kein Sampling) und 1.0 (alle Logs) festgelegt werden. Der Standardwert ist 0.5.
    • FILTER_EXPRESSION: ein Ausdruck, der definiert, welche Logs Sie behalten möchten. Der Ausdruck ist auf maximal 2.048 Zeichen beschränkt. Weitere Informationen finden Sie unter Logfilterung.
    • LOGGING_METADATA: Die Metadatenannotationen, die in den Logs enthalten sein sollen:

      • Verwenden Sie include-all, um alle Metadatenannotationen einzuschließen.
      • Verwenden Sie exclude-all zum Ausschließen aller Metadatenannotationen (Standard)
      • Verwenden Sie custom zum Hinzufügen einer benutzerdefinierten Liste von Metadatenfeldern, die Sie in METADATA_FIELDS angeben.
    • METADATA_FIELDS: eine durch Kommas getrennte Liste von Metadatenfeldern, die Sie in die Logs aufnehmen möchten. Beispiel: src_instance,dst_instance Kann nur festgelegt werden, wenn LOGGING_METADATA auf custom gesetzt ist.

API

Aktivieren Sie VPC-Flusslogs, wenn Sie ein neues Subnetz erstellen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
{
  "logConfig": {
    "aggregationInterval": "AGGREGATION_INTERVAL",
    "flowSampling": SAMPLING_RATE,
    "filterExpr": EXPRESSION,
    "metadata": METADATA_SETTING,
    "metadataFields": METADATA_FIELDS,
    "enable": true
  },
  "ipCidrRange": "IP_RANGE",
  "network": "NETWORK_URL",
  "name": "SUBNET_NAME"
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID des Projekts, in dem das Subnetz erstellt wird.
  • REGION: Die Region, in der das Subnetz erstellt wird.
  • AGGREGATION_INTERVAL: das Aggregationsintervall für Flusslogs in diesem Subnetz. Das Intervall kann auf einen der folgenden Werte festgelegt werden: INTERVAL_5_SEC, INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN oder INTERVAL_15_MIN.
  • SAMPLING_RATE: die Flussabtastrate. Das Fluss-Sampling kann auf einen Wert zwischen 0.0 (kein Sampling) und 1.0 (alle Logs) festgelegt werden. Der Standardwert ist .0.5.
  • EXPRESSION ist der Filterausdruck, mit dem Sie filtern, welche Logs tatsächlich geschrieben werden. Der Ausdruck ist auf maximal 2.048 Zeichen beschränkt. Weitere Informationen finden Sie unter Logfilterung.
  • METADATA_SETTING: Die Metadatenannotationen, die in den Logs enthalten sein sollen:

    • Verwenden Sie INCLUDE_ALL_METADATA, um alle Metadatenannotationen einzuschließen.
    • Verwenden Sie EXCLUDE_ALL_METADATA zum Ausschließen aller Metadatenannotationen (Standard)
    • Verwenden Sie custom zum Hinzufügen einer benutzerdefinierten Liste von Metadatenfeldern, die Sie in METADATA_FIELDS angeben.
  • METADATA_FIELDS: Die Metadatenfelder, die Sie erfassen möchten, wenn Sie metadata: CUSTOM_METADATA festgelegt haben. Dies ist eine durch Kommas getrennte Liste von Metadatenfeldern, z. B. src_instance, src_vpc.project_id.

  • IP_RANGE ist der primäre interne IP-Adressbereich des Subnetzes.

  • NETWORK_URL ist die URL des VPC-Netzwerks, in dem das Subnetz erstellt wird.

  • SUBNET_NAME: Ein Name für das Subnetz.

Weitere Informationen finden Sie in der Methode subnetworks.insert.

Terraform

Sie können ein Terraform-Modul verwenden, um benutzerdefinierte VPC-Netzwerke und Subnetze zu erstellen.

Im folgenden Beispiel werden drei Subnetze so erstellt:

  • subnet-01 hat VPC-Flusslogs deaktiviert. Wenn Sie ein Subnetz erstellen, werden VPC-Flusslogs deaktiviert, sofern Sie sie nicht explizit aktivieren.
  • Für subnet-02 sind VPC-Flusslogs mit den Standard-Einstellungen aktiviert.
  • subnet-03 hat VPC-Flusslogs mit einigen benutzerdefinierten Einstellungen aktiviert.
module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-custom-mode-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "subnet-01"
      subnet_ip     = "10.10.10.0/24"
      subnet_region = "us-west1"
    },
    {
      subnet_name           = "subnet-02"
      subnet_ip             = "10.10.20.0/24"
      subnet_region         = "us-west1"
      subnet_private_access = "true"
      subnet_flow_logs      = "true"
    },
    {
      subnet_name               = "subnet-03"
      subnet_ip                 = "10.10.30.0/24"
      subnet_region             = "us-west1"
      subnet_flow_logs          = "true"
      subnet_flow_logs_interval = "INTERVAL_10_MIN"
      subnet_flow_logs_sampling = 0.7
      subnet_flow_logs_metadata = "INCLUDE_ALL_METADATA"
      subnet_flow_logs_filter   = "false"
    }
  ]
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Aktivieren Sie VPC-Flusslogs für ein vorhandenes Subnetz.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf das Subnetz, das Sie aktualisieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Wählen Sie für Flusslogs die Option Ein aus.

  5. Wenn Sie die Logprobenahme und Logaggregation anpassen möchten, klicken Sie auf Logs konfigurieren und ändern Sie die folgenden Einstellungen wie gewünscht:

    • Das Aggregationsintervall.
    • Ob Metadaten in die endgültigen Logeinträge einbezogen werden sollen. Standardmäßig umfasst Metadaten einschließen alle Felder.
    • Die Abtastrate (100% bedeutet, dass alle Einträge erhalten bleiben).
  6. Klicken Sie auf Speichern.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud compute networks subnets update SUBNET_NAME \
       --enable-flow-logs \
       [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
       [--logging-flow-sampling=SAMPLE_RATE] \
       [--logging-filter-expr=FILTER_EXPRESSION] \
       [--logging-metadata=LOGGING_METADATA] \
       [--logging-metadata-fields=METADATA_FIELDS] \
       [other flags as needed]
    

    Ersetzen Sie Folgendes:

    • AGGREGATION_INTERVAL: das Aggregationsintervall für Flusslogs in diesem Subnetz. Das Intervall kann 5 Sekunden (Standard), 30 Sekunden, 1 Minute, 5 Minuten, 10 Minuten oder 15 Minuten betragen.
    • SAMPLE_RATE: die Flussabtastrate. Das Fluss-Sampling kann auf einen Wert zwischen 0.0 (kein Sampling) und 1.0 (alle Logs) festgelegt werden. Der Standardwert ist 0.5.
    • FILTER_EXPRESSION: ein Ausdruck, der definiert, welche Logs Sie behalten möchten. Der Ausdruck ist auf maximal 2.048 Zeichen beschränkt. Weitere Informationen finden Sie unter Logfilterung.
    • LOGGING_METADATA: Die Metadatenannotationen, die in den Logs enthalten sein sollen:

      • Verwenden Sie include-all, um alle Metadatenannotationen einzuschließen.
      • Verwenden Sie exclude-all zum Ausschließen aller Metadatenannotationen (Standard)
      • Verwenden Sie custom zum Hinzufügen einer benutzerdefinierten Liste von Metadatenfeldern, die Sie in METADATA_FIELDS angeben.
    • METADATA_FIELDS: eine durch Kommas getrennte Liste von Metadatenfeldern, die Sie in die Logs aufnehmen möchten. Beispiel: src_instance,dst_instance Kann nur festgelegt werden, wenn LOGGING_METADATA auf custom gesetzt ist.

API

Aktivieren Sie VPC-Flusslogs für ein vorhandenes Subnetz.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "logConfig": {
    "enable": true
    ...other logging fields.
  },
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich das Subnetz befindet befindet.
  • REGION: die Region, in der sich das Subnetz befindet.
  • SUBNET_NAME: Der Name des vorhandenen Subnetzes.
  • SUBNET_FINGERPRINT: die Fingerabdruck-ID für das bestehende Subnetz, die Sie beim Beschreiben des Subnetzes erhalten.
  • Informationen zu den anderen Logging-Feldern finden Sie unter VPC-Flusslogs beim Erstellen eines Subnetzes aktivieren.

Weitere Informationen finden Sie in der Methode subnetworks.patch.

Geschätztes Logvolumen für vorhandene Subnetze ansehen

Die Google Cloud Console bietet eine Schätzung des Logvolumens für vorhandene Subnetze, die Sie dann verwenden können, wenn Sie die ungefähren Kosten für das Aktivieren der Flusslogs ermitteln möchten. Die Schätzung basiert auf Flüssen, die über die letzten 7 Tage in 5-Sekunden-Intervallen für das Subnetz erfasst wurden. Die Größe jedes Logs hängt auch davon ab, ob Sie Metadatenanmerkungen aktivieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf das Subnetz, für das Sie die Kosten schätzen möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Wählen Sie für Flusslogs die Option Ein aus.

  5. Klicken Sie auf Logs konfigurieren.

  6. Unter Geschätzte Logs pro Tag sehen Sie die Schätzung.

  7. Klicken Sie auf Abbrechen, damit keine Änderungen gespeichert werden.

Ansehen, für welche Subnetze VPC-Flusslogs aktiviert sind

Sie können prüfen, für welche Subnetze in einem Netzwerk VPC-Flusslogs aktiviert sind.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf das VPC-Netzwerk, in dem Sie die Subnetze ansehen möchten.

  3. Klicken Sie auf den Tab Subnetze und sehen Sie in der Spalte Flusslogs, ob das Logging aktiviert oder deaktiviert ist.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud compute networks subnets list \
       --project PROJECT_ID \
       --network="NETWORK" \
       --format="csv(name,region,logConfig.enable)"

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des von Ihnen abgefragten Projekts.
    • NETWORK: der Name des Netzwerks mit den Subnetzen

Parameter für VPC-Flusslogs aktualisieren

Sie können die Log-Sampling-Parameter anpassen. Ausführliche Informationen zu den Parametern, die Sie festlegen können, finden Sie unter Logprobenahme und Logverarbeitung.

Wenn Sie Metadatenfelder anpassen oder die Logfilterung konfigurieren möchten, verwenden Sie die gcloud CLI oder die API.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf das Subnetz, das Sie aktualisieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Wenn Sie die Logprobenahme und Logaggregation anpassen möchten, klicken Sie auf Logs konfigurieren und ändern Sie die folgenden Einstellungen wie gewünscht:

    • Das Aggregationsintervall.
    • Ob Metadaten in die endgültigen Logeinträge einbezogen werden sollen. Standardmäßig umfasst Metadaten einschließen alle Felder.
    • Die Abtastrate (100% bedeutet, dass alle Einträge erhalten bleiben).
  5. Klicken Sie auf Speichern.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud compute networks subnets update SUBNET_NAME \
       [--logging-aggregation-interval=AGGREGATION_INTERVAL] \
       [--logging-flow-sampling=SAMPLE_RATE] \
       [--logging-filter-expr=FILTER_EXPRESSION] \
       [--logging-metadata=LOGGING_METADATA] \
       [--logging-metadata-fields=METADATA_FIELDS] \
    

    Ersetzen Sie Folgendes:

    • AGGREGATION_INTERVAL: das Aggregationsintervall für Flusslogs in diesem Subnetz. Das Intervall kann 5 Sekunden (Standard), 30 Sekunden, 1 Minute, 5 Minuten, 10 Minuten oder 15 Minuten betragen.
    • SAMPLE_RATE: die Flussabtastrate. Das Fluss-Sampling kann auf einen Wert zwischen 0.0 (kein Sampling) und 1.0 (alle Logs) festgelegt werden. Der Standardwert ist 0.5.
    • FILTER_EXPRESSION: ein Ausdruck, der festlegt, welche Logs Sie behalten möchten. Der Ausdruck ist auf maximal 2.048 Zeichen beschränkt. Weitere Informationen finden Sie unter Logfilterung.
    • LOGGING_METADATA: Die Metadatenannotationen, die in den Logs enthalten sein sollen:

      • Verwenden Sie include-all, um alle Metadatenannotationen einzuschließen.
      • Verwenden Sie exclude-all zum Ausschließen aller Metadatenannotationen (Standard)
      • Verwenden Sie custom zum Hinzufügen einer benutzerdefinierten Liste von Metadatenfeldern, die Sie in METADATA_FIELDS angeben.
    • METADATA_FIELDS: eine durch Kommas getrennte Liste von Metadatenfeldern, die Sie in die Logs aufnehmen möchten. Beispiel: src_instance,dst_instance Kann nur festgelegt werden, wenn LOGGING_METADATA auf custom gesetzt ist.

API

Ändern Sie die Log-Sampling-Felder, um das Verhalten der VPC-Flusslogs zu aktualisieren.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "logConfig": {
    ...fields to modify
  },
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich das Subnetz befindet befindet.
  • REGION: die Region, in der sich das Subnetz befindet.
  • SUBNET_NAME: Der Name des vorhandenen Subnetzes.
  • SUBNET_FINGERPRINT: die Fingerabdruck-ID für das bestehende Subnetz, die Sie beim Beschreiben des Subnetzes erhalten.
  • Informationen zu den Feldern, die Sie ändern können, finden Sie unter VPC-Flusslogs beim Erstellen eines Subnetzes aktivieren.

Weitere Informationen finden Sie in der Methode subnetworks.patch.

VPC-Flusslogs für ein Subnetz deaktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf das Subnetz, das Sie aktualisieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Wählen Sie für Flusslogs die Option Aus aus.

  5. Klicken Sie auf Speichern.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud compute networks subnets update SUBNET_NAME \
       --no-enable-flow-logs
    

API

Deaktivieren Sie VPC-Flusslogs für ein Subnetz, um die Erfassung von Logeinträgen zu beenden.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "logConfig": {
    "enable": false
  },
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem sich das Subnetz befindet befindet.
  • REGION: die Region, in der sich das Subnetz befindet.
  • SUBNET_NAME: Der Name des vorhandenen Subnetzes.
  • SUBNET_FINGERPRINT: die Fingerabdruck-ID für das bestehende Subnetz, die Sie beim Beschreiben des Subnetzes erhalten.

Weitere Informationen finden Sie in der Methode subnetworks.patch.

Fehlerbehebung

Flusslogs sind scheinbar deaktiviert, obwohl sie aktiviert wurden

  • Wenn Sie ein Nur-Proxysubnetz für interne Application Load Balancer konfigurieren und den Befehl gcloud compute networks subnets verwenden, um VPC-Flusslogs zu aktivieren, scheint der Befehl erfolgreich zu sein, obwohl die Flusslogs eigentlich nicht aktiviert sind. Das Flag --enable-flow-logs wird nicht wirksam, wenn Sie auch das Flag --purpose=INTERNAL_HTTPS_LOAD_BALANCER einfügen.

    Wenn Sie Flusslogs über die Google Cloud Console oder die API aktivieren, wird folgende Fehlermeldung angezeigt: „Ungültiger Wert für Feld 'resource.enableFlowLogs': 'true'.“ Ungültiges Feld mit dem Zweck INTERNAL_HTTPS_LOAD_BALANCER im Subnetzwerk festgelegt."

    Da Nur-Proxysubnetze keine VMs haben, werden VPC-Flusslogs nicht unterstützt. Das ist so gewollt.

Nächste Schritte