Senken konfigurieren

In diesem Dokument wird beschrieben, wie Sie mit der Cloud Console, der Cloud Logging API und dem gcloud-Befehlszeilentool Senken erstellen und verwalten, um Logeinträge weiterzuleiten.

Zusammengefasst leiten Sie Logs weiter, indem Sie eine oder mehrere Senken erstellen, die einen Filterausdruck und ein Ziel enthalten. Wenn Logging neue Logeinträge empfängt, werden diese mit jeder Senke verglichen. Wenn ein Logeintrag mit dem Filter einer Senke übereinstimmt, wird eine Kopie des Logeintrags in das Ziel der Senke geschrieben. Eine allgemeine Konzeptübersicht zu Senken finden Sie unter Routing und Speicher: Senken.

Mit der Cloud Console haben Sie folgende Möglichkeiten:

  • Alle Senken an einem Ort ansehen und verwalten.
  • Bevor Sie die Senke erstellen, können Sie sich eine Vorschau der Logeinträge ansehen, die mit dem Filter der Senke übereinstimmen.
  • Erstellen und autorisieren Sie Senkenziele für Ihre Senken.

Die Cloud Console kann jedoch nur Senken in Cloud-Projekten erstellen oder aufrufen. Informationen zum Erstellen von Senken in Organisationen, Ordnern oder Rechnungskonten mit dem gcloud-Befehlszeilentool oder der Cloud Logging API finden Sie unter Aggregierte Senken.

Unterstützte Ziele

Sie können Logs innerhalb desselben Cloud-Projekts oder zwischen Cloud-Projekten an die folgenden Ziele weiterleiten:

  • Cloud Storage: In Cloud Storage-Buckets gespeicherte JSON-Dateien.
  • Pub/Sub: JSON-Nachrichten, die an Pub/Sub-Themen zugestellt werden Unterstützung von Drittanbieterintegrationen wie Splunk in Logging.
  • BigQuery: In BigQuery-Datasets erstellte Tabellen.
  • Ein anderer Cloud Logging-Bucket: Logeinträge von Log-Buckets in Cloud Logging.

Informationen zum Erstellen von Senken in Organisationen, Ordnern oder Rechnungskonten finden Sie unter Aggregierte Senken.

Hinweis

Bevor Sie eine Senke erstellen, prüfen Sie 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 Cloud-Quellprojekt, von dem Sie Logs senden.

    • 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 von Logging.

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

    Das Ziel für Logsenken muss vor der Senke erstellt werden. Dies erfolgt über das gcloud-Befehlszeilentool, die Cloud Console oder die Google Cloud APIs. Sie können das Ziel in jedem Cloud-Projekt jeder Organisation erstellen. Sie müssen jedoch dafür sorgen, dass das Dienstkonto aus der Senke Berechtigungen zum Schreiben in das Ziel hat.

Senke erstellen

In dieser Anleitung wird beschrieben, wie Sie mit der Cloud Console oder dem gcloud-Befehlszeilentool eine Senke in einem Cloud-Projekt erstellen.

Sie können bis zu 200 Senken pro Cloud-Projekt erstellen.

So erstellen Sie eine Senke:

Console

  1. Rufen Sie in der Cloud Console die Seite Logging > Log Router auf.

    Zum Protokollrouter

  2. Wählen Sie ein vorhandenes Cloud-Projekt aus.

  3. Wählen Sie Senke erstellen aus.

    .
  4. Geben Sie im Bereich Senkendetails die folgenden Details ein:

    • Name der Senke: Geben Sie eine Kennung für die Senke an. Beachten Sie, dass Sie die Senke nach dem Erstellen nicht mehr umbenennen, aber löschen und neu erstellen können.

    • Beschreibung der Senke (optional): Beschreiben Sie den Zweck oder den Anwendungsfall für die Senke.

  5. Wählen Sie im Bereich Senkenziel den Dienst und das Ziel der Senke aus:

    • Senkendienst auswählen: Wählen Sie den Dienst aus, an den Ihre Logs weitergeleitet werden sollen.

    Je nach ausgewähltem Dienst können Sie aus den folgenden Zielen auswählen:

    • Cloud Logging-Bucket: Wählen Sie einen Logging-Bucket aus oder erstellen Sie einen.
    • BigQuery-Tabelle: Wählen Sie das Dataset aus, das die weitergeleiteten Logs erhalten soll, oder erstellen Sie es. Sie können auch partitionierte Tabellen verwenden.
    • Cloud Storage-Bucket: Wählen Sie den jeweiligen Cloud Storage-Bucket aus, der die weitergeleiteten Logs erhalten soll, oder erstellen Sie ihn.
    • Pub/Sub-Thema: Wählen Sie das Thema aus oder erstellen Sie es, um die weitergeleiteten Logs zu erhalten.
    • Splunk: Wählen Sie das Pub/Sub-Thema für Ihren Splunk-Dienst aus.
    • Anderes Cloud-Projekt: Fügen Sie die Dienst- und Zielinformationen für Logging, BigQuery, Cloud Storage oder Pub/Sub manuell im folgenden Format hinzu:

      SERVICE.googleapis.com/projects/PROJECT_ID/SINK_DESTINATION/DESTINATION_ID
      

      Wenn Ihr Senkenziel beispielsweise ein BigQuery-Dataset ist, würde das Senkenziel so aussehen:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      

      Beachten Sie, dass Sie beim Routing von Logs zwischen Cloud-Projekten dennoch die entsprechenden Zielberechtigungen benötigen.

  6. Wählen Sie im Steuerfeld Einschlussfilter erstellen Logs aus, die in der Senke enthalten sein sollen.

    1. Geben Sie einen Filterausdruck ein, der mit den einzuschließenden Logeinträgen übereinstimmt. Wenn Sie keinen Filter festlegen, werden alle Logs aus Ihrem Cloud-Projekt an das Ziel weitergeleitet.

      Sie können beispielsweise einen Filter erstellen, der alle Datenzugriffslogs an einen einzelnen Logging-Bucket weiterleitet. Dieser Filter sieht in etwa so aus:

      LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
      

      Ein Filter darf maximal 20.000 Zeichen lang sein.

    2. Wenn Sie prüfen möchten, ob Sie den richtigen Filter eingegeben haben, wählen Sie Vorschau der Logs anzeigen aus. Dadurch wird der Log-Explorer in einem neuen Tab geöffnet, in dem der Filter bereits ausgefüllt ist.

  7. (Optional) Wählen Sie im Bereich Ausschlussfilter erstellen die Logs aus, die aus der Senke ausgeschlossen werden sollen:

    1. Geben Sie in das Feld Name des Ausschlussfilters einen Namen ein.

    2. Geben Sie im Abschnitt Ausschlussfilter erstellen einen Filterausdruck ein, der den auszuschließenden Logeinträgen entspricht. Sie können auch die Funktion sample verwenden, um einen Teil der ausgeschlossenen Logeinträge auszuwählen.

    Sie können bis zu 50 Ausschlussfilter pro Senke erstellen. Ein Filter darf maximal 20.000 Zeichen lang sein.

  8. Wählen Sie Senke erstellen aus.

API

  1. Verwenden Sie zum Erstellen einer Logging-Senke in Ihrem Cloud-Projekt projects.Sinks.create in der Logging API. Geben Sie im Objekt LogSink die entsprechenden erforderlichen Werte im Anfragetext für die Methode an:

    • name: Eine Kennung für die Senke. Nachdem Sie die Senke erstellt haben, können Sie sie nicht mehr umbenennen, aber löschen und eine neue Senke erstellen.
    • destination: Der Dienst und das Ziel, an das Ihre Logs weitergeleitet werden sollen. Wenn das Senkenziel beispielsweise ein BigQuery-Dataset ist, würde destination so aussehen:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  2. Geben Sie im Objekt LogSink die entsprechenden optionalen Informationen an:

    • filter : Setzen Sie das Attribut filter auf die Logeinträge, die Sie in die Senke aufnehmen möchten. Wenn Sie keinen Filter festlegen, werden alle Logs aus Ihrem Cloud-Projekt an das Ziel weitergeleitet. Die Länge eines Filters darf 20.000 Zeichen nicht überschreiten.
    • exclusions: Legen Sie dieses Attribut fest, damit es den Logeinträgen entspricht, die Sie aus der Senke ausschließen möchten. Sie können auch die Funktion sample verwenden, um einen Teil der ausgeschlossenen Logeinträge auszuwählen. Sie können bis zu 50 Ausschlussfilter pro Senke erstellen.
    • description: Legen Sie dieses Attribut fest, um den Zweck oder den Anwendungsfall für die Senke zu beschreiben.
  3. Rufen Sie projects.Sink.create auf, um die Senke zu erstellen.

  4. Rufen Sie den Namen des Dienstkontos aus dem Feld writer_identity ab, das in der API-Antwort zurückgegeben wurde.

  5. Gewähren Sie dem Dienstkonto die Berechtigung zum Schreiben in das Senkenziel.

    Wenn Sie keine Berechtigung zu dieser Änderung für das Senkenziel haben, senden Sie den Namen des Dienstkontos an einen Nutzer mit der erforderlichen Berechtigung.

    Weitere Informationen zum Gewähren von Dienstkontoberechtigungen für Ressourcen finden Sie im Abschnitt Zielberechtigungen festlegen.

Weitere Informationen zum Erstellen von Senken mit der Logging API finden Sie in der Referenz zu LogSink.

gcloud

Führen Sie den folgenden gcloud logging sinks create-Befehl aus, um eine Senke zu erstellen.

Geben Sie die entsprechenden Werte für die Variablen im Befehl so an:

  • SINK_NAME: Eine Kennung für die Senke. Beachten Sie, dass Sie die Senke nach dem Erstellen nicht mehr umbenennen, aber löschen und neu erstellen können.
  • SINK_DESTINATION: Der Dienst und das Ziel, an das Ihre Logs weitergeleitet werden sollen. Wenn das Senkenziel beispielsweise ein BigQuery-Dataset ist, würde SINK_DESTINATION so aussehen:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • OPTIONAL_FLAGS enthält die folgenden Flags:

    • --log-filter : Verwenden Sie dieses Flag, um einen Filter festzulegen, der den Logeinträgen entspricht, die Sie in Ihre Senke aufnehmen möchten. Wenn Sie keinen Filter festlegen, werden alle Logs aus Ihrem Cloud-Projekt an das Ziel weitergeleitet.
    • --exclusion: Verwenden Sie dieses Flag, um einen Ausschlussfilter für Logeinträge festzulegen, die Sie aus der Senke ausschließen möchten. Sie können auch die Funktion sample verwenden, um einen Teil der ausgeschlossenen Logeinträge auszuwählen. Dieses Flag kann wiederholt werden. Sie können bis zu 50 Ausschlussfilter pro Senke erstellen.
    • --description: Verwenden Sie dieses Flag, um den Zweck oder den Anwendungsfall für die Senke zu beschreiben.
gcloud logging sinks create SINK_NAME
SINK_DESTINATION OPTIONAL_FLAGS

Wenn Sie beispielsweise eine Senke für einen Logging-Bucket erstellen möchten, könnte der Befehl so aussehen:

gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \
  --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"

Weitere Informationen zum Erstellen von Senken mit dem gcloud-Befehlszeilentool, einschließlich weiterer Flags und Beispiele, finden Sie in der gcloud logging sinks-Referenz. aus.

Informationen zum Aufrufen von Logs in den Senkenzielen finden Sie unter Geroutete Logs finden.

Nach dem Erstellen der Senke können Sie die Anzahl und das Volumen der empfangenen Logeinträge mithilfe der Messwerte logging.googleapis.com/exports/ anzeigen lassen.

Wenn Sie Fehlerbenachrichtigungen erhalten, lesen Sie Fehlerbehebung beim Routing und bei Senken.

Logs zwischen Log-Buckets in verschiedenen Cloud-Projekten weiterleiten

Sie können Logs an ein Ziel in einem anderen Cloud-Projekt als dem weiterleiten, in dem die Senke erstellt wird.

Führen Sie dazu einen der folgenden Schritte aus:

  • Weisen Sie dem Dienstkonto der Senke die Rolle roles/logging.bucketWriter zu, um in das Ziel zu schreiben. Eine Anleitung finden Sie unter Zielberechtigungen.

  • Sie haben eine der folgenden IAM-Berechtigungen für das Cloud-Quellprojekt, von dem Sie Logs senden.

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

    Wenn Sie einen neuen Logging-Bucket im Cloud-Zielprojekt erstellen, müssen Sie eine dieser Berechtigungen haben.

Senken verwalten

Nachdem die Senken erstellt wurden, können Sie die folgenden Aktionen an ihnen ausführen:

  • Details zu Senken ansehen
  • Senken aktualisieren
  • Senken deaktivieren
  • Senken löschen

So können Sie Ihre Senken anzeigen und verwalten:

Console

Sie können Ihre Senken auf der Seite Logrouter anzeigen und verwalten:

Zum "Log Router"

Achten Sie darauf, dass Sie das Cloud-Projekt ausgewählt haben, das Ihre Senke enthält. Verwenden Sie dazu den Ressourcenselektor in der Cloud Console:

