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 demandesget
etlist
, 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 :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
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
-
Autorisations requises pour cette tâche
Pour effectuer cette tâche, vous devez disposer des autorisations suivantes :
logging.logServiceIndexes.list
sur le projetlogging.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 :
- Dans la console Google Cloud, accédez à la page Logging.
- Dans l'explorateur de journaux, sélectionnez et filtrez votre type de ressource dans la première liste déroulante.
- 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 champlog
metadata
, qui décrit des informations courantes, telles que l'horodatagestructPayload
, 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 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 :
|
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 |
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 |