Logaufnahme von Dataflow steuern

Mit Ausschlussfiltern können Sie das Volumen der von Cloud Logging aufgenommenen Dataflow-Logs steuern. Gleichzeitig steht ein ausführliches Logging für die Fehlerbehebung zur Verfügung. Mit Ausschlussfiltern können Sie übereinstimmende Logeinträge von der Aufnahme in Cloud Logging oder vom Ziel an die Senke ausschließen. Ausschlussfilter werden mithilfe der Logging-Abfragesprache erstellt. Mit der Logging-Abfragesprache können Sie eine Teilmenge aller Logeinträge in der ausgewählten Google Cloud-Ressource angeben, z. B. ein Projekt oder einen Ordner.

Durch die Verwendung von Ausschlussfiltern können Sie die Cloud Logging-Kosten reduzieren, die durch die Dataflow-Logaufnahme entstehen. Weitere Informationen zu den Preisen für die Logaufnahme für Cloud Logging finden Sie in der Cloud Logging-Preisübersicht. Weitere Informationen zur Funktionsweise von Ausschlussfiltern und ihren Einschränkungen finden Sie in der Cloud Logging-Dokumentation unter Ausschlussfilter.

Dataflow-Jobs geben mehrere Logtypen aus. Diese Seite zeigt, wie Sie Dataflow-Job- und Worker-Logs filtern.

Logausschluss-Filter erstellen

In diesem Beispiel wird ein Ausschlussfilter für die Cloud Logging-Senke _Default erstellt. Der Filter schließt alle Dataflow-Logs mit dem Schweregrad DEFAULT, DEBUG, INFO und NOTICE von der Aufnahme in Cloud Logging aus. Es werden weiterhin die Schweregradlogs WARNING, ERROR, CRITICAL, ALERT und EMERGENCY erfasst. Weitere Informationen zu unterstützten Logebenen finden Sie unter LogSeverity.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  5. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

Berechtigungen

Prüfen Sie zu Beginn Folgendes:

  • Sie haben ein Google Cloud-Projekt mit Logs, die Sie im Log-Explorer sehen können.

  • Sie haben eine der folgenden IAM-Rollen für das Google Cloud-Quellprojekt, von dem Sie Logs weiterleiten.

    • Inhaber (roles/owner)
    • Logging-Administrator (roles/logging.admin)
    • Autor von Log-Konfigurationen (roles/logging.configWriter)

    Mit den in diesen Rollen enthaltenen Berechtigungen können Sie Senken erstellen, löschen oder ändern. Informationen zum Festlegen von IAM-Rollen finden Sie in der Anleitung zur Zugriffssteuerung für Logging.

  • Sie haben eine Ressource in einem unterstützten Ziel oder können eine Ressource erstellen.

    Sie müssen das Routingziel vor der Senke erstellen. Dies erfolgt über die Google Cloud CLI, die Google Cloud Console oder die Google Cloud APIs. Sie können das Ziel in jedem Google Cloud-Projekt jeder Organisation erstellen. Prüfen Sie vor dem Erstellen des Ziels, ob das Dienstkonto aus der Senke Berechtigungen zum Schreiben in das Ziel hat.

Ausschlussfilter hinzufügen

In den folgenden Schritten wird gezeigt, wie Sie Ihren Dataflow-Logs einen Ausschlussfilter für Cloud Logging hinzufügen. Dieser Ausschlussfilter wählt alle Dataflow-Logeinträge mit dem Schweregrad DEFAULT, DEBUG, INFO und NOTICE aus Jobs mit einem Dataflow-Jobnamen aus, der nicht endet. den String debug. Der Filter schließt diese Logs von der Aufnahme in den Cloud Logging-Bucket Default aus.

  1. Rufen Sie in der Google Cloud Console die Seite Logs Router auf.

    Zum "Logs Router"

  2. Suchen Sie die Zeile mit der Senke _Default, maximieren Sie die Option Aktionen und klicken Sie dann auf Senke bearbeiten.

  3. Klicken Sie in Logs zum Filtern aus der Senke auswählen für Ausschlussfilter erstellen auf Ausschluss hinzufügen.

  4. Geben Sie einen Namen für den Ausschlussfilter ein.

  5. Fügen Sie im Abschnitt Ausschlussfilter erstellen den folgenden Text in das Feld ein:

    resource.type="dataflow_step" AND
    labels."dataflow.googleapis.com/job_name"!~".*debug" AND
    severity=(DEFAULT OR DEBUG OR INFO OR NOTICE)
    
    • In der ersten Zeile werden alle vom Dataflow-Dienst generierten Logeinträge ausgewählt.
    • In der zweiten Zeile werden alle Logeinträge ausgewählt, in denen das Feld job_name nicht mit dem String debug endet.
    • Mit der dritten Zeile werden alle Logeinträge mit dem Schweregrad DEFAULT, DEBUG, INFO oder NOTICE ausgewählt.
  6. Klicken Sie auf Senke aktualisieren.

