Mit Cloud Logging können Sie Logeinträge von Google Cloud -Diensten, Ihren Anwendungen und anderen Cloud-Anbietern an Ziele für die Speicherung, Analyse und den Export an Drittanbieter weiterleiten.
Standardmäßig leitet Cloud Logging alle Logeinträge an Log-Buckets im Projekt, Ordner oder in der Organisation weiter, in dem bzw. der sie erstellt wurden. Sie können jedoch Logsenken konfigurieren, um Logdaten an benutzerdefinierte Buckets oder Pub/Sub weiterzuleiten. Pub/Sub unterstützt den Export Ihrer Daten in Drittanbietertools.
Logeinträge weiterleiten oder exportieren
Routing ist der Prozess, bei dem Logeinträge, die von einem Projekt, einem Ordner oder einer Organisation in Google Cloud empfangen werden, an ein Ziel verschoben werden. Ein Ziel ist ein Dienst, der empfangene Logeinträge verarbeitet und eine Aktion ausführt. Sie können Logeinträge beispielsweise an einen Log-Bucket weiterleiten. Dieses Ziel scannt die Logeinträge auf Fehlerinformationen und schreibt sie dann in den Speicher.
Beim Exportieren werden Logeinträge von Google Cloud an einen externen Speicherort verschoben. Sie können Logeinträge beispielsweise an Pub/Sub weiterleiten und dann in Drittanbietertools exportieren.
Cloud Logging verwendet Logsenken, um Logeinträge an Ziele weiterzuleiten. Standardmäßig werden Ihre Logeinträge an einen von zwei Log-Buckets in IhremGoogle Cloud -Projekt, -Ordner oder Ihrer -Organisation weitergeleitet. Sie können Logsenken erstellen, um Ihre Logdaten an andere Ziele weiterzuleiten. Sie können auch eine der vom System erstellten Logsenken ändern. In diesem Dokument werden diese Optionen beschrieben.
Mit dem Log-Explorer können Sie Logeinträge, die in Log-Buckets gespeichert sind, in den lokalen Speicher herunterladen. Die Downloadoption ist jedoch auf 10.000 Logeinträge beschränkt. Wenn Sie Ihre Logeinträge ausGoogle Cloudexportieren möchten, konfigurieren Sie eine Logsenke, um eingehende Logeinträge an Pub/Sub weiterzuleiten, und exportieren Sie diese Daten dann aus Google Cloud.
Informationen zu Logroutern
Jedes Google Cloud Projekt, Rechnungskonto, jeder Ordner und jede Organisation hat einen Log-Router, der den Fluss von Logeinträgen über Senken auf Ressourcenebene verwaltet. Ein Logrouter verwaltet auch den Fluss eines Logeintrags durch Senken, die sich in der Ressourcenhierarchie des Eintrags befinden. Senken steuern, wie Logeinträge an Ziele weitergeleitet werden.
Ein Logrouter speichert einen Logeintrag vorübergehend. Dieses Verhalten schützt vor vorübergehenden Störungen und Ausfällen, die auftreten können, wenn ein Logeintrag durch Senken fließt. Temporärer Speicher schützt nicht vor Konfigurationsfehlern.
Der temporäre Speicher eines Logrouters unterscheidet sich vom längerfristigen Speicher, der von Logging-Buckets bereitgestellt wird.
Eingehende Logeinträge mit Zeitstempeln, die mehr als die Aufbewahrungsdauer für Logs in der Vergangenheit liegen oder die mehr als 24 Stunden in der Zukunft liegen, werden verworfen.
Logsenken
Wenn eine Logsenke einen Logeintrag empfängt, wird entschieden, ob der Logeintrag ignoriert oder an das Ziel der Senke weitergeleitet werden soll. Die Logsenke vergleicht den Logeintrag mit ihren Filtern, um diese Entscheidung zu treffen. Das Ziel einer Senke kann ein Projekt, ein Speicherort oder ein Dienst wie Pub/Sub sein. Eine Senke kann beispielsweise Logeinträge an einen Log-Bucket weiterleiten.
Logsenken gehören zu einer bestimmten Google Cloud -Ressource: Google Cloud Projekte, Rechnungskonten, Ordner und Organisationen. Diese Ressourcen enthalten auch mehrere Logsenken. Wenn eine Ressource einen Logeintrag empfängt, wird er von jeder Logsenke in dieser Ressource unabhängig ausgewertet. Daher können mehrere Logsenken denselben Logeintrag weiterleiten.
Standardmäßig werden Logdaten in dem Projekt gespeichert, aus dem die Daten stammen. Es gibt jedoch mehrere Gründe, warum Sie diese Konfiguration ändern möchten:
- Zum Zentralisieren der Speicherung Ihrer Logdaten.
- Logdaten mit anderen Geschäftsdaten zusammenführen
- Um Ihre Logdaten so zu organisieren, dass sie für Sie nützlich sind.
- Sie können Ihre Logs an andere Anwendungen, Repositories oder Dritte senden. Beispielsweise können Sie Ihre Logs aus Google Cloud exportieren, um sie auf einer Drittanbieterplattform anzusehen. Wenn Sie Ihre Logeinträge exportieren möchten, erstellen Sie eine Logsenke, die Ihre Logeinträge an Pub/Sub weiterleitet.
Eine falsch konfigurierte Logsenke leitet keine Logeinträge weiter. Wenn eine Senke falsch konfiguriert ist, werden Logeinträge mit den Details des Fehlers geschrieben. Außerdem wird eine E‑Mail an die wichtigen Kontakte für die Ressource gesendet. Weitere Informationen finden Sie unter Fehlerbehebung: Fehler ansehen.
Logsenken können Logeinträge nicht rückwirkend weiterleiten. Das bedeutet, dass eine Logsenke keinen Logeintrag weiterleiten kann, der vor dem Erstellen der Senke empfangen wurde. Wenn eine Senke falsch konfiguriert ist, leitet sie nur Logeinträge weiter, die nach der Behebung des Konfigurationsfehlers eingehen.
Unterstützung für Organisationen und Ordner
So können Sie die Logdaten in einer Organisation oder einem Ordner verwalten:
Sie können aggregierte Senken erstellen, die Logeinträge für eine Organisation oder einen Ordner und deren untergeordnete Elemente an das von der Senke angegebene Ziel weiterleiten. Es gibt zwei Arten von aggregierten Senken:
- Nicht abfangende aggregierte Senken
- Abfangende aggregierte Senken
Abfangende Senken können das Routingverhalten für Ressourcen weiter unten in der Hierarchie überschreiben. Nicht abfangende Senken wirken sich nicht auf das Routing für andere Ressourcen aus. Wenn eine abfangende Senke in einer Ressource mit einem Logeintrag übereinstimmt, wird der Logeintrag nicht an die Senken in untergeordneten Ressourcen gesendet. Eine Ausnahme ist, dass der Logeintrag immer an die
_Required-Logsenke in der Ressource gesendet wird, aus der der Logeintrag stammt.Sie können Standardressourceneinstellungen für Cloud Logging konfigurieren, um die Konfiguration der vom System erstellten
_Default-Senke für neue Ressourcen in einer Organisation oder einem Ordner festzulegen. Sie können diese Einstellungen beispielsweise verwenden, um die Senke_Defaultzu deaktivieren oder die Filter in dieser Senke anzugeben.
Routing-Beispiele
In diesem Abschnitt wird veranschaulicht, wie ein Logeintrag, der aus einem Projekt stammt, durch die Senken in seiner Ressourcenhierarchie fließen kann.
Beispiel: Es sind keine aggregierten Senken vorhanden
Wenn in der Ressourcenhierarchie des Logeintrags keine aggregierten Senken vorhanden sind, wird der Logeintrag an die Logsenken im Projekt gesendet, aus dem der Logeintrag stammt. Eine Senke auf Projektebene leitet den Logeintrag an das Ziel der Senke weiter, wenn der Logeintrag mit dem „Einschließen“-Filter der Senke, aber nicht mit den „Ausschließen“-Filtern der Senke übereinstimmt.
Beispiel: Es ist eine nicht abfangende aggregierte Senke vorhanden
Angenommen, in der Ressourcenhierarchie für einen Logeintrag ist eine nicht abfangende aggregierte Senke vorhanden. Nachdem der Logrouter den Logeintrag an die nicht abfangende aggregierte Senke gesendet hat, geschieht Folgendes:
Die nicht abfangende aggregierte Senke leitet den Logeintrag an das Ziel der Senke weiter, wenn der Logeintrag mit dem „Einschließen“-Filter, aber nicht mit einem „Ausschließen“-Filter übereinstimmt.
Der Logrouter sendet den Logeintrag an die Logsenken im Projekt, aus dem der Logeintrag stammt.
Eine Senke auf Projektebene leitet den Logeintrag an das Ziel der Senke weiter, wenn der Logeintrag mit dem „Einschließen“-Filter der Senke, aber nicht mit den „Ausschließen“-Filtern der Senke übereinstimmt.
Beispiel: Eine abfangende aggregierte Senke ist vorhanden
Angenommen, in der Ressourcenhierarchie für einen Logeintrag ist eine abfangende aggregierte Senke vorhanden. Nachdem der Logrouter den Logeintrag an die abfangende aggregierte Senke gesendet hat, geschieht Folgendes:
Der Logeintrag entspricht dem „Einschließen“-Filter, aber keinem „Ausschließen“-Filter:
- Der Logeintrag wird an das Ziel der abfangenden aggregierten Senke weitergeleitet.
- Der Logeintrag wird an die Senke
_Requiredin dem Projekt gesendet, aus dem der Logeintrag stammt.
Der Logeintrag entspricht nicht dem „Einschließen“-Filter oder entspricht mindestens einem „Ausschließen“-Filter:
- Der Logeintrag wird nicht von der abfangenden aggregierten Senke weitergeleitet.
Der Logrouter sendet den Logeintrag an die Logsenken im Projekt, aus dem der Logeintrag stammt.
Eine Senke auf Projektebene leitet den Logeintrag an das Ziel der Senke weiter, wenn der Logeintrag mit dem „Einschließen“-Filter der Senke, aber nicht mit den „Ausschließen“-Filtern der Senke übereinstimmt.
Logsenkenfilter
Jede Logsenke enthält einen Einschlussfilter und kann mehrere Ausschlussfilter enthalten. Diese Filter bestimmen, ob die Logsenke einen Logeintrag an das Ziel der Senke weiterleitet. Wenn Sie keine Filter angeben, wird jeder Logeintrag an das Ziel der Senke weitergeleitet.
Ein Logeintrag wird von einer Logsenke anhand der folgenden Regeln weitergeleitet:
Wenn der Logeintrag nicht mit dem Einschlussfilter übereinstimmt, wird er nicht weitergeleitet. Wenn für eine Senke kein Einschlussfilter angegeben ist, entspricht jeder Logeintrag diesem Filter.
Wenn der Logeintrag mit dem „Einschließen“-Filter und mindestens einem „Ausschließen“-Filter übereinstimmt, wird er nicht weitergeleitet.
Wenn der Logeintrag mit dem „Einschließen“-Filter übereinstimmt und mit keinem „Ausschließen“-Filter übereinstimmt, wird er an das Ziel der Senke weitergeleitet.
Die Filter in einer Logsenke werden mit der Logging-Abfragesprache angegeben.
Sie können „Ausschließen“-Filter nicht verwenden, um den Verbrauch Ihres entries.write-API-Kontingents oder die Anzahl der entries.write-API-Aufrufe zu reduzieren. Ausschlussfilter werden angewendet, nachdem Logeinträge von der Logging API empfangen wurden.
Vom System erstellte Logsenken
Für jedes Google Cloud Projekt, Rechnungskonto, jeden Ordner und jede Organisation erstellt Cloud Logging zwei Logsenken, eine mit dem Namen _Required und die andere mit dem Namen _Default. Die Einschluss- und Ausschlussfilter für diese Senken sorgen dafür, dass jeder Logeintrag, der aus der Ressource stammt, von einer dieser Senken weitergeleitet wird. Beide Senken leiten Logdaten an einen Log-Bucket weiter, der sich in derselben Ressource wie die Logsenke befindet.
Der Rest dieses Abschnitts enthält Informationen zu den Filtern und Zielen der vom System erstellten Logsenken.
_Required-Logsenke
Die Logsenke _Required in einer Ressource leitet eine Teilmenge der Audit-Logs an den Log-Bucket _Required der Ressource weiter.
Für diese Senke sind keine Ausschlussfilter angegeben. Der Einschlussfilter sieht so aus:
LOG_ID("cloudaudit.googleapis.com/activity") OR
LOG_ID("externalaudit.googleapis.com/activity") OR
LOG_ID("cloudaudit.googleapis.com/system_event") OR
LOG_ID("externalaudit.googleapis.com/system_event") OR
LOG_ID("cloudaudit.googleapis.com/access_transparency") OR
LOG_ID("externalaudit.googleapis.com/access_transparency")
Die Logsenke _Required stimmt nur mit Logeinträgen überein, die aus der Ressource stammen, in der die Logsenke _Required definiert ist. Angenommen, eine Logsenke leitet einen Aktivitätsprotokoll-Logeintrag von Projekt A an Projekt B weiter.
Da der Logeintrag nicht aus dem Projekt B stammt, leitet die Logsenke _Required im Projekt B diesen Logeintrag nicht an den Log-Bucket _Required weiter.
Sie können die Logsenke _Required nicht ändern oder löschen.
_Default-Logsenke
Die Logsenke _Default in einer Ressource leitet Logeinträge an den Log-Bucket _Default der Ressource weiter.
Da der „Einschließen“-Filter für diese Senke leer ist, werden alle Logeinträge berücksichtigt. Der „Ausschließen“-Filter ist jedoch so 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")
Sie können die Logsenke _Default ändern und deaktivieren. Sie können beispielsweise die Logsenke _Default bearbeiten und das Ziel ändern. Sie können auch vorhandene Filter ändern und Ausschlussfilter hinzufügen.
Senkenziele
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.
Best Practices
Verwalten Sie Ihre Logsenken, wenn Sie Ihren Logspeicher verwalten. Wenn Sie beispielsweise das Ziel einer Logsenke löschen, löschen Sie auch die entsprechende Logsenke.
Best Practices für die Verwendung von Routing für die Data Governance oder für gängige Anwendungsfälle finden Sie in den folgenden Dokumenten:
Beispiele: Logspeicher zentralisieren
In diesem Abschnitt wird beschrieben, wie Sie einen zentralen Speicher konfigurieren können. Der zentralisierte Speicher bietet einen zentralen Ort zum Abfragen von Logdaten. Dadurch werden Ihre Abfragen vereinfacht, wenn Sie nach Trends suchen oder Probleme untersuchen. Aus Sicherheitsperspektive haben Sie auch nur einen Speicherort, was die Aufgaben Ihrer Sicherheitsanalysten vereinfachen kann.
Wenn Sie Ihren Logspeicher zentralisieren, sollten Sie überlegen, ob Sie eine Sperre für das Projekt einrichten, in dem Ihre Logdaten gespeichert werden. Eine Sperre kann das versehentliche Löschen eines Projekts verhindern. Weitere Informationen finden Sie unter Projekte mit Sperren schützen.
Logspeicher für Projekte in einem Ordner zentralisieren
Angenommen, Sie verwalten einen Ordner und möchten die Speicherung Ihrer Logeinträge zentralisieren. Für diesen Anwendungsfall können Sie Folgendes tun:
- In Ihrem Ordner erstellen Sie ein Projekt mit dem Namen
CentralStorage. - Erstellen Sie eine abfangende aggregierte Senke für Ihren Ordner und konfigurieren Sie sie so, dass alle Logeinträge weitergeleitet werden. Sie legen das Ziel der Senke auf das Projekt
CentralStoragefest.
Wenn ein Logeintrag eingeht, der aus dem Ordner oder einer seiner untergeordneten Ressourcen stammt, wird er an die von Ihnen erstellte abfangende aggregierte Senke gesendet. Diese Senke leitet Logeinträge an das Projekt CentralStorage weiter. Die Logsenken in diesem Projekt verarbeiten die Logeinträge:
Die Logsenke
_Defaultleitet alle Logeinträge, die dem Filter der Senke entsprechen, an den Log-Bucket_Defaultweiter. Dieser Log-Bucket ist Ihr zentraler Speicherort.Die Logsenke
_Requiredleitet die Logeinträge, die den Filtern der Senke entsprechen und aus dem ProjektCentralStoragestammen, an den Log-Bucket_Requiredweiter. Dieser Log-Bucket ist kein zentraler Speicherort. Sie können jedoch alle Ihre Logdaten zentral speichern. Ein Beispiel finden Sie unter Audit-Logs an einem zentralen Ort speichern.
Nachdem die Verarbeitung der aggregierten Senke abgeschlossen ist, wird der Logeintrag an die _Required-Logsenke in der Ressource gesendet, aus der der Logeintrag stammt. Wenn der Logeintrag mit dem Filter in der Logsenke _Required übereinstimmt, wird er an den Log-Bucket _Required der Ressource weitergeleitet. Daher werden in jedem Google Cloud -Projekt in Ihrem Ordner Logeinträge im Log-Bucket _Required gespeichert.
Zentralisiertes Logging für eine Reihe von Projekten
Sie können Logeinträge auch an einem einzigen Ort speichern, wenn Sie keine Organisation oder keinen Ordner haben. Sie könnten beispielsweise Folgendes tun:
- Erstellen Sie ein Projekt mit dem Namen
CentralStorage. - Für jedes Projekt außer
CentralStoragebearbeiten Sie die Logsenke_Defaultund legen das Projekt mit dem NamenCentralStorageals Ziel fest.
Sie fragen sich vielleicht, warum im vorherigen Beispiel das Ziel der _Default-Logsenken auf ein Projekt und nicht auf den _Default-Log-Bucket in diesem Projekt festgelegt wird. Die Hauptgründe sind Einfachheit und Konsistenz.
Wenn Sie Logeinträge an ein Projekt weiterleiten, wird über die Logsenken im Zielprojekt gesteuert, welche Logeinträge gespeichert werden und wo sie gespeichert werden.
Das bedeutet, dass Sie die Filter- und Zielfunktionen zentralisieren. Wenn Sie ändern möchten, welche Logeinträge wo gespeichert werden, müssen Sie nur die Logsenken in einem Projekt ändern.
Logspeicher für Audit-Logs zentralisieren
Sie können Logeinträge, die mit der Logsenke _Required übereinstimmen, zentral speichern. Führen Sie einen der folgenden Schritte aus, um diese Logeinträge zentral zu speichern:
Erstellen Sie Logsenken, die Logeinträge, die der Logsenke
_Requiredentsprechen, an einen zentralen Log-Bucket weiterleiten.Konfigurieren Sie Logsenken wie in den vorherigen beiden Beispielen und fügen Sie dann im Zielprojekt eine Logsenke hinzu, die Logeinträge, die der Logsenke
_Requiredentsprechen, an einen Log-Bucket weiterleitet. Sie können die Filter auch in der Logsenke_Defaultbearbeiten.
Bevor Sie eine solche Strategie implementieren, sollten Sie sich die Preisrichtlinien ansehen.
Nächste Schritte
Informationen zum Weiterleiten und Speichern von Cloud Logging-Daten finden Sie in den folgenden Dokumenten:
Informationen zum Erstellen von Senken, um Logeinträge an unterstützte Ziele weiterzuleiten, finden Sie unter Logs an unterstützte Ziele weiterleiten.
Informationen zum Erstellen aggregierter Senken, mit denen Logeinträge aus den Ressourcen in Ordnern oder Organisationen weitergeleitet werden können, finden Sie unter Übersicht über aggregierte Senken.
Informationen zum Format weitergeleiteter Logeinträge und zur Organisation der Logs in Zielen finden Sie in den folgenden Dokumenten: