Aktivitätslogs aufrufen

Compute Engine-Aktivitätslogs werden in einer zukünftigen Version verworfen. Verwenden Sie stattdessen Audit-Logs. Weitere Informationen finden Sie unter Von Aktivitätslogs zu Audit-Logs migrieren.

Compute Engine-Aktivitätslogs sind nicht das Gleiche wie Audit-Logs. Audit-Logs enthalten dieselben Informationen wie Legacy-Aktivitätslogs und noch mehr. Wir empfehlen, anstelle von Aktivitätslogs Audit-Logs zu verwenden. Wenn Sie bereits Aktivitätslogs verwenden, lesen Sie Von Aktivitätslogs zu Audit-Logs migrieren.

Compute Engine stellt Aktivitätslogs bereit, mit denen Sie bestimmte Ereignisse wie API-Aufrufe und Systemereignisse verfolgen können, die sich auf Ihr Projekt auswirken. Im Einzelnen bieten Aktivitätslogs 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 beispielsweise get- und list-Anfragen, werden nicht erfasst.
  • Vorgangslogs: GCE_OPERATION_DONE-Ereignisse werden protokolliert, wenn ein API-Aufruf für Änderungen am Status einer Ressource beendet wird. Compute Engine meldet dann ein abgeschlossenes Vorgangsereignis, das in Ihren Aktivitätslogs erfasst wird.
  • Systemlog: GCE_SYSTEM_EVENT-Ereignisse werden protokolliert, wenn Compute Engine ein Systemereignis ausführt. Dies wird im Aktivitätslog erfasst. Zum Beispiel wird ein transparentes Wartungsereignis als Systemereignis protokolliert.

Bei einem API-Ereignis enthält ein Aktivitätslog 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ätslogs werden als Teil des Cloud Logging-Dienstes bereitgestellt. Weitere Informationen zu Logging im Allgemeinen finden Sie in der Dokumentation zu Cloud Logging.

Hinweis

Erforderliche Berechtigungen für diese Aufgabe

Zum Ausführen dieser Aufgabe benötigen Sie die folgende Berechtigung:

  • logging.logServiceIndexes.list für das Projekt
  • logging.logServices.list für das Projekt

Logs ansehen

Die Protokollierung von Aktivitäten ist für alle Compute Engine-Projekte standardmäßig aktiviert.

Die Aktivitätslogs Ihres Projekts finden Sie in der Loganzeige der Google Cloud Console:

  1. Wechseln Sie in der Cloud Console zur Seite Logging.

    Zur Seite "Logging"

  2. Wählen Sie in der Loganzeige den Ressourcentyp aus der ersten Drop-down-Liste aus und filtern Sie danach.
  3. 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.

Export von Logs

Informationen zum Exportieren von Aktivitätslogs finden Sie in der Cloud Logging-Dokumentation unter Export über die Loganzeige.

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ätslogs in einer Reihe von Tabellen gespeichert (eine Tabelle je Logtyp und Tag) und die Tabellen sind 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ätslogs lesen

Aktivitätslogs werden in der Dokumentation Logeintragstypen beschrieben.

Compute Engine-Aktivitätsprotokolle haben:

  • compute.googleapis.com/activity_log als Wert des Feldes log
  • metadata, womit allgemeine Informationen wie der Zeitstempel beschrieben werden
  • structPayload mit den spezifischen Inhalten des Logeintrags

Weitere Informationen zu den allgemeinen Feldern, die für jeden Logeintrag angegeben werden, finden SIe in der LogEntry-Beschreibung. Die Nutzlastinhalte von Aktivitätslogeinträgen sind jedoch spezifisch für Compute Engine und werden unten 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 compute.instances.insert angezeigt und eine Anfrage zum Löschen einer Adressressource wird als compute.addresses.delete angezeigt.

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:

  • GCE_API_CALL: Weist auf einen REST API-Aufruf hin, der eine Ressource aktualisiert hat.
  • GCE_OPERATION_DONE: Sobald eine API-Anfrage abgeschlossen ist, ob erfolgreich oder nicht, wird dieser Ereignistyp protokolliert.
  • GCE_SYSTEM_EVENT: Ein Systemereignis, das von Compute Engine initiiert wurde.
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 geben.

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 Versionierung der Compute Engine-API ist getrennt von der Protokollformat-Versionierung.

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.

Beispiellogeintrag

Ein Beispiellogeintrag, der eine API-Anfrage zum Erstellen einer VM beschreibt, sieht beispielsweise 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://compute.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://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/diskTypes/pd-standard\",
            \"sourceImage\":\"https://compute.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-8-jessie-v20150818\"
          },
          \"mode\":\"READ_WRITE\",
          \"type\":\"PERSISTENT\"
        }],
        \"machineType\":\"https://compute.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://compute.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://compute.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ätslogeinträge werden am 1. Juni 2020 ersatzlos eingestellt:

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