Wenn Sie mithilfe von Aktivitätslogs Administratoraktivitäten und Systemereignisse von Compute Engine ansehen können, lesen Sie diesen Leitfaden. Hier erfahren Sie, wie Sie mithilfe von Audit-Logs nach ähnlichen Logeinträgen suchen. , um die Option zu aktivieren.
Compute Engine-Aktivitätslogs sind veraltet. Sie können Aktivitätslogeinträge anhand ihres Lognamens identifizieren:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Compute Engine-Audit-Logs enthalten dieselben Informationen wie die Aktivitätslogs. In Audit-Logs werden die Informationen im Vergleich zu Aktivitätslogs jedoch anders dargestellt. Sie müssen also Ihre Abfragen anpassen.
Informationen zur Migration von Aktivitätslogs zu Audit-Logs
Wenn Sie Audit-Logs anstelle von Aktivitätslogs verwenden möchten, müssen Sie Ihre Abfragenanpassen. Gehen Sie dazu so vor:
Suchen Sie Ihre alten Abfragen. Sie haben sie unter Umständen in einer gespeicherten Suche im Log-Explorer gespeichert oder ein Skript mithilfe der API oder des SDK erstellt. Weitere Informationen dazu, wie Sie Ihre Ressourcen beobachten können, finden Sie im Dokument Logging.
Ersetzen Sie die Felder des Aktivitätslogs durch die entsprechenden Audit-Logfelder. In der Tabelle sehen Sie, wie die Felder verknüpft sind.
Wenn beispielsweise in der Abfrage des Legacy-Aktivitätslogs nach einem Feld mit dem Namen
jsonPayload.resource.name
gesucht wurde, sollte in der Abfrage des neuen Audit-Logs stattdessen nachprotoPayload.resourceName
gesucht werden.Speichern und verwenden Sie die Abfrage des neuen Audit-Logs. Beispielsweise können Sie in Cloud Logging eine gespeicherte Suchanfrage erstellen oder Ihre Skripts aktualisieren.
Beispiele
Hier einige Beispiele für konvertierte Abfragen:
Aktivität für eine bestimmte Ressource abfragen
Beispielabfrage | |
---|---|
Legacy-Aktivitätslog | gcloud logging read jsonPayload.resource.name="VM_NAME"
|
Audit-Log | Verwenden Sie eine der folgenden Optionen:
Bei Option 1 stimmt der Operator "has" ( |
Neueste Einträge aus dem Administratoraktivitätslog abfragen
Beispielabfrage | |
---|---|
Legacy-Aktivitätslog | gcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
|
Audit-Log | gcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" |
Neueste Logeinträge über das Erstellen von Instanzen abfragen
Beispielabfrage | |
---|---|
Legacy-Aktivitätslog | gcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' |
Audit-Log | gcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' |
Abfrage für den Beginn aller Instanzerstellungsvorgänge
Beispielabfrage | |
---|---|
Legacy-Aktivitätslog | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' |
Audit-Log | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' |
Abfrage für den Abschluss eines beliebigen Vorgangs
Beispielabfrage | |
---|---|
Legacy-Aktivitätslog | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" |
Audit-Log | gcloud logging read operation.last="true" |
Unterschiede zwischen Aktivitätslogs und Audit-Logs
In diesem Abschnitt erfahren Sie, wie sich die Struktur von Audit-Logs von der von Aktivitätslogs unterscheidet. Beachten Sie diese Unterschiede, wenn Sie Abfragen des Legacy-Aktivitätslogs in Abfragen des Audit-Logs umwandeln. Ersetzen Sie beispielsweise in Ihren Abfragen alle Feldnamen des Legacy-Aktivitätslogs durch die entsprechenden Feldnamen des Audit-Logs.
Zwar geben Audit-Logs und Aktivitätslogs jeweils Logeintragsobjekte zurück, unterscheiden sich jedoch in folgenden Punkten:
- Verschiedene Feldnamen Weitere Informationen finden Sie in der Tabelle Antwortfeldnamen.
- Verschiedene Feldwerte, einschließlich:
- Unterschiedliche Lognamen: Audit-Logs haben Lognamen, die
cloudaudit.googleapis.com
enthalten. - Unterschiedliche Nutzlasten: Audit-Logs geben statt
jsonPayload
einprotoPayload
-Feld zurück. - Vollständig qualifizierte Ressourcennamen: Audit-Logs geben Ressourcennamen zurück, die ihren Pfad enthalten, z. B.
projects/my-project/zones/us-east1-b/instances/my-instance-name
. - Versionierte Methodennamen: Audit-Logs geben Methodennamen zurück, die ihre Version enthalten, z. B.
v1
.
- Unterschiedliche Lognamen: Audit-Logs haben Lognamen, die
Das folgende Beispiel zeigt die Unterschiede bei Lognamen und Nutzlasten:
Beispiel-Logeintrag | |
---|---|
Legacy-Aktivitätslog | { insertId: "1x3bbhjg2wwvz1x" jsonPayload: { event_subtype: "compute.instances.stop" ... resource: { id: "12345678900123456789" name: "my-instance-name" type: "instance" zone: "us-east1-b" } ... } labels: {…} logName: "projects/my-project/logs/compute.googleapis.com%2Factivity_log" receiveTimestamp: "2019-08-26T12:22:44.602794616Z" ... } |
Audit-Log | { insertId: "-w6o499e22fwk" logName: "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity" protoPayload: { ... methodName: "beta.compute.instances.stop" ... resourceName: "projects/my-project/zones/us-east1-b/instances/my-instance-name" } receiveTimestamp: "2019-08-26T12:22:46.881198276Z" ... } |
Felder aus Aktivitätslogs zu Audit-Logs zuordnen
Anhand der folgenden Tabellen können Sie in Ihren Abfragen den entsprechenden Audit-Logfeldern die Felder des Aktivitätslogs zuordnen.
Felder
Verwenden Sie die folgende Tabelle, um in den aktualisierten Abfragen die Felder der Legacy-Aktivitäts-Logs durch Audit-Log-Felder zu ersetzen.
Beispiel: In Ihrer Abfrage des alten Aktivitätslogs war ein auf jsonPayload.resource.type
basierender Filter enthalten. Dann sollte in der Abfrage des neuen Audit-Logs stattdessen auf resource.type
gefiltert werden.
Legacy-Aktivitäts-Log-Feld | Audit-Log-Feld |
---|---|
insertId |
insertId |
jsonPayload.actor.user |
protoPayload.authenticationInfo.principalEmail |
jsonPayload.event_subtype |
protoPayload.methodName |
jsonPayload.event_timestamp_us |
timestamp |
jsonPayload.event_type="GCE_API_CALL" |
operation.first="true" |
jsonPayload.event_type="GCE_OPERATION_DONE" |
operation.last="true" |
jsonPayload.request |
protoPayload.request |
jsonPayload.operation |
operation |
jsonPayload.resource.id |
resource.labels.instance_id |
jsonPayload.resource.name |
protoPayload.resourceName |
jsonPayload.resource.type |
resource.type |
jsonPayload.resource.zone |
resource.labels.zone |
jsonPayload.trace_id |
operation.id |
jsonPayload.user_agent |
protoPayload.requestMetadata.callerSuppliedUserAgent |
labels.compute.googleapis.com/resource_id |
resource.labels.[RESOURCE_TYPE]_id |
labels.compute.googleapis.com/resource_name |
protoPayload.resourceName |
labels.compute.googleapis.com/resource_type |
resource.type |
labels.compute.googleapis.com/resource_zone |
Eine der folgenden Möglichkeiten:
|
logName |
logName |
receiveTimestamp |
receiveTimestamp |
resource.labels |
resource.labels |
severity |
severity |
timestamp |
timestamp |
Feldwerte
Anhand der folgenden Tabelle können Sie die Feldwerte des Legacy-Aktivitätslogs den Feldwerten des Audit-Logs zuordnen. Im Vergleich zu Aktivitätslogs haben Audit-Logs mehrere Werte für Lognamen und unterschiedliche Nutzlastwerte. Audit-Logeinträge geben außerdem vollständig qualifizierte Ressourcennamen und versionierte Methodennamen zurück.
Lognamen
Wenn Sie einen Audit-Logeintrag finden möchten, suchen Sie nach einem logName
, der cloudaudit.googleapis.com
enthält.
Logname | Loginhalte | |
---|---|---|
Legacy-Aktivitätslog | projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log | Administratoraktivitäten und Systemereignisse |
Audit-Log | projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity | Administratoraktivität |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event | Systemereignisse | |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access | Datenzugriff |
Nutzlasten
Suchen Sie in jedem Audit-Logeintrag nach einem protoPayload
statt einem jsonPayload
.
Nutzlasttyp | Beispiel für eine Nutzlast | |
---|---|---|
Legacy-Aktivitätslog | jsonPayload | jsonPayload: { actor: {…} event_subtype: "compute.instances.start" event_timestamp_us: "1566404493487248" event_type: "GCE_API_CALL" ip_address: "" operation: {…} request: {…} resource: {…} trace_id: "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772" user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" version: "1.2" } |
Audit-Log | protoPayload | protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog" authenticationInfo: {…} methodName: "v1.compute.instances.start" request: {…} requestMetadata: {…} resourceName: "projects/my-project/zones/us-central1-a/instances/alert" serviceName: "compute.googleapis.com" } |
Im Abschnitt Logeintragsfelder zuordnen erfahren Sie, in welcher Beziehung diese Nutzlasten zueinander stehen und wie Sie Audit-Logfelder den Feldern des alten Aktivitätslogs zuordnen können.
Ressourcennamen
In Audit-Logs sind API-Ressourcennamen (im Feld protoPayload.resourceName
) vollständig qualifiziert. Beispiel:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Sie können weiterhin Teile von Namen verwenden, aber Sie müssen Ihre Abfrage so anpassen, dass der Operator "has" (:
) anstelle des Operators "equals" verwendet wird.
Verwenden Sie eine der folgenden Optionen in Ihren Abfragen des Audit-Logs, um nach einer bestimmten Ressource zu filtern:
gcloud logging read protoPayload.resourceName:"VM_NAME"
gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Methodennamen
In Audit-Logs wird den Namen der API-Methoden (im Feld protoPayload.methodName
) die jeweilige Version als Präfix-Angabe vorangestellt, z. B.: v1.compute.instances.delete
.
Feld | Wert | Beispielabfrage | |
---|---|---|---|
Legacy-Aktivitätslog | jsonPayload.event_subtype | RESOURCE.METHOD | jsonPayload.event_subtype=compute.instances.delete |
Audit-Log | protoPayload.methodName | API_VERSION.RESOURCE.METHOD | protoPayload.methodName=v1.compute.instances.delete oder protoPayload.methodName=beta.compute.instances.delete oder protoPayload.methodName:compute.instances.delete |
Sie können in Ihren Abfragen des Audit-Logs weiterhin nicht-versionierte Methodennamen verwenden, müssen jedoch Ihre Abfrage so korrigieren, dass der Operator "has" (:
) anstelle des Operators "equals" (=
) verwendet wird. Beispiel: Mit protoPayload.methodName:compute.instances.delete
werden alle API-Aufrufe zum Löschen von Instanzen unabhängig von der Version zurückgegeben. Weitere Informationen zu Operatoren finden Sie unter Vergleiche.
Nächste Schritte
- Lesen Sie die Kurzanleitung zur Verwendung von Logging-Tools
- Weitere Informationen zum Aufrufen von Logeinträgen
- Mehr zum Ansehen von Logs mit erweiterten Logging-Filtern
- Mehr zu Cloud Audit-Logs von Compute Engine