Ein Projekt wird aus dem Drop-down-Menü ausgewählt.

Wählen Sie zum Aufrufen der aggregierten Senken die Organisation, den Ordner oder das Rechnungskonto aus, das die Senke enthält.

Die Seite Log Router enthält eine Tabellenübersicht für Senken. Jede Tabellenzeile enthält Informationen zu den Attributen einer Senke:

  • Aktiviert: Gibt an, ob der Status der Senke aktiviert oder deaktiviert ist.
  • Typ: Der Zieldienst der Senke. Beispiel: Cloud Logging bucket.
  • Name: die ID der Senke, die beim Erstellen der Senke angegeben wurde, z. B. _Default.
  • Beschreibung: Die Beschreibung der Senke, die beim Erstellen der Senke angegeben wurde.
  • Ziel: Vollständiger Name des Ziels, an das die weitergeleiteten Logeinträge gesendet werden.
  • Erstellt: Datum und Uhrzeit der Erstellung der Senke.
  • Aktualisiert: Das Datum und die Uhrzeit der letzten Bearbeitung der Senke.

In jeder Tabellenzeile befindet sich ein Menü  mit folgenden Optionen:

  • Details der Senke ansehen: Zeigt den Namen, die Beschreibung, den Zieldienst, das Ziel sowie die Ein- und Ausschlussfilter der Senke an. Wenn Sie Bearbeiten auswählen, wird der Bereich Senke bearbeiten geöffnet.
  • Senke bearbeiten: Öffnet den Bereich Senke bearbeiten, in dem Sie die Parameter der Senke aktualisieren können.
  • Senke deaktivieren: Ermöglicht das Deaktivieren der Senke und das Beenden der Weiterleitung von Logs an das Ziel der Senke. Weitere Informationen zum Deaktivieren von Senken finden Sie unter Logaufnahme beenden.
  • Senke aktivieren: Aktivieren Sie eine deaktivierte Senke und starten Sie Routinglogs zum Ziel der Senke neu.
  • Senke löschen: Ermöglicht das Löschen der Senke und das Beenden von Routing-Logs an das Ziel der Senke. Die Senken _Default und _Required können nicht gelöscht werden. Die Senke _Default kann jedoch deaktiviert werden, um die Weiterleitung von Logs an den Logging-Bucket _Default zu beenden.

Durch einen Klick auf einen der Spaltennamen können Sie Daten in aufsteigender oder absteigender Reihenfolge sortieren.

API

  • Rufen Sie projects.sinks.list auf, um die Senken für Ihr Cloud-Projekt anzusehen.

  • Rufen Sie projects.sinks.get auf, um die Details zu einer Senke aufzurufen.

  • Rufen Sie projects.sink.update auf, um eine Senke zu aktualisieren.

    Sie können das Ziel, die Filter und die Beschreibung einer Senke aktualisieren. Sie können die Senke auch deaktivieren oder wieder aktivieren.

  • Rufen Sie zum Deaktivieren einer Senke projects.sink.update auf und setzen Sie das Attribut disabled auf true.

    Rufen Sie projects.sink.update auf und setzen Sie das Attribut disabled auf false, um die Senke wieder zu aktivieren.

  • Rufen Sie projects.sinks.delete auf, um eine Senke zu löschen.

    Beachten Sie, dass von der Senke gelöschte Logeinträge nicht mehr dorthin weitergeleitet werden.

    Weitere Informationen zu diesen Methoden zum Verwalten von Senken über die Logging API finden Sie in der Referenz zu LogSink.

