Mit Log-Senken in Cloud Logging können Sie Logeinträge aus Ihrem Google Cloud -Projekt an unterstützte Ziele für die Langzeitspeicherung, Analyse oder das Streaming weiterleiten. Zum Bereitstellen von Logs schreibt jede Senke in ein autorisiertes Ziel, z. B. einen Log-Bucket oder ein Pub/Sub-Thema.
Eine Senke führt eine Schreibaktion aus und muss daher berechtigt sein, in das Ziel zu schreiben. Wenn das Ziel ein Log-Bucket im selben Projekt wie die Senke ist, wird die Senke automatisch autorisiert. Für alle anderen Ziele muss die Senke an ein Dienstkonto angehängt werden, dem die erforderlichen Berechtigungen zum Schreiben von Daten in das Ziel erteilt wurden.
Wenn ein Dienstkonto erforderlich ist, wird es von Cloud Logging automatisch erstellt und verwaltet. Möglicherweise müssen Sie jedoch die Berechtigungen des Dienstkontos ändern. Sie müssen nicht das von Logging erstellte Dienstkonto verwenden. Sie können ein Dienstkonto erstellen und verwalten, das von Senken in mehreren Projekten verwendet wird. Weitere Informationen finden Sie unter Logsenken mit nutzerverwalteten Dienstkonten konfigurieren.
Übersicht
In diesem Dokument wird beschrieben, wie Sie eine Senke erstellen und die Optionen konfigurieren, die Sie möglicherweise bei der Verwendung der Google Cloud Console, der Google Cloud CLI oder der API sehen.
Senken gehören zu einer bestimmten Google Cloud Ressource: einem Google Cloud Projekt, einem Rechnungskonto, einem Ordner oder einer Organisation. Wenn die Ressource einen Logeintrag empfängt, wird dieser von jeder Senke in der Ressource verarbeitet. Wenn ein Logeintrag mit den Filtern der Senke übereinstimmt, wird er an das Ziel der Senke weitergeleitet.
In der Regel leiten Senken nur die Logeinträge weiter, die aus einer Ressource stammen. Für Ordner und Organisationen können Sie jedoch aggregierte Senken erstellen. Diese Senken leiten Logeinträge weiter, die aus dem Ordner oder der Organisation und aus den untergeordneten Ressourcen stammen. In diesem Dokument werden aggregierte Senken nicht behandelt. Weitere Informationen finden Sie unter Aggregierte Senken – Übersicht.
Zum Erstellen und Verwalten von Senken können Sie die Google Cloud Console, die Cloud Logging API und die Google Cloud CLI verwenden. Wir empfehlen die Verwendung der Google Cloud Console aus folgenden Gründen:
- Sie können Senkenziele als Teil des Ablaufs zum Erstellen einer Senke konfigurieren.
- Sie können sich eine Vorschau der Logeinträge ansehen, die den Filtern der Senke entsprechen.
- Einige Autorisierungsschritte wurden vereinfacht.
Wir empfehlen, die Konfiguration der Logsenke zu überprüfen, wenn Sie Änderungen am Logspeicher vornehmen. Wenn Sie beispielsweise das Ziel einer Logsenke löschen, löschen Sie auch die entsprechende Logsenke.
Informationen zum Aufrufen und Verwalten Ihrer Logsenken finden Sie in diesem Dokument im Abschnitt Senken verwalten.
Unterstützte Ziele
Das Ziel einer Senke kann sich in einer anderen Ressource als die Senke befinden. Sie können beispielsweise eine Logsenke verwenden, um Logeinträge von einem Projekt an einen Log-Bucket weiterzuleiten, der in einem anderen Projekt gespeichert ist.
Die folgenden Ziele werden unterstützt:
- Google Cloud -Projekt
Wählen Sie dieses Ziel aus, wenn die Logsenken im Zielprojekt Ihre Logeinträge weiterleiten sollen oder wenn Sie eine abfangende aggregierte Senke erstellt haben. Die Logsenken im Zielprojekt können die Logeinträge an jedes unterstützte Ziel außer einem Projekt weiterleiten.
Die vom System erstellten Logsenken im Zielprojekt schließen Logeinträge aus, die an den Log-Bucket
_Requiredim Quellprojekt weitergeleitet werden. Wenn Sie beispielsweise Administratoraktivitätslogs an ein anderes Projekt weiterleiten, werden diese Logeinträge sowohl von der Logsenke_Requiredals auch von der Logsenke_Defaultim Zielprojekt ausgeschlossen. Wenn Sie diese Logeinträge speichern möchten, aktualisieren Sie im Zielprojekt die Logsenke_Defaultoder erstellen Sie eine benutzerdefinierte Logsenke.
- Log-Bucket
- Wählen Sie dieses Ziel aus, wenn Sie Ihre Logdaten in Ressourcen speichern möchten, die von Cloud Logging verwaltet werden. In Log-Buckets gespeicherte Logdaten können mit Diensten wie dem Log-Explorer aufgerufen und analysiert werden.
- Pub/Sub-Thema
- Wählen Sie dieses Ziel aus, wenn Sie Ihre Logdaten ausGoogle Cloud exportieren und dann eine Integration von Drittanbietern verwenden möchten. Logeinträge werden als JSON formatiert und dann an ein Pub/Sub-Thema weitergeleitet.
Einschränkungen für Ziele
In diesem Abschnitt werden zielspezifische Einschränkungen beschrieben:
- Wenn Sie ein Senkenziel konfigurieren, geben Sie den vollständig qualifizierten Pfad an und verwenden Sie den globalen Endpunkt des Dienstes.
Regionale Dienstendpunkte (REPs) wie
pubsub.LOCATION.rep.googleapis.comwerden nicht unterstützt.
Das Weiterleiten von Logs an ein Pub/Sub-Thema, das Einschränkungen für die Übertragung erzwingt, wird nicht unterstützt. Logging kann nicht garantieren, dass Veröffentlichungsanfragen aus einer zulässigen Region stammen. Dies führt zu
topic_region_not_allowed-Konfigurationsfehlern und verworfenen Logs.Die folgenden Einschränkungen gelten, wenn das Ziel einer Logsenke ein Google Cloud -Projekt ist:
- Es gibt ein Limit von einem Hop.
- Die Logsenke
_Requiredim Zielprojekt leitet Logeinträge an den Log-Bucket_Requireddes Projekts weiter, wenn die Logeinträge mit dem Filter der Senke übereinstimmen und aus dem Zielprojekt stammen. - Die
_Default-Logsenke im Zielprojekt leitet Logeinträge weiter, die mit dem „Einschließen“-Filter übereinstimmen und mit keinem „Ausschließen“-Filter übereinstimmen. Die Logsenke_Defaultschließt einige Logeinträge aus. Diese Senke leitet beispielsweise keine Logeinträge für Administratoraktivitäten und Systemereignisse weiter. Sie können diese Senke ändern. - Nur aggregierte Senken, die sich in der Ressourcenhierarchie eines Logeintrags befinden, verarbeiten den Eintrag.
Angenommen, das Ziel einer Logsenke in Projekt
Aist ProjektB. In diesem Fall gelten die folgenden Regeln:- Aufgrund des One-Hop-Limits können die Logsenken im Projekt
BLogeinträge nicht an ein anderes Google Cloud Projekt weiterleiten. - Im Log-Bucket
_Requireddes ProjektsBwerden nur Logeinträge gespeichert, die aus dem ProjektBstammen. In diesem Log-Bucket werden keine Logeinträge gespeichert, die aus einer anderen Ressource stammen, einschließlich derer, die aus dem ProjektAstammen. - Wenn Projekt
Aund ProjektBunterschiedliche Ressourcenhierarchien haben, wird ein Logeintrag, den eine Logsenke in ProjektAan ProjektBweiterleitet, nicht an die aggregierten Senken in der Ressourcenhierarchie von ProjektBgesendet. - Wenn Projekt
Aund ProjektBdieselbe Ressourcenhierarchie haben, werden Logeinträge an die aggregierten Senken in dieser Hierarchie gesendet. Wenn ein Logeintrag nicht von einer aggregierten Senke abgefangen wird, sendet der Logrouter den Eintrag an die Senken im ProjektA.
Hinweis
In diesem Dokument wird beschrieben, wie Sie Senken aufGoogle Cloud Projektebene erstellen und verwalten. Sie können dieselbe Vorgehensweise verwenden, um eine Senke zu erstellen, die Logeinträge weiterleitet, die aus einer Organisation, einem Ordner oder einem Rechnungskonto stammen.
Gehen Sie zuerst so vor:
-
Aktivieren Sie die Cloud Logging API, falls sie noch nicht aktiviert ist.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen Achten Sie darauf, dass Ihr Google Cloud -Projekt Logeinträge enthält, die Sie im Log-Explorer sehen können.
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Logs Configuration Writer (
roles/logging.configWriter) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen, Ändern oder Löschen einer Senke benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Informationen zum Zuweisen von IAM-Rollen finden Sie in der Anleitung zur Zugriffssteuerung für Logging.
Sie benötigen eine Ressource in einem unterstützten Ziel oder die Erlaubnis, eine Ressource zu erstellen.
Damit Logeinträge an ein Ziel weitergeleitet werden können, muss das Ziel vorhanden sein, bevor Sie die Senke erstellen. Sie können das Ziel in einem beliebigenGoogle Cloud -Projekt jeder Organisation erstellen.
Bevor Sie eine Senke erstellen, sollten Sie sich die Einschränkungen für das Senkenziel ansehen. Weitere Informationen finden Sie im Abschnitt Einschränkungen für Ziele in diesem Dokument.
Wählen Sie die Oberfläche aus, die Sie verwenden möchten:
Console
Wenn Sie über die Google Cloud Console auf Dienste und APIs von Google Cloud zugreifen, müssen Sie die Authentifizierung nicht einrichten.
gcloud
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:
gcloud initREST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Senke erstellen
In diesem Abschnitt wird beschrieben, wie Sie eine Senke in einem Google Cloud -Projekt erstellen.
Sie können bis zu 200 Senken pro Google Cloud -Projekt erstellen.
Die Anzahl und das Volumen der weitergeleiteten Logeinträge finden Sie in den logging.googleapis.com/exports/-Messwerten.
Sie verwenden die Logging-Abfragesprache, um einen Filterausdruck zu erstellen, der den Logeinträgen entspricht, die Sie einschließen möchten. Fügen Sie keine vertraulichen Informationen in Senkenfilter ein. Senkenfilter werden als Dienstdaten behandelt.
Wenn eine Abfrage mehrere Anweisungen enthält, können Sie entweder angeben, wie diese Anweisungen verknüpft werden, oder sich darauf verlassen, dass Cloud Logging die konjunktive Einschränkung AND implizit zwischen den Anweisungen hinzufügt. Angenommen, ein Abfrage- oder Filterdialogfeld enthält zwei Anweisungen: resource.type = "gce_instance" und severity >= "ERROR".
Die tatsächliche Suchanfrage lautet resource.type = "gce_instance" AND severity >= "ERROR".
Cloud Logging unterstützt sowohl disjunktive Einschränkungen (OR) als auch konjunktive Einschränkungen (AND). Wenn Sie OR-Anweisungen verwenden, empfehlen wir, die Klauseln mit Klammern zu gruppieren.
So erstellen Sie eine Senke:
Console
-
Rufen Sie in der Google Cloud Console die Seite Logs Router auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
Wählen Sie das Google Cloud -Projekt aus, aus dem die Logeinträge stammen, die Sie weiterleiten möchten.
Wenn Sie beispielsweise Ihre Logeinträge für den Datenzugriff aus dem Projekt
Project-Aan einen Log-Bucket im ProjektProject-Bweiterleiten möchten, wählen SieProject-Aaus.Wählen Sie Senke erstellen aus.
Geben Sie im Bereich Senkendetails die folgenden Details ein:
Name der Senke: Geben Sie eine Kennzeichnung für die Senke ein. Nachdem Sie die Senke erstellt haben, können Sie sie nicht mehr umbenennen, aber löschen und eine neue erstellen.
Senkenbeschreibung (optional): Beschreiben Sie den Zweck oder den Anwendungsfall für die Senke.
Wählen Sie im Bereich Senkenziel den Senkendienst und das Ziel über das Menü Senkendienst auswählen aus. Führen Sie einen der folgenden Schritte aus:
Wählen Sie eine der folgenden Optionen aus, um Logeinträge an einen Dienst im selbenGoogle Cloud -Projekt weiterzuleiten:
- Cloud Logging-Bucket: Wählen Sie einen Logging-Bucket aus oder erstellen Sie einen.
- Pub/Sub-Thema: Wählen Sie das Thema aus, das die weitergeleiteten Logeinträge empfangen soll, oder erstellen Sie es.
Wenn Sie Logeinträge an ein anderes Google Cloud -Projekt weiterleiten möchten, wählen Sie Google Cloud -Projekt aus und geben Sie dann den vollständig qualifizierten Namen für das Ziel ein:
logging.googleapis.com/projects/DESTINATION_PROJECT_IDSo leiten Sie Logeinträge an einen Dienst weiter, der sich in einem anderenGoogle Cloud -Projekt befindet:
- Wählen Sie Andere Ressource aus.
- Geben Sie den vollständig qualifizierten Namen für das Ziel ein. Informationen zur Syntax finden Sie unter Formate für Zielpfade.
Geben Sie die einzuschließenden Logeinträge an:
Rufen Sie den Bereich Logs auswählen, die in der Senke enthalten sind auf.
Geben Sie im Feld Einschlussfilter erstellen einen Filterausdruck ein, der den Logeinträgen entspricht, die Sie einschließen möchten. Informationen zur Syntax finden Sie unter Logging-Abfragesprache.
Wenn Sie keinen Filter festlegen, werden alle Logeinträge aus der ausgewählten Ressource an das Ziel weitergeleitet.
Wenn Sie beispielsweise alle Logeinträge für den Datenzugriff an einen Logging-Bucket weiterleiten möchten, können Sie den folgenden Filter verwenden:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")Die Länge eines Filters darf 20.000 Zeichen nicht überschreiten.
Wenn Sie prüfen möchten, ob Sie den richtigen Filter eingegeben haben, wählen Sie Logvorschau ansehen aus. Der Log-Explorer wird in einem neuen Tab geöffnet, auf dem der Filter bereits ausgefüllt ist.
(Optional) Konfigurieren Sie einen Ausschlussfilter, um einige der enthaltenen Logeinträge zu entfernen:
Rufen Sie den Bereich Logs zum Filtern aus der Senke auswählen auf.
Geben Sie in das Feld Name des Ausschlussfilters einen Namen ein.
Geben Sie im Abschnitt Ausschlussfilter erstellen einen Filterausdruck ein, der den Logeinträgen entspricht, die Sie ausschließen möchten. Mit der Funktion
samplekönnen Sie auch einen Teil der Logeinträge auswählen, die ausgeschlossen werden sollen.
Sie können bis zu 50 Ausschlussfilter pro Senke erstellen. Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.
Wählen Sie Senke erstellen aus.
Gewähren Sie dem Dienstkonto der Senke die Berechtigung, Logeinträge in das Ziel der Senke zu schreiben. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.
gcloud
So erstellen Sie eine Senke:
Führen Sie dazu den Befehl
gcloud logging sinks createaus.gcloud logging sinks create SINK_NAME SINK_DESTINATION
Bevor Sie den Befehl ausführen, ersetzen Sie die folgenden Werte:
- SINK_NAME: Der Name der Logsenke. Sie können den Namen einer Senke nach dem Erstellen nicht mehr ändern.
SINK_DESTINATION: Der Dienst oder das Projekt, an den bzw. das Ihre Logeinträge weitergeleitet werden sollen. Legen Sie für SINK_DESTINATION den entsprechenden Pfad fest, wie unter Formate für Zielpfade beschrieben.
Wenn das Ziel Ihrer Senke beispielsweise ein Pub/Sub-Thema ist, sieht SINK_DESTINATION so aus:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Sie können auch die folgenden Optionen angeben:
--log-filter: Verwenden Sie diese Option, um einen Filter festzulegen, der den Logeinträgen entspricht, die Sie in Ihre Senke aufnehmen möchten. Wenn Sie keinen Wert für den „Einschließen“-Filter angeben, stimmt dieser Filter mit allen Logeinträgen überein.--exclusion: Verwenden Sie diese Option, um einen Ausschlussfilter für Logeinträge festzulegen, die nicht von Ihrer Senke weitergeleitet werden sollen. Mit der Funktionsamplekönnen Sie auch einen Teil der Logeinträge auswählen, die ausgeschlossen werden sollen. Diese Option kann wiederholt werden. Sie können bis zu 50 Ausschlussfilter pro Senke erstellen.--description: Verwenden Sie diese Option, um den Zweck oder Anwendungsfall für die Senke zu beschreiben.
Wenn Sie beispielsweise eine Senke in einem 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 der Google Cloud CLI finden Sie in der Referenz zu
gcloud logging sinks.Wenn die Befehlsantwort einen JSON-Schlüssel mit dem Label
"writerIdentity"enthält, gewähren Sie dem Dienstkonto der Senke die Berechtigung, in das Ziel der Senke zu schreiben. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.Sie müssen keine Zielberechtigungen festlegen, wenn die Antwort keinen JSON-Schlüssel mit dem Label
"writerIdentity"enthält.
REST
Wenn Sie eine Logging-Senke in Ihrem Google Cloud -Projekt erstellen möchten, verwenden Sie
projects.sinks.createin der Logging API. Geben Sie im ObjektLogSinkdie erforderlichen Werte im Text der Methodenanfrage 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 erstellen.destination: Der Dienst und das Ziel, an die Ihre Logeinträge weitergeleitet werden sollen. Wenn Sie Logeinträge an ein anderes Projekt oder an ein Ziel in einem anderen Projekt weiterleiten möchten, legen Sie für das Felddestinationden entsprechenden Pfad fest, wie unter Formate für Zielpfade beschrieben.Wenn das Ziel Ihrer Senke beispielsweise ein Pub/Sub-Thema ist, sieht der
destinationso aus:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Geben Sie im
LogSink-Objekt die entsprechenden optionalen Informationen an:filter: Legen Sie das Feldfilterso fest, dass es den Logeinträgen entspricht, die Sie in Ihre Senke aufnehmen möchten. Wenn Sie keinen Filter festlegen, werden alle Logeinträge aus IhremGoogle Cloud -Projekt an das Ziel weitergeleitet. Beachten Sie, dass ein Filter nicht länger als 20.000 Zeichen sein darf.exclusions: Legen Sie dieses Feld so fest, dass es mit den Logeinträgen übereinstimmt, die Sie aus der Senke ausschließen möchten. Mit der Funktionsamplekönnen Sie auch einen Teil der Logeinträge auswählen, die ausgeschlossen werden sollen. Sie können bis zu 50 Ausschlussfilter pro Senke erstellen.description: Legen Sie in diesem Feld den Zweck oder Anwendungsfall für die Senke fest.
Rufen Sie
projects.sinks.createauf, um die Senke zu erstellen.Wenn die API-Antwort einen JSON-Schlüssel mit der Bezeichnung
"writerIdentity"enthält, gewähren Sie dem Dienstkonto der Senke die Berechtigung, in das Ziel der Senke zu schreiben. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.Sie müssen keine Zielberechtigungen festlegen, wenn die API-Antwort keinen JSON-Schlüssel mit der Bezeichnung
"writerIdentity"enthält.
Weitere Informationen zum Erstellen von Senken mit der Logging API finden Sie in der Referenz zu LogSink.
Wenn Sie Fehlermeldungen erhalten, lesen Sie den Abschnitt Fehlerbehebung bei Routing und Senken.
Zielpfadformate
Wenn Sie ein Senkenziel konfigurieren, geben Sie den vollständig qualifizierten Pfad an und verwenden Sie den globalen Endpunkt des Dienstes.
Regionale Dienstendpunkte (REPs) wie pubsub.LOCATION.rep.googleapis.com werden nicht unterstützt.
In den folgenden Pfadformaten bezieht sich DESTINATION_PROJECT_ID auf die ID oder Nummer des Zielprojekts:
Cloud Logging-Log-Bucket:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Ein weiteres Google Cloud -Projekt:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Pub/Sub-Thema:
pubsub.googleapis.com/projects/DESTINATION_PROJECT_ID/topics/TOPIC_ID
Zielberechtigungen festlegen
In diesem Abschnitt wird beschrieben, wie Sie Logging die IAM-Berechtigungen (Identity and Access Management) zum Schreiben von Logeinträgen in das Ziel Ihrer Senke gewähren. Eine vollständige Liste der Logging-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung.
Cloud Logging erstellt ein freigegebenes Dienstkonto für eine Ressource, wenn eine Senke erstellt wird, sofern das erforderliche Dienstkonto nicht bereits vorhanden ist. Das Dienstkonto ist möglicherweise vorhanden, weil dasselbe Dienstkonto für alle Senken in der zugrunde liegenden Ressource verwendet wird. Eine Ressource kann ein Google Cloud -Projekt, eine Organisation, ein Ordner oder ein Rechnungskonto sein.
Die Identität des Autors einer Senke ist die Kennung des Dienstkontos, das mit dieser Senke verknüpft ist. Alle Senken haben eine Schreibidentität, mit Ausnahme von Senken, die in einen Log-Bucket im selben Google Cloud -Projekt schreiben, aus dem die Logeinträge stammen. Für die letztgenannte Konfiguration ist kein Dienstkonto erforderlich. Daher wird das Feld writerIdentity der Senke in der Console als None aufgeführt. Die API- und Google Cloud CLI-Befehle melden keine Schreibidentität.
Die folgende Anleitung gilt für Projekte, Ordner, Organisationen und Rechnungskonten:
Console
Sie benötigen Inhaberzugriff auf dasGoogle Cloud -Projekt, das das Ziel enthält. Wenn Sie keinen Owner Zugriff auf das Ziel der Senke haben, bitten Sie einen Project Owner, die Writer-Identität als Prinzipal hinzuzufügen.
So rufen Sie die Schreibidentität der Senke (eine E-Mail-Adresse) aus der neuen Senke ab:
-
Rufen Sie in der Google Cloud Console die Seite Logs Router auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
- Wählen Sie in der Symbolleiste das Projekt aus, das die Senke enthält.
- Wählen Sie more_vert Menü und dann Senkendetails ansehen aus. Die Identität des Autors wird im Feld Senkendetails angezeigt.
-
Wenn der Wert des Felds
writerIdentityeine E-Mail-Adresse enthält, fahren Sie mit dem nächsten Schritt fort. Wenn der WertNoneist, müssen Sie keine Zielberechtigungen für die Senke konfigurieren.Kopieren Sie die Identität des Autors der Senke in die Zwischenablage.
Die E-Mail-Adresse identifiziert das Hauptkonto. Das Präfix
serviceAccount:gibt den Kontotyp an.Gewähren Sie dem Hauptkonto, das in der Autorenidentität der Senke angegeben ist, die Berechtigung, Logdaten in das Ziel zu schreiben:
-
Rufen Sie in der Google Cloud Console die Seite IAM auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM & Admin lautet.
Achten Sie darauf, dass das in der Symbolleiste ausgewählte Projekt entweder das Projekt ist, in dem das Ziel gespeichert ist, oder das Senkenziel ist. Wenn das Ziel beispielsweise ein Log-Bucket ist, muss in der Symbolleiste das Projekt angezeigt werden, in dem der Log-Bucket gespeichert ist.
Wählen Sie Zugriff gewähren aus.
Weisen Sie dem Hauptkonto, das in der Writer-Identität der Senke angegeben ist, eine IAM-Rolle basierend auf dem Ziel der Logsenke zu:
- Weisen Sie für alle Ziele die Rolle „Log-Autor“ (
roles/logging.logWriter) zu. Ein Hauptkonto benötigt insbesondere die Berechtigunglogging.logEntries.route. - Weisen Sie je nach Ziel eine der folgenden Rollen zu:
- Log-Bucket: Weisen Sie die Rolle „Log-Bucket-Autor“ (
roles/logging.bucketWriter) zu. - Pub/Sub-Thema: Weisen Sie die Rolle „Pub/Sub-Publisher“ (
roles/pubsub.publisher) zu.
- Log-Bucket: Weisen Sie die Rolle „Log-Bucket-Autor“ (
- Weisen Sie für alle Ziele die Rolle „Log-Autor“ (
-
gcloud
Sie benötigen Inhaberzugriff auf dasGoogle Cloud -Projekt, das das Ziel enthält. Wenn Sie keinen Owner Zugriff auf das Ziel der Senke haben, bitten Sie einen Project Owner, die Writer-Identität als Prinzipal hinzuzufügen.
Rufen Sie das Dienstkonto aus dem Feld
writerIdentityder Senke ab:gcloud logging sinks describe SINK_NAME
Suchen Sie die Senke, deren Berechtigungen Sie ändern möchten. Wenn die Senkendetails eine Zeile mit
writerIdentityenthalten, fahren Sie mit dem nächsten Schritt fort. Wenn die Details keinwriterIdentity-Feld enthalten, müssen Sie keine Zielberechtigungen für die Senke konfigurieren.Die Writer-Identität für das Dienstkonto sieht in etwa so aus:
serviceAccount:service-123456789012@gcp-sa-logging.
Gewähren Sie der Autorenidentität der Senke die Berechtigung, Logdaten in das Ziel zu schreiben, indem Sie den Befehl
gcloud projects add-iam-policy-bindingaufrufen.Bevor Sie den folgenden Befehl ausführen, ersetzen Sie die folgenden Werte:
- PROJECT_ID: Die Kennung des Projekts. Geben Sie das Projekt an, in dem das Ziel der Logsenke gespeichert ist. Wenn das Ziel ein Projekt ist, geben Sie dieses Projekt an.
- PRINCIPAL: Eine Kennzeichnung für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Hauptkonto-Kennzeichnungen haben normalerweise das folgende Format:
PRINCIPAL-TYPE:ID. Beispiel:Eine vollständige Liste der Formate, diePRINCIPALhaben kann, finden Sie unter Hauptkonto-IDs. ROLE: Eine IAM-Rolle. Weisen Sie der Autorenidentität der Senke eine IAM-Rolle basierend auf dem Ziel der Logsenke zu:
- Weisen Sie für alle Ziele die Rolle „Log-Autor“ (
roles/logging.logWriter) zu. Ein Hauptkonto benötigt insbesondere die Berechtigunglogging.logEntries.route. - Weisen Sie je nach Ziel eine der folgenden Rollen zu:
- Log-Bucket: Weisen Sie die Rolle „Log-Bucket-Autor“ (
roles/logging.bucketWriter) zu. - Pub/Sub-Thema: Weisen Sie die Rolle „Pub/Sub-Publisher“ (
roles/pubsub.publisher) zu.
- Log-Bucket: Weisen Sie die Rolle „Log-Bucket-Autor“ (
- Weisen Sie für alle Ziele die Rolle „Log-Autor“ (
Führen Sie den Befehl
gcloud projects add-iam-policy-bindingaus.gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
REST
Wir empfehlen, die Google Cloud Console oder die Google Cloud CLI zu verwenden, um dem Dienstkonto eine Rolle zuzuweisen.
Beispiele für Filter
Im Folgenden finden Sie einige Filterbeispiele, die beim Erstellen von Senken besonders nützlich sind. Weitere Beispiele, die beim Erstellen von „Einschließen“-Filtern und „Ausschließen“-Filtern nützlich sein können, finden Sie unter Beispielabfragen.
_Default-Senkenfilter wiederherstellen
Wenn Sie den Filter für die _Default-Senke bearbeitet haben, sollten Sie diese Senke auf die ursprüngliche Konfiguration zurücksetzen. Nach dem Erstellen wird die Senke _Default mit dem folgenden „Einschließen“-Filter und einem leeren „Ausschließen“-Filter konfiguriert:
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-Logeinträge 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")
Verwenden Sie den folgenden Filter, um Google Kubernetes Engine-Knoten-Logeinträge für GKE-Systemwerte vom Typ log_id auszuschließen:
resource.type = "k8s_node"
(log_id("container-runtime") OR
log_id("docker") OR
log_id("kube-container-runtime-monitor") OR
log_id("kube-logrotate") OR
log_id("kube-node-configuration") OR
log_id("kube-node-installation") OR
log_id("kubelet") OR
log_id("kubelet-monitor") OR
log_id("node-journal") OR
log_id("node-problem-detector"))
Support
In Cloud Logging können Sie Logeinträge ausschließen und verhindern, dass sie in einem Log-Bucket gespeichert werden. Sie sollten jedoch Logeinträge beibehalten, die für den Support hilfreich sind. Mithilfe dieser Logeinträge können Sie Probleme mit Ihren Anwendungen beheben und identifizieren.
GKE-Systemprotokolleinträge sind beispielsweise nützlich, um Fehler in Ihren GKE-Anwendungen und -Clustern zu beheben, da sie für Ereignisse generiert werden, die in Ihrem Cluster auftreten. Anhand dieser Logeinträge können Sie feststellen, ob der Anwendungscode oder der zugrunde liegende GKE-Cluster einen Anwendungsfehler verursacht. GKE-Systemlogs enthalten auch Kubernetes-Audit-Logging, das von der Kubernetes API Server-Komponente generiert wird. Dazu gehören Änderungen, die mit dem Befehl kubectl vorgenommen wurden, und Kubernetes-Ereignisse.