In diesem Dokument wird erläutert, wie Sie Logsenken erstellen und verwalten, die Logeinträge aus einem Google Cloud Projekt an unterstützte Ziele weiterleiten.
Eine Senke führt eine Schreibaktion aus und muss daher zum Schreiben in das Ziel autorisiert sein. Wenn das Ziel ein Protokoll-Bucket im selben Projekt wie die Senke ist, wird die Senke automatisch autorisiert. Bei allen anderen Zielen muss die Senke mit einem Dienstkonto verknüpft sein, dem die Berechtigungen zum Schreiben von Daten an das Ziel gewährt wurden.
Wenn ein Dienstkonto erforderlich ist, wird es von Cloud Logging automatisch erstellt und verwaltet. Möglicherweise müssen Sie jedoch die dem Dienstkonto gewährten Berechtigungen ändern. Sie müssen das von Logging erstellte Dienstkonto nicht verwenden. Sie können ein Dienstkonto erstellen und verwalten, das von Senken in mehreren Projekten verwendet wird. Weitere Informationen finden Sie unter Protokoll-Sinks mit vom Nutzer verwalteten Dienstkonten konfigurieren.
Übersicht
Auf dieser Seite wird beschrieben, wie Sie einen Datenablauf erstellen und die Optionen konfigurieren, die Sie in der Google Cloud Console oder in der API sehen können.
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 der Logeintrag von jeder Senke in der Ressource verarbeitet. Wenn ein Logeintrag mit den Filtern der Senke übereinstimmt, wird er an das Ziel der Senke weitergeleitet.
Normalerweise leiten Senken nur die Logeinträge weiter, die aus einer Ressource stammen. Für Ordner und Organisationen können Sie jedoch aggregierte Senken erstellen, über die Logeinträge aus dem Ordner oder der Organisation und den darin enthaltenen Ressourcen weitergeleitet werden. In diesem Dokument werden keine aggregierten Senken behandelt. Weitere Informationen finden Sie unter Zusammengefasste Senken.
Sie können Senken mit der Google Cloud Console, der Cloud Logging API und der Google Cloud CLI erstellen und verwalten. Wir empfehlen die Verwendung der Google Cloud Console:
- Auf der Seite Logs Router sind alle Senken aufgeführt und Sie haben die Möglichkeit, sie zu verwalten.
- Beim Erstellen einer Senke können Sie sich eine Vorschau der Logeinträge ansehen, die den Filtern der Senke entsprechen.
- Sie können Senkenziele beim Erstellen einer Senke konfigurieren.
- Einige Autorisierungsschritte wurden für Sie abgeschlossen.
Unterstützte Ziele
Das Ziel einer Senke kann sich in einer anderen Ressource als der Senke befinden. Sie können beispielsweise eine Log-Senke verwenden, um Logeinträge aus einem Projekt an einen Log-Bucket in einem anderen Projekt weiterzuleiten.
Folgende Ziele werden unterstützt:
- Google Cloud -Projekt
Wählen Sie dieses Ziel aus, wenn die Log-Senke im Zielprojekt Ihre Logeinträge umleiten soll, oder wenn Sie eine abfangende aggregierte Senke erstellt haben. Die Log-Senke im Projekt, das das Senkenziel ist, kann die Logeinträge an jedes unterstützte Ziel weiterleiten, mit Ausnahme eines Projekts.
- Log-Bucket
Wählen Sie dieses Ziel aus, wenn Sie Ihre Protokolldaten in von Cloud Logging verwalteten Ressourcen speichern möchten. In Log-Buckets gespeicherte Logdaten können mit Diensten wie dem Log-Explorer und Log Analytics aufgerufen und analysiert werden.
Wenn Sie Ihre Logdaten mit anderen Geschäftsdaten zusammenführen möchten, können Sie Ihre Logdaten in einem Log-Bucket speichern und ein verknüpftes BigQuery-Dataset erstellen. Ein verknüpftes Dataset ist ein schreibgeschütztes Dataset, das wie jedes andere BigQuery-Dataset abgefragt werden kann.
- BigQuery-Dataset
- Wählen Sie dieses Ziel aus, wenn Sie Ihre Protokolldaten mit anderen Geschäftsdaten zusammenführen möchten. Für das angegebene Dataset muss Schreibzugriff aktiviert sein. Als Ziel einer Senke darf kein verknüpftes BigQuery-Dataset festgelegt werden. Verknüpfte Datensätze sind schreibgeschützt.
- Cloud Storage-Bucket
- Wählen Sie dieses Ziel aus, wenn Sie Ihre Protokolldaten langfristig speichern möchten. Der Cloud Storage-Bucket kann sich im selben Projekt wie die Protokolleinträge oder in einem anderen Projekt befinden. Logeinträge werden als JSON-Dateien gespeichert.
- Pub/Sub-Thema
- Wählen Sie dieses Ziel aus, wenn Sie Ihre Protokolldaten ausGoogle Cloud exportieren und dann Drittanbieterintegrationen wie Splunk oder Datadog verwenden möchten. Logeinträge werden in 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 Logeinträge an einen Log-Bucket in einem anderen Google Cloud Projekt weiterleiten, werden diese Logeinträge nicht von Error Reporting analysiert. Weitere Informationen finden Sie unter Fehlerberichte – Übersicht.
- Wenn Sie Logeinträge an ein BigQuery-Dataset weiterleiten, muss das BigQuery-Dataset für das Schreiben aktiviert sein. Sie können Logeinträge nicht an verknüpfte Datasets weiterleiten, die schreibgeschützt sind.
- Bei neuen Senken, die Logdaten an Cloud Storage-Buckets weiterleiten, kann es mehrere Stunden dauern, bis das Routing von Logeinträgen beginnt. Diese Sinks werden stündlich verarbeitet.
Wenn das Ziel eines Log-Sinks ein Google Cloud -Projekt ist, gelten die folgenden Einschränkungen:
- Es gilt ein Hop-Limit von einem.
- Logeinträge, die mit dem Filter der
_Required
-Log-Senke übereinstimmen, werden nur an den_Required
-Log-Bucket des Zielprojekts weitergeleitet, wenn sie aus dem Zielprojekt stammen. - Nur aggregierte Senken, die sich in der Ressourcenhierarchie eines Logeintrags befinden, verarbeiten den Logeintrag.
Angenommen, das Ziel einer Protokollsenke in Projekt
A
ist ProjektB
. Dann gilt Folgendes:- Aufgrund der Begrenzung auf einen Hop können die Log-Sinks in Projekt
B
keine Logeinträge an ein Google Cloud Projekt weiterleiten. - Im Log-Bucket
_Required
des ProjektsB
werden nur Logeinträge gespeichert, die aus dem ProjektB
stammen. In diesem Log-Bucket werden keine Logeinträge gespeichert, die aus anderen Ressourcen stammen, einschließlich derjenigen aus ProjektA
. - Wenn sich die Ressourcenhierarchie von Projekt
A
und ProjektB
unterscheidet, wird ein Logeintrag, der von einem Log-Sink in ProjektA
an ProjektB
weitergeleitet wird, nicht an die aggregierten Sinks in der Ressourcenhierarchie von ProjektB
gesendet. - Wenn Projekt
A
und ProjektB
dieselbe 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 Log-Router den Logeintrag an die Senken im ProjektA
.
Hinweise
In dieser Anleitung wird beschrieben, wie Sie Senken aufGoogle Cloud Projektebene erstellen und verwalten. Mit demselben Verfahren können Sie eine Sink erstellen, die Logeinträge weiterleitet, die aus einer Organisation, einem Ordner oder einem Abrechnungskonto stammen.
Gehen Sie dazu so vor:
-
Enable the Cloud Logging API.
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 das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen, Ändern oder Löschen eines Sinks 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 für die Zugriffssteuerung in Logging.
Sie haben eine Ressource in einem unterstützten Ziel oder die Erlaubnis, eine Ressource zu erstellen.
Wenn Sie Protokolleinträge an ein Ziel weiterleiten möchten, muss dieses Ziel vorhanden sein, bevor Sie die Senke erstellen. Sie können das Ziel in einem beliebigenGoogle Cloud -Projekt in einer beliebigen Organisation erstellen.
Lesen Sie sich die Einschränkungen für das Senkenziel durch, bevor Sie eine Senke erstellen. Weitere Informationen finden Sie in diesem Dokument im Abschnitt Einschränkungen für Ziele.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Weitere Informationen finden Sie in der Google Cloud Authentifizierungsdokumentation unter Für die Verwendung von REST authentifizieren.
Senke erstellen
In diesem Abschnitt wird beschrieben, wie Sie einen Sink in einem Google Cloud -Projekt erstellen. Sie können bis zu 200 Senken pro Google Cloud Projekt erstellen. Die Anzahl und das Volumen der gerouteten Logeinträge finden Sie in den
logging.googleapis.com/exports/
-Messwerten.Mit der Logging-Abfragesprache erstellen Sie einen Filterausdruck, der den Logeinträgen entspricht, die Sie aufnehmen möchten. Geben Sie keine vertraulichen Daten in Senkenfilter ein. Senkenfilter werden als Dienstdaten behandelt.
Wenn eine Abfrage mehrere Anweisungen enthält, können Sie entweder angeben, wie diese Anweisungen zusammengeführt werden, oder sich darauf verlassen, dass Cloud Logging die konjunktive Einschränkung
AND
zwischen den Anweisungen implizit hinzufügt. Angenommen, ein Abfrage- oder Filterdialogfeld enthält zwei Anweisungen,resource.type = "gce_instance"
undseverity >= "ERROR"
. Die tatsächliche Suchanfrage lautetresource.type = "gce_instance" AND severity >= "ERROR"
. Cloud Logging unterstützt sowohl disjunktive Einschränkungen,OR
, als auch konjunktive Einschränkungen,AND
. Wenn SieOR
-Anweisungen verwenden, sollten Sie die Klauseln in Klammern setzen.So erstellen Sie eine Senke:
Console
-
Rufen Sie in der Google Cloud Console die Seite Log 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-A
an einen Log-Bucket im ProjektProject-B
weiterleiten möchten, wählen SieProject-A
aus.Wählen Sie Senke erstellen aus.
Geben Sie im Bereich Senkendetails die folgenden Details ein:
Senkenname: Geben Sie eine Kennzeichnung für die Senke an. Beachten Sie, dass Sie die Senke nach deren Erstellung nicht mehr umbenennen, aber löschen und eine neue erstellen können.
Senkenbeschreibung (optional): Beschreiben Sie den Zweck oder den Anwendungsfall für die Senke.
Wählen Sie im Bereich Senkenziel über das Menü Senkendienst auswählen den Senkendienst und das Ziel aus. Sie haben folgende Möglichkeiten:
Wenn Sie Protokolleinträge an einen Dienst im selbenGoogle Cloud Projekt weiterleiten möchten, wählen Sie eine der folgenden Optionen aus:
- Cloud Logging-Bucket: Wählen Sie einen Logging-Bucket aus oder erstellen Sie einen.
- BigQuery-Dataset: Wählen Sie das beschreibbare Dataset aus, das die weitergeleiteten Logeinträge erhalten soll, oder erstellen Sie es. Sie können auch partitionierte Tabellen verwenden.
- Cloud Storage-Bucket: Wählen Sie den spezifischen Cloud Storage-Bucket aus, der die weitergeleiteten Logeinträge erhalten soll, oder erstellen Sie ihn.
- Pub/Sub-Thema: Wählen Sie das spezifische Thema aus, das die weitergeleiteten Logeinträge erhalten soll, oder erstellen Sie es.
- Splunk: Wählen Sie das Pub/Sub-Thema für den Splunk-Dienst aus.
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 vollqualifizierten Namen für das Ziel ein:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
So leiten Sie Logeinträge an einen Dienst in einem anderenGoogle Cloud -Projekt weiter:
- Wählen Sie Sonstige Ressource aus.
- Geben Sie den voll qualifizierten Namen für das Ziel ein. Informationen zur Syntax finden Sie unter Zielortpfadformate.
Geben Sie die Logeinträge an, die eingeschlossen werden sollen:
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 aufnehmen möchten. Weitere Informationen zur Syntax zum Erstellen von Filtern 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 Datenzugriffs-Logeinträge 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.
Wählen Sie Vorschau von Logs aus, um zu prüfen, ob Sie den richtigen Filter eingegeben haben. 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 Auswählen zum Filtern aus der Senke 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
sample
kö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 für die Senke die Berechtigung, Logeinträge an 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 create
aus.gcloud logging sinks create SINK_NAME SINK_DESTINATION
Bevor Sie den Befehl ausführen, ersetzen Sie die folgenden Werte:
- SINK_NAME: Der Name der Log-Senke. Sie können den Namen eines Sinks nach dem Erstellen nicht mehr ändern.
SINK_DESTINATION: Der Dienst oder das Projekt, an das Ihre Logeinträge weitergeleitet werden sollen. Legen Sie SINK_DESTINATION wie unter Zielpfadformate beschrieben auf den entsprechenden Pfad fest.
Wenn Ihr Senkenziel beispielsweise ein Pub/Sub-Thema ist, sieht SINK_DESTINATION so aus:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Sie können auch Folgendes angeben:
--log-filter
: Verwenden Sie diese Option, um einen Filter festzulegen, der den Logeinträgen entspricht, die Sie in die Senke aufnehmen möchten. Wenn Sie keinen Wert für den Einschlussfilter angeben, stimmt dieser Filter mit allen Logeinträgen überein.--exclusion
: Mit dieser Option können Sie einen Ausschlussfilter für Logeinträge festlegen, die nicht an die Senke weitergeleitet werden sollen. Mit der Funktionsample
kö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 den 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 der Kennzeichnung
"writerIdentity"
enthält, gewähren Sie dem Dienstkonto der Senke die Berechtigung zum Schreiben in das Senkenziel. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.Sie müssen keine Zielberechtigungen festlegen, wenn die Antwort keinen JSON-Schlüssel mit der Kennzeichnung
"writerIdentity"
enthält.
REST
Verwenden Sie
projects.sinks.create
in der Logging API, um eine Logging-Senke in Ihrem Google Cloud -Projekt zu erstellen. Geben Sie imLogSink
-Objekt die erforderlichen Werte im Methodenanfragetext an:name
: Geben Sie eine Kennzeichnung für die Senke an. Beachten Sie, dass Sie die Senke nach deren Erstellung nicht mehr umbenennen, jedoch löschen können. Sie können auch eine neue Senke erstellen.destination
: Der Dienst und das Ziel, an das 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 das Felddestination
wie unter Zilpfadformate beschrieben mit dem entsprechenden Pfad fest.Wenn Ihr Senkenziel beispielsweise ein Pub/Sub-Thema ist, sieht die
destination
so aus:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Geben Sie im
LogSink
-Objekt die entsprechenden optionalen Informationen an:filter
: Legen Sie das Feldfilter
so fest, dass es den Logeinträgen entspricht, die Sie in die 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 den Logeinträgen entspricht, die Sie von der Senke ausschließen möchten. Mit der Funktionsample
kö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 dieses Feld fest, um den Zweck oder den Anwendungsfall für die Senke zu beschreiben.
Rufen Sie
projects.sinks.create
auf, um die Senke zu erstellen.Wenn die API-Antwort einen JSON-Schlüssel mit der Kennzeichnung
"writerIdentity"
enthält, gewähren Sie dem Dienstkonto des Sinks die Berechtigung zum Schreiben in das Sink-Ziel. Weitere Informationen finden Sie unter Zielberechtigungen festlegen.Sie müssen keine Zielberechtigungen festlegen, wenn die API-Antwort keinen JSON-Schlüssel mit der Kennzeichnung
"writerIdentity"
enthält.
Weitere Informationen zum Erstellen von Senken mit der Logging API finden Sie in der
LogSink
-Referenz.Wenn Sie Fehlerbenachrichtigungen erhalten, lesen Sie die Informationen unter Fehlerbehebung bei Routing und Senken.
Zielpfadformate
Wenn Sie Protokolleinträge an einen Dienst in einem anderen Projekt weiterleiten, müssen Sie der Senke den vollständig qualifizierten Namen des Dienstes angeben. Wenn Sie Protokolleinträge an ein anderes Projekt weiterleiten, müssen Sie dem Sink den voll qualifizierten Namen des Zielprojekts angeben: Google Cloud
Cloud Logging-Log-Bucket:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Ein anderes Google Cloud -Projekt:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
BigQuery-Dataset:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Cloud Storage:
storage.googleapis.com/BUCKET_NAME
Pub/Sub-Thema:
pubsub.googleapis.com/projects/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 an das Ziel der Senke gewähren. Eine vollständige Liste der Logging-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung.
In Cloud Logging wird beim Erstellen eines Sinks ein freigegebenes Dienstkonto für eine Ressource erstellt, es sei denn, das erforderliche Dienstkonto existiert bereits. Das Dienstkonto ist möglicherweise vorhanden, weil dasselbe Dienstkonto für alle Senken in der zugrunde liegenden Ressource verwendet wird. Ressourcen können ein Google Cloud Projekt, eine Organisation, ein Ordner oder ein Rechnungskonto sein.
Die Identität des Autors eines Sinks ist die Kennung des Dienstkontos, das mit diesem Sink 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 der Logeintrag stammt. Für die letzte Konfiguration ist kein Dienstkonto erforderlich. Daher wird das Feld writer identity der Senke in der Console als
None
aufgeführt. Die API und die Google Cloud CLI-Befehle geben keine Identität des Autors an.Die folgende Anleitung gilt für Projekte, Ordner, Organisationen und Rechnungskonten:
Console
Sie benötigen die Berechtigung Inhaber für dasGoogle Cloud -Projekt, das das Ziel enthält. Wenn Sie nicht die Rolle Inhaber für das Ziel der Senke haben, bitten Sie einen Projektinhaber, die Identität des Autors als Hauptbenutzer hinzuzufügen.
So rufen Sie von der neuen Senke die Identität des Autors in Form einer E-Mail-Adresse ab:
-
Rufen Sie in der Google Cloud Console die Seite Log Router auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
- Wählen Sie in der Symbolleiste das Projekt aus, das den Abfluss 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
writerIdentity
eine E-Mail-Adresse enthält, fahren Sie mit dem nächsten Schritt fort. Wenn der WertNone
ist, 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 Identität des Autors der Senke angegeben ist, die Berechtigung zum Schreiben von Protokolldaten in das Ziel:
-
Rufen Sie in der Google Cloud -Console die Seite IAM auf:
Rufen Sie IAM auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM & Admin ist.
Achten Sie darauf, dass in der Symbolleiste das Projekt ausgewählt ist, in dem das Ziel gespeichert wird, oder das Ziel selbst. Wenn das Ziel beispielsweise ein Log-Bucket ist, muss in der Symbolleiste das Projekt angezeigt werden, in dem das Log-Bucket gespeichert ist.
Klicken Sie auf
Zugriff erlauben.Weisen Sie dem in der Identität des Autors der Senke angegebenen Hauptkonto eine IAM-Rolle zu, die auf dem Ziel der Protokollsenke basiert:
- Google Cloud project: Gewähren Sie die Rolle Logautor (
roles/logging.logWriter
). Insbesondere benötigt ein Hauptkonto die Berechtigunglogging.logEntries.route
. - Log-Bucket: Weisen Sie die Rolle Log-Bucket-Autor (
roles/logging.bucketWriter
) zu. - Cloud Storage-Bucket: Weisen Sie die Rolle Storage-Objekt-Ersteller (
roles/storage.objectCreator
) zu. - BigQuery-Dataset: Weisen Sie die Rolle BigQuery-Datenbearbeiter (
roles/bigquery.dataEditor
) zu. - Pub/Sub-Thema, einschließlich Splunk: Weisen Sie die Rolle Pub/Sub-Publisher (
roles/pubsub.publisher
) zu.
- Google Cloud project: Gewähren Sie die Rolle Logautor (
-
gcloud
Sie benötigen die Berechtigung Inhaber für dasGoogle Cloud -Projekt, das das Ziel enthält. Wenn Sie nicht die Rolle Inhaber für das Ziel der Senke haben, bitten Sie einen Projektinhaber, die Identität des Autors als Hauptbenutzer hinzuzufügen.
Rufen Sie das Dienstkonto aus dem Feld
writerIdentity
der Senke ab:gcloud logging sinks describe SINK_NAME
Suchen Sie die Senke, deren Berechtigungen Sie ändern möchten. Wenn die Senkeinträge eine Zeile mit
writerIdentity
enthalten, 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 Identität des Autors für das Dienstkonto sieht in etwa so aus:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
Gewähren Sie der Identität des Autors der Senke die Berechtigung, Protokolldaten in das Ziel zu schreiben, indem Sie den Befehl
gcloud projects add-iam-policy-binding
aufrufen.Bevor Sie den folgenden Befehl verwenden, nehmen Sie die folgenden Ersetzungen vor:
- PROJECT_ID: Die Kennung des Projekts. Geben Sie das Projekt an, in dem das Ziel der Logsenke gespeichert wird. Wenn das Ziel ein Projekt ist, geben Sie dieses Projekt an.
- PRINCIPAL: Eine Kennung für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Hauptkonto-Kennzeichnungen haben normalerweise das folgende Format:
PRINCIPAL-TYPE:ID
. Beispiel:user:my-user@example.com
Eine vollständige Liste der Formate fürPRINCIPAL
finden Sie unter Hauptkonto-IDs. ROLE: Eine IAM-Rolle. Weisen Sie der Identität des Autors der Senke eine IAM-Rolle zu, die auf dem Ziel der Protokollsenke basiert:
- Google Cloud project: Gewähren Sie die Rolle Logautor (
roles/logging.logWriter
). Insbesondere benötigt ein Hauptkonto die Berechtigunglogging.logEntries.route
. - Log-Bucket: Weisen Sie die Rolle Log-Bucket-Autor (
roles/logging.bucketWriter
) zu. - Cloud Storage-Bucket: Weisen Sie die Rolle Storage-Objekt-Ersteller (
roles/storage.objectCreator
) zu. - BigQuery-Dataset: Weisen Sie die Rolle BigQuery-Datenbearbeiter (
roles/bigquery.dataEditor
) zu. - Pub/Sub-Thema, einschließlich Splunk: Weisen Sie die Rolle Pub/Sub-Publisher (
roles/pubsub.publisher
) zu.
- Google Cloud project: Gewähren Sie die Rolle Logautor (
Führen Sie den Befehl
gcloud projects add-iam-policy-binding
aus: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.
Senken verwalten
Nachdem die Senken erstellt wurden, können Sie folgende Aktionen für sie ausführen. Es kann einige Minuten dauern, bis Änderungen an einem Sink angewendet werden:
- Details ansehen
- Aktualisieren
Deaktivieren
- Sie können die Senke
_Required
nicht deaktivieren. - Sie können die Senke
_Default
deaktivieren, um zu verhindern, dass Logeinträge an den Logging-Bucket_Default
weitergeleitet werden. - Wenn Sie die
_Default
-Senke für alle neuenGoogle Cloud -Projekte oderGoogle Cloud -Ordner deaktivieren möchten, die in Ihrer Organisation erstellt werden, können Sie Standardeinstellungen für Ressourcen konfigurieren.
- Sie können die Senke
Löschen
- Sie können die Senken
_Default
und_Required
nicht löschen. - Wenn Sie eine Senke löschen, werden keine Logeinträge mehr weitergeleitet.
- Wenn die Senke ein eigenes Dienstkonto hat, wird dieses Dienstkonto beim Löschen der Senke ebenfalls gelöscht. Für Sinks, die vor dem 22. Mai 2023 erstellt wurden, gibt es spezielle Dienstkonten. Auffangstellen, die am oder nach dem 22. Mai 2023 erstellt wurden, haben ein freigegebenes Dienstkonto. Durch das Löschen der Senke wird das freigegebene Dienstkonto nicht gelöscht.
- Sie können die Senken
Fehler beheben
- Volumen und Fehlerraten von Protokollen ansehen
In der folgenden Anleitung wird beschrieben, wie Sie eine Senke in einem Google Cloud Projekt verwalten. Anstelle eines Google Cloud Projekts können Sie ein Abrechnungskonto, einen Ordner oder eine Organisation angeben:
Console
-
Rufen Sie in der Google Cloud Console die Seite Log Router auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
Wählen Sie in der Symbolleiste die Ressource aus, die Ihren Datenablauf enthält. Die Ressource kann ein Projekt, ein Ordner, eine Organisation oder ein Abrechnungskonto sein.
Auf der Seite Log Router werden die Senken in der ausgewählten Ressource angezeigt. Jede Tabellenzeile enthält Informationen zu den Eigenschaften einer Senke:
- Aktiviert: Gibt an, ob der Status der Senke aktiviert oder deaktiviert ist.
- Typ: Der Zieldienst der Senke, beispielsweise
Cloud Logging bucket
. - Name: Die Kennung der Senke, wie sie beim Erstellen der Senke angegeben wurde, z. B.
_Default
. - Beschreibung: Die Beschreibung der Senke, wie sie beim Erstellen der Senke angegeben wurde.
- Ziel: Der vollständige Name des Ziels, an das die weitergeleiteten Logeinträge gesendet werden.
- Erstellt: Datum und Uhrzeit der Erstellung des Sinks.
- Zuletzt aktualisiert: Datum und Uhrzeit der letzten Bearbeitung des Sinks.
- Volume: Gibt das Gesamtvolumen der Logs an, die an die Logsenke weitergeleitet werden. Der Wert umfasst das Volumen, das an Log-Buckets, Projekte oder andere Ziele weitergeleitet wird.
Für jede Tabellenzeile bietet das Dreipunkt-Menü more_vert Weitere Aktionen die folgenden Optionen:
- Senkendetails ansehen: Zeigt den Namen, die Beschreibung, den Zieldienst, das Ziel, die Einschluss- und Ausschlussfilter der Senke an. Wenn Sie Bearbeiten auswählen, wird der Bereich Senke bearbeiten geöffnet.
- Senke bearbeiten: Öffnet das Fenster 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 Logeinträgen an das Ziel der Senke. Weitere Informationen zum Deaktivieren von Sinks finden Sie unter Speichern von Protokollen in Log-Buckets beenden.
- Senke aktivieren: Ermöglicht das Aktivieren einer deaktivierten Senke und den Neustart der Weiterleitung von Protokolleinträgen zum Ziel der Senke.
- Senke löschen: Ermöglicht das Löschen der Senke und das Beenden der Weiterleitung von Logeinträgen an das Ziel der Senke.
- Fehlerbehebung für die Senke: Öffnet den Log-Explorer, in dem Sie Fehler bei der Senke beheben können.
- Volumen und Fehlerraten des Senkenlogs ansehen: Der Metrics Explorer wird geöffnet, in dem Sie Daten aus der Senke ansehen und analysieren können.
Wenn Sie die Tabelle nach einer Spalte sortieren möchten, wählen Sie den Spaltennamen aus.
gcloud
Verwenden Sie den Befehl
gcloud logging sinks list
, um die Liste der Senken für Ihr Google Cloud Projekt aufzurufen, der der Logging API-Methodeprojects.sinks.list
entspricht:gcloud logging sinks list
Um die Liste der aggregierten Senken aufzurufen, verwenden Sie die entsprechende Option, um die Ressource anzugeben, die die Senke enthält. Wenn Sie beispielsweise die Senke auf Organisationsebene erstellt haben, verwenden Sie die Option
--organization=ORGANIZATION_ID
, um die Senken für die Organisation aufzulisten.Verwenden Sie zum Beschreiben einer Senke den Befehl
gcloud logging sinks describe
, der der Logging API-Methodeprojects.sinks.get
entspricht:gcloud logging sinks describe SINK_NAME
Verwenden Sie zum Aktualisieren einer Senke den Befehl
gcloud logging sinks update
, der der API-Methodeprojects.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 mit dem Namenmy-second-gcs-bucket
aktualisieren möchten, sieht der 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-Methodeprojects.sink.update
entspricht, und fügen Sie die Option--disabled
ein:gcloud logging sinks update SINK_NAME --disabled
Verwenden Sie zum erneuten Aktivieren der Senke den Befehl
gcloud logging sinks update
, entfernen Sie die Option--disabled
und fügen Sie die Option--no-disabled
ein:gcloud logging sinks update SINK_NAME --no-disabled
Verwenden Sie zum Löschen einer Senke den Befehl
gcloud logging sinks delete
, der der API-Methodeprojects.sinks.delete
entspricht:gcloud logging sinks delete SINK_NAME
Weitere Informationen zum Verwalten von Senken mit der Google Cloud CLI finden Sie in der Referenz zu
gcloud logging sinks
.
REST
Rufen Sie
projects.sinks.list
auf, um die Senken für Ihr Google Cloud -Projekt aufzurufen.Rufen Sie
projects.sinks.get
auf, um die Details 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.
Wenn Sie einen Abfluss deaktivieren möchten, setzen Sie das Feld
disabled
imLogSink
-Objekt auftrue
und rufen Sie dannprojects.sink.update
auf.Wenn Sie die Senke wieder aktivieren möchten, setzen Sie das Feld
disabled
imLogSink
-Objekt auffalse
und rufen Sie dannprojects.sink.update
auf.Wenn Sie einen Abfluss löschen möchten, rufen Sie
projects.sinks.delete
auf.Weitere Informationen zum Verwalten von Senken mit der Logging API finden Sie in der
LogSink
-Referenz.
Speichern von Logeinträgen in Log-Buckets beenden
Sie können den
_Default
-Sink und alle benutzerdefinierten Sinks deaktivieren. Wenn Sie eine Senke deaktivieren, werden keine Logeinträge mehr an das Ziel der Senke weitergeleitet. Wenn Sie beispielsweise die Senke_Default
deaktivieren, werden keine Logeinträge an den_Default
-Bucket weitergeleitet. Der_Default
-Bucket ist leer, wenn alle zuvor gespeicherten Logeinträge die Aufbewahrungsdauer des Buckets erfüllt haben.In der folgenden Anleitung wird beschrieben, wie Sie die Google Cloud -Projektsenken deaktivieren, die Logeinträge an die
_Default
-Log-Buckets weiterleiten:Console
-
Rufen Sie in der Google Cloud Console die Seite Log Router auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
- Filtern Sie die Senken nach Ziel und geben Sie
_Default
ein, um alle Senken zu ermitteln, die Logeinträge an den_Default
-Log-Bucket weiterleiten. Wählen Sie für jede Senke das Dreipunkt-Menü more_vert Menü und dann Senke deaktivieren aus.
Die Senken sind jetzt deaktiviert und Ihr Google Cloud -Projekt-Senken leiten keine Logeinträge mehr an den
_Default
-Bucket weiter.
Gehen Sie so vor, um eine deaktivierte Senke wieder zu aktivieren und die Weiterleitung der Protokolleinträge an das Ziel der Senke neu zu starten:
-
Rufen Sie in der Google Cloud Console die Seite Log Router auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
- Filtern Sie die Senken nach Ziel und geben Sie
_Default
ein, um alle Senken zu ermitteln, die Logeinträge an den_Default
-Log-Bucket weiterleiten. - Wählen Sie für jede Senke das Dreipunkt-Menü more_vert und dann Senke aktivieren aus.
gcloud
Verwenden Sie den Befehl
gcloud logging sinks list
, um die Liste der Senken für Ihr Google Cloud Projekt aufzurufen, der der Logging API-Methodeprojects.sinks.list
entspricht:gcloud logging sinks list
Identifizieren Sie alle Senken, die an den
_Default
-Log-Bucket weiterleiten. Verwenden Sie zum Beschreiben einer Senke, einschließlich des Zielnamens, den Befehlgcloud logging sinks describe
. Dies entspricht der Logging API-Methodeprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Führen Sie den Befehl
gcloud logging sinks update
aus und fügen Sie die Option--disabled
hinzu. Um die Senke_Default
zu deaktivieren, verwenden Sie beispielsweise den folgenden Befehl:gcloud logging sinks update _Default --disabled
Die Senke
_Default
ist jetzt deaktiviert. Sie leitet keine Logeinträge mehr an den_Default
-Log-Bucket weiter.
Wiederholen Sie die vorherigen Schritte, um die anderen Senken in Ihrem Google Cloud -Projekt zu deaktivieren, die an den
_Default
-Bucket weiterleiten.Verwenden Sie zum erneuten Aktivieren einer Senke den Befehl
gcloud logging sinks update
, entfernen Sie die Option--disabled
und fügen Sie die Option--no-disabled
ein:gcloud logging sinks update _Default --no-disabled
REST
Rufen Sie die Logging API-Methode
projects.sinks.list
auf, um die Senken für Ihr Google Cloud -Projekt aufzurufen.Identifizieren Sie alle Senken, die an den
_Default
-Bucket weiterleiten.Wenn Sie beispielsweise die Senke
_Default
deaktivieren möchten, setzen Sie das Felddisabled
imLogSink
-Objekt auftrue
und rufen Sie dannprojects.sink.update
auf.Die Senke
_Default
ist jetzt deaktiviert. Sie leitet keine Logeinträge mehr an den_Default
-Bucket weiter.
Wiederholen Sie die vorherigen Schritte, um die anderen Senken in Ihrem Google Cloud -Projekt zu deaktivieren, die an den
_Default
-Bucket weiterleiten.Wenn Sie eine Senke wieder aktivieren möchten, setzen Sie das Feld
disabled
imLogSink
-Objekt auffalse
und rufen Sie dannprojects.sink.update
auf.Codebeispiele
Informationen zum Verwenden von Clientbibliothekscode zum Konfigurieren von Senken in den von Ihnen ausgewählten Sprachen finden Sie unter Logging-Clientbibliotheken: Logsenken.
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 Einschluss- und Ausschlussfiltern nützlich sein können, finden Sie unter Beispielabfragen.
Senkenfilter
_Default
wiederherstellenWenn Sie den Filter für die Senke
_Default
bearbeitet haben, empfiehlt es sich, die ursprüngliche Konfiguration dieser Senke wiederherzustellen. Beim Erstellen wird die_Default
-Senke mit dem folgenden Einschlussfilter und einem leeren Ausschlussfilter 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 das GKE-System
logNames
auszuschließ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")
Verwenden Sie den Metrics Explorer, um das Volumen der in Log-Buckets gespeicherten Google Kubernetes Engine-Knoten-, Pod- und Container-Logeinträge aufzurufen:
- Volumen von Knotenprotokolleinträgen ansehen
- Volumen von Pod-Logeinträgen ansehen
- Volume des Container-Logeintrags ansehen
Dataflow-Logs, die nicht für Unterstützung erforderlich sind, ausschließen
Verwenden Sie den folgenden Filter, um Dataflow-Logeinträge auszuschließen, die nicht für den Support erforderlich sind:
resource.type="dataflow_step" labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"
Verwenden Sie den Metrics Explorer, um die Menge der in Log-Buckets gespeicherten Dataflow-Logs aufzurufen.
Support
In Cloud Logging können Sie zwar Logeinträge ausschließen und verhindern, dass sie in einem Log-Bucket gespeichert werden, doch sollten Sie Logeinträge beibehalten, die für den Support hilfreich sein. Anhand dieser Protokolleinträge können Probleme mit Ihren Anwendungen behoben und identifiziert werden.
GKE-Systemprotokolleinträge sind beispielsweise nützlich, um Probleme bei GKE-Anwendungen und -Clustern zu beheben, da sie für Ereignisse in Ihrem Cluster generiert werden. Anhand dieser Protokolleinträge können Sie feststellen, ob Ihr Anwendungscode oder der zugrunde liegende GKE-Cluster den Anwendungsfehler verursacht. GKE-Systemlogs umfasst auch Kubernetes-Audit-Logging, das von der Kubernetes API Server-Komponente generiert wird. Dazu gehören Änderungen, die mit dem kubectl-Befehl und Kubernetes-Ereignissen vorgenommen wurden.
Für Dataflow empfehlen wir Ihnen, mindestens Ihre Systemlogs (
labels."dataflow.googleapis.com/log_type"="system"
) und Ihre Supportlogs (labels."dataflow.googleapis.com/log_type"="supportability"
) in Log-Buckets zu schreiben. Diese Logs sind wichtig, damit Entwickler ihre Dataflow-Pipelines beobachten und Fehler beheben können und Nutzer können möglicherweise nicht die Dataflow-Seite Jobdetails verwenden, um Joblogs ansehen andernfalls.Nächste Schritte
Wenn bei der Weiterleitung von Protokolleinträgen über Senken Probleme auftreten, lesen Sie Fehlerbehebung bei der Weiterleitung von Protokollen.
Informationen zum Aufrufen von Logeinträgen in ihren Zielen sowie zum Formatieren und Organisieren der Logs finden Sie unter Logs in Senkenzielen ansehen.
Weitere Informationen zum Abfragen und Filtern mit der Logging-Abfragesprache finden Sie unter Logging-Abfragesprache.
-