gcloud

  • Verwenden Sie den folgenden Befehl, um die Liste der Senken für das Cloud-Projekt abzurufen:gcloud logging sinks list Der Befehl entspricht der Logging API-Methodeprojects.sinks.list :

    gcloud logging sinks list
    

    Zum Aufrufen der Liste der aggregierten Senken verwenden Sie das entsprechende Flag, um die Ressource anzugeben, die die Senke enthält. Wenn Sie beispielsweise die Senke auf Organisationsebene erstellt haben, können Sie mit dem Flag --organization=ORGANIZATION_ID die Senken für die Organisation auflisten.

  • Verwenden Sie zum Beschreiben einer Senke den Befehl gcloud logging sinks describe, der der Logging API-Methode projects.sinks.get entspricht:

    gcloud logging sinks describe SINK_NAME
    
  • Verwenden Sie zum Aktualisieren einer Senke den Befehl gcloud logging sinks update, der der API-Methode projects.sink.update entspricht.

    Sie können eine Senke aktualisieren, um das Ziel, die Filter und die Beschreibung zu ändern oder die Senke zu deaktivieren oder wieder zu aktivieren:

    gcloud logging sinks update SINK_NAME  NEW_DESTINATION  --log-filter=NEW_FILTER

    Lassen Sie NEW_DESTINATION oder --log-filter weg, wenn sich diese Teile nicht ändern.

    Wenn Sie beispielsweise das Ziel der Senke mit dem Namen my-project-sink auf ein neues Cloud Storage-Bucket-Ziel namens my-second-gcs-bucket aktualisieren möchten, sieht Ihr Befehl so aus:

    gcloud logging sinks update  my-project-sink  storage.googleapis.com/my-second-gcs-bucket
    
  • Verwenden Sie zum Deaktivieren einer Senke den Befehl gcloud logging sinks update, der der API-Methode projects.sink.update entspricht. und fügen Sie das Flag --disabled ein:

    gcloud logging sinks update _Default  --disabled
    

    Verwenden Sie zum Aktivieren der Senke den Befehl gcloud logging sinks update, entfernen Sie das Flag --disabled und fügen Sie das Flag --no-disabled ein:

    gcloud logging sinks update _Default  --no-disabled
    
  • Verwenden Sie zum Löschen einer Senke den Befehl gcloud logging sinks delete, der der API-Methode projects.sinks.delete entspricht:

    gcloud logging sinks delete SINK_NAME
    

    Beachten Sie, dass von der Senke gelöschte Logeinträge nicht mehr dorthin weitergeleitet werden.

    Weitere Informationen zum Verwalten von Senken mit dem gcloud-Befehlszeilentool finden Sie in der gcloud logging sinks-Referenz.

Logaufnahme beenden

Für jedes Cloud-Projekt werden durch Logging automatisch zwei Log-Buckets erstellt: _Required und _Default. Logging erstellt automatisch zwei Logsenken, _Required und _Default, die Logs an die entsprechend benannten Buckets weiterleiten.

Sie können die Senke _Required nicht deaktivieren; Für die im Log-Bucket _Required gespeicherten Logdaten gelten weder die Preise für die Aufnahme noch die Speicherpreise. Sie können die _Default-Senke deaktivieren, damit Logs nicht mehr in den Bucket _Default aufgenommen werden. Außerdem können Sie alle benutzerdefinierten Senken deaktivieren.

Wenn Sie die Logaufnahme für den _Default-Bucket durch Deaktivieren aller Senken in Ihrem Cloud-Projekt beenden, die Logs an den _Default-Bucket senden, gibt es keine neue Cloud Logging-Aufnahme. Gebühren werden von Ihrem Cloud-Projekt für den Bucket _Default verursacht. Der Bucket _Default ist leer, wenn alle zuvor aufgenommenen Logs im Bucket _Default die Aufbewahrungsdauer des Buckets abgelaufen haben.

So deaktivieren Sie Ihre Cloud-Projektsenken, die Logs an den Bucket _Default weiterleiten:

Console

  1. Wechseln Sie zum Logrouter:

    Zum "Log Router"

  2. Wenn Sie alle Senken suchen möchten, die Logs an den Bucket _Default weiterleiten, filtern Sie die Senken nach Ziel und geben Sie dann _Default ein.

    Suchen Sie alle Senken, die Logs an den Standard-Bucket weiterleiten.

  3. Wählen Sie für jede Senke Menü und dann Senke deaktivieren aus.

Die Senken sind jetzt deaktiviert und Ihr Cloud-Projekt versenkt keine längeren Routenlogs mehr im Bucket _Default.

Gehen Sie so vor, um eine deaktivierte Senke wieder zu aktivieren und Routinglogs zum Ziel der Senke neu zu starten:

  1. Rufen Sie die Seite Log Router auf:

    Zum "Log Router"

  2. Wenn Sie alle deaktivierten Senken suchen möchten, die zuvor für die Weiterleitung von Logs an den Bucket _Default konfiguriert wurden, filtern Sie die Senken nach Ziel und geben Sie dann _Default ein.

  3. Wählen Sie für jede Senke Menü und dann Senke aktivieren aus.

API

  1. Rufen Sie zum Aufrufen der Senken für Ihr Cloud-Projekt die Logging API-Methode projects.sinks.list auf.

    Identifizieren Sie alle Senken, die an den Bucket _Default weiterleiten.

  2. Wenn Sie beispielsweise die Senke _Default deaktivieren möchten, rufen Sie projects.sink.update auf und setzen das Attribut disabled auf true.

Die Senke _Default ist jetzt deaktiviert. Es leitet keine Logs mehr an den Bucket _Default weiter.

Wenn Sie die anderen Senken in Ihrem Cloud-Projekt deaktivieren möchten, die an den Bucket _Default weitergeleitet werden, wiederholen Sie die obigen Schritte.

Rufen Sie zum erneuten Aktivieren einer Senke projects.sink.update auf und setzen Sie das Attribut disabled auf false.

gcloud

  1. Verwenden Sie den folgenden Befehl, um die Liste der Senken für das Cloud-Projekt abzurufen:gcloud logging sinks list Der Befehl entspricht der Logging API-Methodeprojects.sinks.list :

    gcloud logging sinks list
    
  2. Identifizieren Sie alle Senken, die an den Bucket _Default weiterleiten. Verwenden Sie zum Beschreiben einer Senke, einschließlich des Zielnamens, den Parametergcloud logging sinks describe Der Befehl entspricht der Logging API-Methodeprojects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  3. Verwenden Sie beispielsweise den Befehl gcloud logging sinks update und fügen Sie das Flag --disabled ein, um die Senke _Default zu deaktivieren:

    gcloud logging sinks update _Default  --disabled
    

Die Senke _Default ist jetzt deaktiviert. Es leitet keine Logs mehr an den Bucket _Default weiter.

Wenn Sie die anderen Senken in Ihrem Cloud-Projekt deaktivieren möchten, die an den Bucket _Default weitergeleitet werden, wiederholen Sie die obigen Schritte.

Verwenden Sie zum Aktivieren einer Senke den Befehl gcloud logging sinks update, entfernen Sie das Flag --disabled und fügen Sie das Flag --no-disabled ein:

gcloud logging sinks update _Default  --no-disabled

Zielberechtigungen festlegen

In diesem Abschnitt wird beschrieben, wie Sie Logging die Berechtigung zur Identitäts- und Zugriffsverwaltung erteilen, um Logs in das Ziel der Senke zu schreiben. Eine vollständige Liste der Logging-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung.

Wenn Sie eine Senke erstellen, wird in Logging ein neues Dienstkonto für die Senke erstellt. Dieses wird als unique-writer-identity bezeichnet. Das Senkenziel muss diesem Dienstkonto das Schreiben von Logeinträgen ermöglichen. Sie können dieses Dienstkonto nicht direkt verwalten, da es Cloud Logging gehört und von diesem verwaltet wird. Das Dienstkonto wird gelöscht, wenn die Senke gelöscht wird.

Wenn Sie eine Senke verwenden, um Logs zwischen Logging-Buckets im selben Cloud-Projekt weiterzuleiten, wird kein neues Dienstkonto erstellt. Die Senke arbeitet ohne die eindeutige Autorenidentität. Wenn Sie eine Senke verwenden, um Logs zwischen Logging-Buckets in verschiedenen Cloud-Projekten weiterzuleiten, wird ein neues Dienstkonto erstellt.

So legen Sie die Berechtigungen für die Weiterleitung der Senke zu ihrem Ziel fest:

Console

  1. Rufen Sie die Identität des Autors der Senke – eine E-Mail-Adresse – aus der neuen Senke ab. Rufen Sie die Seite Log Router auf und wählen Sie Menü > Senkendetails ansehen aus. Die Identität des Autors wird im Bereich Senkendetails angezeigt.

  2. Wenn Sie die Rolle Inhaber für das Ziel haben, fügen Sie dem Ziel das Dienstkonto so hinzu:

    • Wenn Sie Cloud Storage-Ziele verwenden, fügen Sie die Autorenidentität der Senke dem Cloud Storage-Bucket hinzu und weisen ihr die Rolle Storage-Objekt-Ersteller zu.
    • Fügen Sie für BigQuery-Ziele die Autorenidentität der Senke dem Dataset hinzu und weisen Sie ihr die Rolle BigQuery-Dateneditor zu.
    • Fügen Sie für Pub/Sub, einschließlich Splunk, die Autorenidentität der Senke Ihrem Thema hinzu und weisen Sie ihr die Rolle Pub/Sub-Publisher zu.
    • Wenn Sie Logging-Bucket-Ziele in verschiedenen Cloud-Projekten verwenden möchten, fügen Sie die Autorenidentität der Senke dem Ziel-Log-Bucket hinzu und erteilen Sie die Berechtigung roles/logging.bucketWriter.

    Wenn Sie nicht die Berechtigung Inhaber für das Ziel der Senke haben, senden Sie den Namen des Dienstkontos für die Autorenidentität einem Nutzer mit dieser Berechtigung. Diese Person sollte dann der Anleitung im vorherigen Schritt folgen, um dem Senkenziel die Identität des Autors hinzuzufügen.

