Afficher les journaux d'activité


Les journaux d'activité de Compute Engine sont obsolètes. Utilisez les journaux d'audit à la place. Pour en savoir plus, consultez la page Passer des journaux d'activité aux journaux d'audit.

Les journaux d'activité Compute Engine ne sont pas la même chose que les journaux d'audit . Les journaux d'audit contiennent les mêmes informations que les anciens journaux d'activité, et d'autres informations. Nous vous recommandons d'utiliser les journaux d'audit à la place des journaux d'activité. Si vous utilisez déjà des journaux d'activité, lisez Passer des journaux d'activité aux journaux d'audit.

Compute Engine fournit des journaux d'activité qui vous permettent d'effectuer le suivi de certains événements ayant une incidence sur votre projet, tels que les appels d'API et les événements système. Plus précisément, les journaux d'activité fournissent des informations sur les éléments suivants :

  • Appels d'API de Compute Engine : les événements GCE_API_CALL sont des appels d'API qui modifient l'état d'une ressource. Par exemple, les appels d'API pour créer un disque, mettre à jour les métadonnées d'une instance, créer un groupe d'instances ou modifier un type de machine sont enregistrés dans les journaux d'activité. Les appels d'API qui ne mettent pas à jour une ressource, tels que les demandes get et list, ne sont pas enregistrés.
  • Journaux des opérations : les événements GCE_OPERATION_DONE sont consignés lorsqu'un appel d'API modifie l'état d'une ressource. Une fois la modification effectuée, Compute Engine renvoie un événement d'opération terminée qui est enregistré dans les journaux d'activité.
  • Journaux système : les événements GCE_SYSTEM_EVENT sont consignés lorsque Compute Engine initie un événement système qui est ensuite enregistré dans les journaux d'activité. Par exemple, un événement de maintenance transparente est consigné en tant qu'événement système.

Par exemple, dans le cadre d'un événement API, un journal d'activité fournit des informations telles que l'heure de début et de fin d'une requête API, les détails du corps de la requête, l'utilisateur autorisé ayant effectué la requête API et le point de terminaison de la requête. Vous pouvez télécharger des journaux d'activité pour rechercher des requêtes API spécifiques ou pour examiner les événements système lancés par Compute Engine.

Les journaux d'activité ne fournissent pas d'informations de facturation ou d'utilisation sur un projet, telles que la durée d'exécution d'une instance de machine virtuelle ou son coût. Pour en savoir plus sur les journaux de facturation, consultez la section sur la fonctionnalité d'exportation de la facturation. Pour en savoir plus sur les journaux d'utilisation, consultez la section Afficher les rapports d'utilisation.

Les journaux d'activité sont fournis dans le cadre du service Cloud Logging. Pour en savoir plus sur Logging en général, consultez la documentation Cloud Logging.

Avant de commencer

  • Familiarisez-vous avec Cloud Logging.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Autorisations requises pour cette tâche

Pour effectuer cette tâche, vous devez disposer des autorisations suivantes :

  • logging.logServiceIndexes.list sur le projet
  • logging.logServices.list sur le projet

Afficher les journaux

La journalisation des activités est activée par défaut pour tous les projets Compute Engine.

Vous pouvez afficher les journaux d'activité de votre projet via l'explorateur de journaux dans Google Cloud Console :

  1. Dans la console Google Cloud, accédez à la page Logging.

    Accéder à la page Logging

  2. Dans l'explorateur de journaux, sélectionnez et filtrez votre type de ressource dans la première liste déroulante.
  3. Dans la liste déroulante Tous les journaux, sélectionnez compute.googleapis.com/activity_log pour consulter les journaux d'activité de Compute Engine.

Router les journaux

Pour savoir comment exporter des journaux d'activité, consultez la page Configurer et gérer des récepteurs de la documentation de Cloud Logging.

Identifier les fichiers journaux

Lorsque vous exportez des journaux dans Google Cloud Storage, les fichiers journaux sont stockés dans la structure décrite dans la section Objets d'entrées de journal de la documentation.

Les fichiers journaux de Compute Engine sont stockés dans la structure de répertoires suivante :

<bucket>/compute.googleapis.com/activity_log/<year>/<month>/<day>

Vous trouverez ci-dessous un exemple de nom de fichier journal stocké dans un bucket Cloud Storage nommé my-bucket :

my-bucket/compute.googleapis.com/activity_log/2014/10/31/20:00:00_20:59:59_S0.json

Dans BigQuery, les journaux d'activité sont stockés dans un ensemble de tables, une table pour chaque type de journal et chaque jour. Les tables sont nommées selon le format suivant :

<dataset>.compute_googleapis_com_activity_log_YYYYMMDD

Pour plus d'informations sur l'interrogation des journaux d'activité dans BigQuery, consultezEntrées de journal dans BigQuery.

Lire les journaux d'activité

La structure des journaux d'activité est décrite dans la section type LogEntry.

Les journaux d'activité de Compute Engine incluent les éléments suivants :

  • compute.googleapis.com/activity_log en tant que valeur du champ log
  • metadata, qui décrit des informations courantes, telles que l'horodatage
  • structPayload, qui contient le contenu spécifique de l'entrée de journal

Vous pouvez obtenir plus de détails sur les champs communs à chaque entrée de journal de la description LogEntry, mais le contenu de la charge utile est spécifique à Compute Engine, tel que décrit ci-dessous.

Contenu de la charge utile

Le contenu d'une entrée de journal est fourni au format d'objet JSON et stocké dans le champ structPayload. Le champ structPayload contient les informations suivantes :

Champ Type Description
actor chaîne Adresse e-mail de l'utilisateur ou du compte de service effectuant l'opération. Cette valeur est identique à user_id.
error chaîne Fournit tous les détails de l'erreur si une erreur s'est produite lors de cet événement. Ce champ est omis si aucune erreur ne s'est produite. Les erreurs empêchent généralement une requête de se terminer correctement. Vous pouvez utiliser ce champ pour déboguer une requête ayant échoué.
event_subtype chaîne Décrit le sous-type spécifique en tant que méthode API.

Par exemple, une requête visant à insérer une nouvelle instance apparaît sous la forme compute.instances.insert, et une requête visant à supprimer une ressource d'adresse apparaît sous la forme compute.addresses.delete.

Consultez la documentation de référence sur les API pour obtenir la liste complète des méthodes API.

event_timestamp_us timestamp Horodatage de l'événement enregistré en microsecondes depuis l'époque standard. Cette valeur est identique à metadata.timestamp.
event_type chaîne Décrit le type d'événement général.

Il peut s'agir de l'une des valeurs suivantes :

  • GCE_API_CALL : Indique un appel d'API REST qui a mis à jour une ressource.
  • GCE_OPERATION_DONE : Une fois la requête API terminée, qu'elle soit réussie ou non, ce type d'événement est enregistré.
  • GCE_SYSTEM_EVENT : Un événement système lancé par Compute Engine.
info chaîne Un champ facultatif contenant des informations supplémentaires, le cas échéant. Ce champ est omis s'il n'y a pas d'informations supplémentaires à afficher.
operation chaîne Lorsqu'une requête API est effectuée pour mettre à jour ou modifier des ressources, un objet d'opération correspondant est créé pour effectuer le suivi de la requête jusqu'à son terme. Cette propriété décrit l'objet d'opération pour cet événement et fournit des informations telles que le nom, la zone ou la région et l'ID de l'opération.

Une opération peut être zonale, régionale ou globale, en fonction de la ressource modifiée.

request JSON Contient le corps de la requête API d'origine.

resource JSON Décrit la ressource particulière en cours de modification par cet événement. Par exemple, une instance de machine virtuelle (VM) est considérée comme une ressource et un exemple de propriété de ressource pour une VM se présente comme suit :
"resource": {
  "type": "instance",
  "name": "example-instance",
  "id": "0",
  "zone": "us-central1-f"
}

La liste des types de ressources est décrite en détail dans la documentation de référence sur les API.

Remarque : Si une action affecte plusieurs ressources, il peut exister plusieurs entrées de journal avec le même trace_id.

trace_id chaîne ID de trace fourni par le système utilisé pour regrouper les journaux associés déclenchés par une action unique. Exemple :
trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e"
user_agent chaîne Décrit le client qui a exécuté cette requête. Par exemple, si vous avez utilisé des bibliothèques clientes Cloud pour Java afin d'exécuter une requête, le programme user-agent serait Google-API-Java-Client.
version chaîne La version actuelle du format de journal indique le schéma de journal de Compute Engine. La version actuelle est 1.2.

Remarque : La gestion des versions de l'API Compute Engine est distincte de la gestion des versions du format de journal.

warning chaîne Fournit tous les détails des avertissements qui se sont produits pendant cet événement. Un avertissement est informatif et n'affecte pas la requête, contrairement aux erreurs.

Exemple d'entrée de journal

Par exemple, un exemple d'entrée de journal décrivant une requête d'API pour créer une VM se présente comme suit :

{
  "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"
    }
  }
}

Les entrées de journal d'activités obsolètes

Les entrées de journal d'activité suivantes ne seront plus disponibles à compter du 1er juin 2020 et ne seront pas remplacées :

Type de ressource surveillée Sous-type d'événement
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