Ausschlussfilter testen

Sie können prüfen, ob der Filter ordnungsgemäß funktioniert, indem Sie einen Dataflow-Beispieljob ausführen und dann die Logs aufrufen.

Führen Sie die folgenden Schritte aus, um nach der Ausführung Ihres Jobs Joblogs anzuzeigen:

  1. Rufen Sie in der Google Cloud Console die Dataflow-Seite Jobs auf.

    ZU JOBS

    Eine Liste der Dataflow-Jobs mit ihrem Status wird angezeigt.

  2. Wählen Sie einen Job aus.

  3. Klicken Sie auf der Seite Jobdetails im Bereich Logs auf Anzeigen.

  4. Prüfen Sie, ob keine Logs im Jobprotokolle und dass keine DEFAULT-, DEBUG-, INFO- oder NOTICE-Logs werden im Worker-Logs Bereich erscheinen.

Ausschlussfilter umgehen

Der Dataflow-Jobname (job_name) wird verwendet, um einen Umgehungsmechanismus für Szenarien bereitzustellen, in denen die generierten Dataflow-Logs erfasst werden müssen. Mit dieser Umgehung können Sie einen fehlgeschlagenen Job noch einmal ausführen und alle Loginformationen erfassen.

Der in diesem Szenario erstellte Filter behält alle Logeinträge bei, wenn das Feld job_name mit dem String debug endet. Hängen Sie debug an den Jobnamen an, wenn Sie den Ausschlussfilter umgehen und alle Logs für einen Dataflow-Job anzeigen möchten. Wenn Sie beispielsweise den Ausschlussfilter umgehen möchten, können Sie den Jobnamen dataflow-job-debug verwenden.

Logzahlen vergleichen

Führen Sie einen Job mit einem an dem Jobnamen angehängtendebug und einen ohne aus, wenn Sie das Volumen der mit und ohne den Ausschlussfilter aufgenommenen Logs vergleichen möchten. Verwenden Sie den systemdefinierten, logbasierten Messwert Logbytes, um die Aufnahmedaten aufzurufen und zu vergleichen. Weitere Informationen zum Anzeigen von Aufnahmedaten finden Sie unter Aufnahmedaten im Metrics Explorer ansehen.

Externes Ziel erstellen

Optional können Sie nach dem Erstellen des Ausschlussfilters eine zusätzliche Cloud Logging-Senke erstellen. Nutzen Sie diese Senke, um den vollständigen Satz von Dataflow-Logs an ein unterstütztes externes Ziel wie BigQuery, Pub/Sub oder Splunk umzuleiten.

In diesem Szenario werden die externen Logs nicht im Log-Explorer gespeichert, sondern im externen Ziel verfügbar. Mit einem externen Ziel haben Sie mehr Kontrolle über die Kosten, die durch das Speichern von Logs im Log-Explorer entstehen.

Eine schrittweise Anleitung zum Steuern von Logs durch Cloud Logging finden Sie unter Senken konfigurieren. Geben Sie im Feld Logs zum Einschließen in Senke auswählen im Feld Build-Einschlussfilter folgenden Filterausdruck ein, um alle Dataflow-Logs in einem externen Ziel zu erfassen:

resource.type="dataflow_step"

Logeinträge, die Sie von Cloud Logging an unterstützte Ziele weitergeleitet haben, finden Sie unter Logs an Senkenzielen ansehen.

Dataflow-Lognachrichten nach Schweregrad verfolgen

Ausschlussfilter gelten nicht für benutzerdefinierte logbasierte Messwerte. Diese Messwerte zählen die Anzahl der Logeinträge, die mit einem bestimmten Filter übereinstimmen, oder erfassen bestimmte Werte in den übereinstimmenden Logeinträgen. Sie können einen Log-basierten Messwert für die Dataflow-Logs erstellen, um die Anzahl der Dataflow-Lognachrichten nach Schweregrad zu verfolgen. Die Logs werden auch dann erfasst, wenn die Lognachrichten von der Aufnahme ausgeschlossen werden.

Ihnen werden benutzerdefinierte logbasierte Messwerte in Rechnung gestellt. Preisinformationen finden Sie unter Kostenpflichtige Messwerte.

Informationen zum Konfigurieren benutzerdefinierter logbasierter Messwerte finden Sie unter Zählermesswert erstellen. Geben Sie zum Verfolgen der Dataflow-Logs im Abschnitt Filterauswahl im Feld Build-Filter den folgenden Text ein:

resource.type="dataflow_step"