API

  1. Rufen Sie die API-Methode projects.Sink.create oder projects.Sink.update auf, um die Senke zu erstellen oder zu ändern.

    Setzen Sie uniqueWriterIdentity auf true. Wenn Sie eine Senke aktualisieren, können Sie von einem freigegebenen Autor zu einem eindeutigen Autor wechseln. Wenn die vorhandene Senke bereits einen eindeutigen Autor verwendet, verwendet die aktualisierte Senke denselben Autor.

    Die Methoden geben die neue Senke zurück, die die neue Identität des Autors enthält.

  2. Wenn Sie mit IAM Zugriff auf das Ziel haben, fügen Sie dem Ziel das Dienstkonto so hinzu:

    • Wenn Sie Cloud Storage-Ziele verwenden, fügen Sie die Autorenidentität der Senke dem Cloud Storage-Bucket hinzu und weisen ihr die Rolle Storage-Objekt-Ersteller zu.
    • Fügen Sie für BigQuery-Ziele die Autorenidentität der Senke dem Dataset hinzu und weisen Sie ihr die Rolle BigQuery-Dateneditor zu.
    • Fügen Sie für Pub/Sub, einschließlich Splunk, die Autorenidentität der Senke Ihrem Thema hinzu und weisen Sie ihr die Rolle Pub/Sub-Publisher zu.
    • Wenn Sie Logging-Bucket-Ziele in verschiedenen Cloud-Projekten verwenden möchten, fügen Sie die Autorenidentität der Senke dem Ziel-Log-Bucket hinzu und erteilen Sie die Berechtigung roles/logging.bucketWriter.

    Wenn Sie nicht die Berechtigung Inhaber für das Ziel der Senke haben, senden Sie den Namen des Dienstkontos für die Autorenidentität einem Nutzer mit dieser Berechtigung. Diese Person sollte dann der Anleitung im vorherigen Schritt folgen, um dem Senkenziel die Identität des Autors hinzuzufügen.

