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 Routing an das Ziel der 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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
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.
- Inhaber (
Sie haben eine Ressource in einem unterstützten Ziel oder können eine erstellen.
Sie müssen das Routingziel vor der Senke erstellen, und zwar über die Google Cloud CLI, die Google Cloud Console oder die Google Cloud APIs. Sie können das Ziel in einem beliebigen Google Cloud-Projekt jeder Organisation erstellen. Bevor Sie das Ziel erstellen, muss das Dienstkonto der Senke Berechtigungen zum Schreiben in das Ziel haben.
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.
Rufen Sie in der Google Cloud Console die Seite Logs Router auf.
Suchen Sie die Zeile mit der Senke
_Default
, maximieren Sie die Option Aktionen und klicken Sie dann auf Senke bearbeiten.Klicken Sie in Logs zum Filtern aus der Senke auswählen für Ausschlussfilter erstellen auf
Ausschluss hinzufügen.Geben Sie einen Namen für den Ausschlussfilter ein.
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 Stringdebug
endet. - Mit der dritten Zeile werden alle Logeinträge mit dem Schweregrad
DEFAULT
,DEBUG
,INFO
oderNOTICE
ausgewählt.
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:
Rufen Sie in der Google Cloud Console die Dataflow-Seite Jobs auf.
Eine Liste der Dataflow-Jobs mit ihrem Status wird angezeigt.
Wählen Sie einen Job aus.
Klicken Sie auf der Seite Jobdetails im Bereich Logs auf segmentAnzeigen.
Prüfen Sie, ob keine Logs im Jobprotokolle und dass keine
DEFAULT
-,DEBUG
-,INFO
- oderNOTICE
-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.
Benutzerdefinierte logbasierte Messwerte werden 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"