Compute Engine-Aktivitätsprotokolle sind nicht dasselbe wie Audit-Logs. Audit-Logs enthalten dieselben Informationen wie die alten Aktivitätsprotokolle und mehr. Wir empfehlen, anstelle von Aktivitätsprotokollen Audit-Logs zu verwenden. Wenn Sie bereits Aktivitätsprotokolle verwenden, lesen Sie den Abschnitt Von Aktivitätsprotokollen zu Audit-Logs migrieren.
Compute Engine stellt Aktivitätsprotokolle bereit, mit denen Sie bestimmte Ereignisse wie API-Aufrufe und Systemereignisse verfolgen können, die sich auf Ihr Projekt auswirken. Im Einzelnen bieten Aktivitätsprotokolle Informationen zu Folgendem:
- Compute Engine API-Aufrufe:
GCE_API_CALL-Ereignisse sind API-Aufrufe, durch die der Zustand einer Ressource geändert wird. In Aktivitätslogs werden beispielsweise API-Aufrufe zum Erstellen eines Datenträgers, zum Aktualisieren von Instanzmetadaten, zum Erstellen einer Instanzgruppe und zum Ändern eines Maschinentyps erfasst. API-Aufrufe, die eine Ressource nicht aktualisieren, wie beispielsweiseget- undlist-Anfragen, werden nicht erfasst. - Vorgangsprotokolle:
GCE_OPERATION_DONE-Ereignisse werden protokolliert, wenn ein API-Aufruf, der den Status einer Ressource ändert, abgeschlossen ist. Compute Engine gibt ein abgeschlossenes Vorgang-Ereignis zurück, das in Ihren Aktivitätsprotokollen aufgezeichnet wird. - Systemprotokolle:
GCE_SYSTEM_EVENT-Ereignisse werden protokolliert, wenn Compute Engine ein Systemereignis ausführt. Sie werden in Aktivitätsprotokollen aufgezeichnet. Zum Beispiel wird ein transparentes Wartungsereignis als Systemereignis protokolliert.
Bei einem API-Ereignis enthält ein Aktivitätsprotokoll beispielsweise Informationen wie die Start- und Endzeit eines API-Aufrufs, die Einzelheiten des Abfragetexts, den autorisierten Nutzer, der die API-Abfrage gestellt hat, und den Endpunkt der Abfrage. Sie können Aktivitätsprotokolle herunterladen, um nach bestimmten API-Abfragen zu suchen oder von Compute Engine initiierte Systemereignisse zu überprüfen.
Aktivitätsprotokolle liefern keine Abrechnungs- oder Nutzungsinformationen zu einem Projekt, etwa wie lange eine VM-Instanz bereits ausgeführt wird oder wie viel sie kostet. Weitere Informationen zu Abrechnungslogs finden Sie unter Abrechnungsdaten exportieren. Weitere Informationen zu Nutzungslogs finden Sie unter Nutzungsberichte ansehen.
Aktivitätsprotokolle werden im Rahmen des Cloud Logging-Dienstes bereitgestellt. Weitere Informationen zu Logging im Allgemeinen finden Sie in der Dokumentation zu Cloud Logging.
Hinweise
- Machen Sie sich mit Cloud Logging vertraut.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Wählen Sie den Tab für die geplante Verwendung der Beispiele auf dieser Seite aus:
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. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
- Legen Sie eine Standardregion und -zone fest.
REST
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.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Erforderliche Berechtigungen für diese Aufgabe
Zum Ausführen dieser Aufgabe benötigen Sie die folgende Berechtigung:
logging.logServiceIndexes.listfür das Projektlogging.logServices.listfür das Projekt
Logs ansehen
Die Aktivitätsprotokollierung ist für alle Compute Engine-Projekte standardmäßig aktiviert.
Die Aktivitätsprotokolle Ihres Projekts finden Sie im Log-Explorer der Google Cloud console:
- Rufen Sie in der Google Cloud Console die Seite Logging auf.
- Wählen Sie im Log Explorer den Ressourcentyp aus der ersten Drop-down-Liste aus und filtern Sie danach.
- Wählen Sie in der Drop-down-Liste Alle Logs die Option compute.googleapis.com/activity_log aus, um Compute Engine-Aktivitätsprotokolle anzeigen zu lassen.
Routing-Logs
Informationen zum Exportieren von Aktivitätsprotokollen finden Sie in der Cloud Logging-Dokumentation unter Senken konfigurieren und verwalten.
Logdateien identifizieren
Wenn Sie Logs in Cloud Storage exportieren, werden die Logdateien in der Struktur gespeichert, die in der Dokumentation zu Logeintragsobjekten beschrieben wird.
Compute Engine-Logdateien werden mit der folgenden Verzeichnisstruktur gespeichert:
<bucket>/compute.googleapis.com/activity_log/<year>/<month>/<day>
Der folgende Beispiel-Logdateiname ist in einem Cloud Storage-Bucket namens my-bucket gespeichert:
my-bucket/compute.googleapis.com/activity_log/2014/10/31/20:00:00_20:59:59_S0.json
In BigQuery werden Aktivitätsprotokolle in einer Reihe von Tabellen gespeichert, wobei für jeden Protokolltyp und Tag eine Tabelle verwendet wird. Die Tabellen werden im folgenden Format benannt:
<dataset>.compute_googleapis_com_activity_log_YYYYMMDD
Informationen zum Abfragen von Aktivitätslogs in BigQuery finden Sie unter Logeinträge in BigQuery.
Aktivitätsprotokolle lesen
Aktivitätsprotokolle werden in der Dokumentation zum LogEntry-Typ beschrieben.
Compute Engine-Aktivitätsprotokolle haben:
compute.googleapis.com/activity_logals Wert des Feldeslogmetadata, womit allgemeine Informationen wie der Zeitstempel beschrieben werdenstructPayloadmit den spezifischen Inhalten des Logeintrags
Weitere Informationen zu den allgemeinen Feldern, die in jedem Logeintrag enthalten sind, finden Sie in der Beschreibung von LogEntry. Der Nutzlastinhalt von Aktivitätsprotokolleinträgen ist jedoch spezifisch für Compute Engine und wird im Folgenden beschrieben.
Payload-Inhalte
Die Inhalte eines Logeintrags werden im JSON-Objektformat bereitgestellt und im Feld structPayload gespeichert. Das Feld structPayload enthält die folgenden Informationen:
| Feld | Typ | Beschreibung |
|---|---|---|
actor |
String | E-Mail des Nutzers oder Dienstkontos, der oder das den Vorgang durchführt. Dies entspricht der user_id. |
error |
String | Liefert alle Einzelheiten über einen Fehler, sofern während dieses Ereignisses ein Fehler aufgetreten ist. Dies entfällt, wenn keine Fehler aufgetreten sind. Fehler verhindern in der Regel, dass eine Anfrage erfolgreich abgeschlossen wird. Sie können dieses Feld zur Fehlerbehebung einer fehlgeschlagenen Anfrage verwenden. |
event_subtype |
String | Beschreibt den spezifischen Subtyp als eine API-Methode.
Beispiel: Eine Anfrage zum Einfügen einer neuen Instanz wird als Eine ausführliche Liste der API-Methoden finden Sie in der API-Referenz. |
event_timestamp_us |
timestamp | Der Zeitstempel des protokollierten Ereignisses in Mikrosekunden seit der Standardepoche.
Dies entspricht metadata.timestamp. |
event_type |
String | Beschreibt den allgemeinen Ereignistyp.
Dies kann einer der folgenden Werte sein:
|
info |
String | Ein optionales Feld mit zusätzlichen Informationen, sofern anwendbar. Dieses Feld wird weggelassen, wenn es keine weiteren Informationen zum Anzeigen gibt. |
operation |
String | Bei einer API-Anfrage zum Aktualisieren oder Ändern einer Ressource wird ein entsprechendes Vorgangsobjekt erstellt, um die Anfrage bis zum Abschluss zu verfolgen.
Dieses Attribut beschreibt das Vorgangsobjekt für dieses Ereignis und liefert Informationen wie den Vorgangsnamen, die Zone oder Region des Vorgangs und die Vorgangs-ID.
Je nach Ressource, die durch den Vorgang geändert wird, gibt es verschiedene Vorgänge wie zonale Vorgänge, regionale Vorgänge oder globale Vorgänge. |
request |
JSON | Enthält den ursprünglichen API-Anfragetext. |
resource |
JSON | Beschreibt die jeweilige Ressource, die durch dieses Ereignis geändert wird.
Beispiel: Eine VM-Instanz wird als Ressource betrachtet und ein Ressourcenattribut für eine VM sieht beispielsweise so aus:
"resource": {
"type": "instance",
"name": "example-instance",
"id": "0",
"zone": "us-central1-f"
}Eine ausführliche Liste der Ressourcentypen finden Sie in der API-Referenz. Hinweis: Wenn sich eine Aktion auf mehrere Ressourcen auswirkt, kann es mehrere Logeinträge mit derselben |
trace_id |
String | Eine vom System bereitgestellte Trace-ID, die verwendet wird, um verwandte Logs zu gruppieren, die durch eine einzige Aktion ausgelöst werden. Beispiel:
trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e" |
user_agent |
String | Beschreibt den Client, der diese Anfrage ausgeführt hat. Wenn Sie beispielsweise die Cloud-Clientbibliotheken für Java verwendet haben, um eine Anfrage zu senden, wäre der User-Agent Google-API-Java-Client. |
version |
String | Die aktuelle Logformatversion gibt das Compute Engine-Logschema an. Die aktuelle Version ist 1.2.
Hinweis: Die Versionsverwaltung der Compute Engine API erfolgt getrennt von der Versionsverwaltung des Logformats. |
warning |
String | Liefert alle Einzelheiten zur Warnung, wenn Warnungen während dieses Ereignisses aufgetreten sind. Eine Warnung dient zu Informationszwecken und beeinträchtigt, im Gegensatz zu Fehlern, die Abfrage nicht. |
Beispiel für einen Logeintrag
Ein Beispiel für einen Logeintrag, der eine API-Anfrage zum Erstellen einer VM beschreibt, sieht so aus:
{
"log": "compute.googleapis.com/activity_log",
"insertId": "2015-09-16|13:49:42.532185-07|10.106.9.208|335899593",
"metadata": {
"severity": "INFO",
"projectId": "835469197146",
"serviceName": "compute.googleapis.com",
"zone": "us-central1-f",
"labels":{
"compute.googleapis.com/resource_id":"0",
"compute.googleapis.com/resource_name":"example-instance",
"compute.googleapis.com/resource_type":"instance",
"compute.googleapis.com/resource_zone":"us-central1-f"
},
"timestamp": "2015-09-16T20:49:42.423637Z"
},
"structPayload": {
"version": "1.2",
"trace_id": "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e",
"event_timestamp_us": "1442436582423637",
"event_type": "GCE_API_CALL",
"event_subtype": "compute.instances.insert",
"resource": {
"type": "instance",
"name": "example-instance",
"id": "0",
"zone": "us-central1-f"
},
"actor": {
"user": "user@example.com"
},
"ip_address": "",
"user_agent": "apitools-client/1.0",
"request": {
"url": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances",
"body": "{
\"canIpForward\":false,
\"description\":\"\",
\"disks\":[{
\"autoDelete\":true,
\"boot\":true,
\"deviceName\":\"example-instance\",
\"initializeParams\":{
\"diskSizeGb\":\"10\",
\"diskType\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/diskTypes/pd-standard\",
\"sourceImage\":\"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-8-jessie-v20150818\"
},
\"mode\":\"READ_WRITE\",
\"type\":\"PERSISTENT\"
}],
\"machineType\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/machineTypes/n1-standard-1\",
\"metadata\":{
\"items\":[]
},
\"name\":\"example-instance\",
\"networkInterfaces\":[{
\"accessConfigs\":[{
\"name\":\"External NAT\",
\"type\":\"ONE_TO_ONE_NAT\"
}],
\"network\":\"https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\"
}],
\"scheduling\":{
\"automaticRestart\":true,
\"onHostMaintenance\":\"MIGRATE\",
\"preemptible\":false
},
\"serviceAccounts\":[{
\"email\":\"default\",
\"scopes\":[
\"https://www.googleapis.com/auth/devstorage.read_only\",
\"https://www.googleapis.com/auth/logging.write\"
]
}],
\"tags\":{
\"items\":[]
},
\"zone\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f\"
}"
},
"operation": {
"type": "operation",
"name": "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e",
"id": "291347737657178184",
"zone": "us-central1-f"
}
}
}Verworfene Aktivitätslogeinträge
Die folgenden Aktivitätsprotokoll-Logeinträge werden am 1. Juni 2020 eingestellt und nicht ersetzt:
| Typ der überwachten Ressource | Ereignisuntertyp |
|---|---|
gce_backend_service |
BackendServiceConfigProgramming |
gce_instance |
RE_ENCRYPT_SSL_CERTIFICATE_FLOW |
gce_instance |
addFirewallRuleToSecurityPolicy |
gce_instance |
attachCloudLink |
gce_instance |
attachFirewallSecurityPolicy |
gce_instance |
compute.instanceGroupManagers.updateHealth |
gce_instance |
compute.instanceGroups.detachHealthCheck |
gce_instance |
compute.instanceNetworkConfig.updateName |
gce_instance |
compute.regionInstanceGroups.attachHealthCheck |
gce_instance |
compute.regionInstanceGroups.detachHealthCheck |
gce_instance |
createFirewallSecurityPolicy |
gce_instance |
deleteFirewallSecurityPolicy |
gce_instance |
detachFirewallSecurityPolicy |
gce_instance |
patchFirewallRuleInSecurityPolicy |
gce_instance |
removeCloudLink |
gce_instance |
removeFirewallRuleFromSecurityPolicy |
gce_instance |
updateFirewallSecurityPolicy |
gce_instance |
updateVpnTunnel |
gce_instance_group |
compute.instanceGroups.attachHealthCheck |
gce_instance_group |
compute.instanceGroups.attachNetworkInterfaces |
gce_instance_group |
compute.instanceGroups.detachHealthCheck |
gce_instance_group |
compute.regionInstanceGroups.attachHealthCheck |
gce_instance_group |
compute.regionInstanceGroups.detachHealthCheck |
gce_instance_template |
compute.zoneInstanceTemplates.insert |
gce_network |
compute.networks.switchLegacyToCustomMode |
gce_project |
compute.projects.moveProjectNetworking |
gce_reserved_address |
compute.addresses.insertDnsForwarding |
gce_reserved_address |
compute.addresses.insertNatAddress |
gce_ssl_certificate |
RE_ENCRYPT_SSL_CERTIFICATE_FLOW |
gce_ssl_certificate |
SslCertificateAddManagedCertificateChallenge |
gce_ssl_certificate |
SslCertificateProvisionManagedCertificate |
gce_ssl_certificate |
SslCertificateRemoveManagedCertificateChallenge |
gce_subnetwork |
compute.subnetworks.createOrUpdateVirtualSubnetwork |
vpn_tunnel |
updateVpnTunnel |