gcloud

  1. Rufen Sie das Dienstkonto aus dem Feld writerIdentity der Senke ab:

    gcloud logging sinks describe SINK_NAME
    

    Das Dienstkonto sieht in etwa so aus:

    serviceAccount:p123456789012-12345@gcp-sa-logging.iam.gserviceaccount.com
    
  2. Wenn Sie mit IAM Zugriff auf das Ziel haben, fügen Sie dem Ziel das Dienstkonto so hinzu:

    • Wenn Sie Cloud Storage-Ziele verwenden, fügen Sie die Autorenidentität der Senke dem Cloud Storage-Bucket hinzu und weisen ihr die Rolle Storage-Objekt-Ersteller zu.
    • Fügen Sie für BigQuery-Ziele die Autorenidentität der Senke dem Dataset hinzu und weisen Sie ihr die Rolle BigQuery-Dateneditor zu.
    • Fügen Sie für Pub/Sub, einschließlich Splunk, die Autorenidentität der Senke Ihrem Thema hinzu und weisen Sie ihr die Rolle Pub/Sub-Publisher zu.
    • Wenn Sie Logging-Bucket-Ziele in verschiedenen Cloud-Projekten verwenden möchten, fügen Sie die Autorenidentität der Senke dem Ziel-Log-Bucket hinzu und erteilen Sie die Berechtigung roles/logging.bucketWriter.

    Wenn Sie nicht die Berechtigung Inhaber für das Ziel der Senke haben, senden Sie den Namen des Dienstkontos für die Autorenidentität einem Nutzer mit dieser Berechtigung. Diese Person sollte dann der Anleitung im vorherigen Schritt folgen, um dem Senkenziel die Identität des Autors hinzuzufügen.

    Wenn Sie beispielsweise Logs zwischen Logging-Buckets in verschiedenen Cloud-Projekten weiterleiten, fügen Sie dem Dienstkonto so roles/logging.bucketWriter hinzu:

    1. Rufen Sie die Identity and Access Management-Richtlinie für das Cloud-Zielprojekt ab und schreiben Sie sie in eine lokale Datei im JSON-Format:

      gcloud projects get-iam-policy DESTINATION_PROJECT_ID --format json > output.json
      
    2. Fügen Sie eine IAM-Bedingung hinzu, die dem Dienstkonto das Schreiben nur in den von Ihnen erstellten Cloud Logging-Bucket ermöglicht. Beispiel:

      {
      "bindings": [
       {
         "members": [
           "user:username@gmail.com"
         ],
         "role": "roles/owner"
       },
       {
         "members": [
           "[SERVICE_ACCOUNT]"
         ],
         "role": "roles/logging.bucketWriter",
         "condition": {
             "title": "Bucket writer condition example",
             "description": "Grants logging.bucketWriter role to service account [SERVICE_ACCOUNT] used by log sink [SINK_NAME]",
             "expression":
               "resource.name.endsWith(\'locations/global/buckets/BUCKET_ID\')"
         }
       }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
      }
    3. Aktualisieren Sie die IAM-Richtlinie:

      gcloud projects set-iam-policy DESTINATION_PROJECT_ID output.json
      

Codebeispiele

Informationen zum Konfigurieren von Clientbibliotheken zum Konfigurieren von Senken in den ausgewählten Sprachen finden Sie unter Logging-Clientbibliotheken: Logsenken.

Beispiele für Filter

Im Folgenden finden Sie einige Filterbeispiele, die besonders beim Erstellen von Senken nützlich sind.

Weitere Beispiele, die beim Erstellen Ihrer Ein- und Ausschlussfilter nützlich sein können, finden Sie unter Beispielabfragen.

Filter sink_Default“ wiederherstellen

Wenn Sie den Filter für die Senke _Default bearbeitet haben, können Sie den Standardfilter wiederherstellen. Geben Sie dazu den folgenden Einschlussfilter ein:

  NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT \
  LOG_ID("externalaudit.googleapis.com/activity") AND NOT \
  LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT \
  LOG_ID("externalaudit.googleapis.com/system_event") AND NOT \
  LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT \
  LOG_ID("externalaudit.googleapis.com/access_transparency")

Google Kubernetes Engine-Container- und -Pod-Logs ausschließen

Verwenden Sie den folgenden Filter, um Google Kubernetes Engine-Container- und Pod-Logs für das GKE-System namespaces auszuschließen :

resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")

Mit dem folgenden Filter können Sie Google Kubernetes Engine-Knotenlogs für das GKE-System logNames ausschließen:

resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")

Wenn Sie das Volumen der in Cloud Logging aufgenommenen Knoten-, Pod- und Container-Logs von Google Kubernetes Engine ansehen möchten, verwenden Sie Metrics Explorer in Cloud Monitoring.

Für die Unterstützung nicht erforderliche Dataflow-Logs ausschließen

Verwenden Sie den folgenden Filter, um Dataflow-Logs auszuschließen, die nicht für die Unterstützung erforderlich sind:

resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"

Mit dem Metrics Explorer in Cloud Monitoring können Sie das Volumen der in Cloud Logging aufgenommenen Dataflow-Logdaten ansehen.

Support

Mit Cloud Logging haben Sie die Möglichkeit, Logs von der Aufnahme auszuschließen. Es empfiehlt sich aber, Logs zu erstellen, die die Unterstützung unterstützen. Mit diesen Logs können Sie Probleme in Ihren Anwendungen schnell beheben und Probleme erkennen.

GKE-Systemlogs eignen sich beispielsweise zum Beheben von GKE-Anwendungen und -Clustern, da sie für Ereignisse in Ihrem Cluster generiert werden. Mit diesen Logs können Sie feststellen, ob Ihr Anwendungscode oder der zugrunde liegende GKE-Cluster Ihren Anwendungsfehler verursacht. GKE-Systemlogs enthalten auch Kubernetes-Audit-Logging, das von der Kubernetes API-Serverkomponente generiert wird. Dazu gehören Änderungen, die mit dem kubectl-Befehl und Kubernetes-Ereignissen vorgenommen wurden.

Für Dataflow empfehlen wir, mindestens Ihre Systemlogs (labels."dataflow.googleapis.com/log_type"="system") und Supportlogs (labels."dataflow.googleapis.com/log_type"="supportability") aufzunehmen. Diese Logs sind für Entwickler unerlässlich, um ihre Dataflow-Pipelines zu beobachten und Fehler zu beheben. Nutzer können die Dataflow-Seite Jobdetails unter Umständen nicht verwenden, um Joblogs aufzurufen.

Nächste Schritte