Si vous utilisez des journaux d'activité pour afficher les activités d'administration et les événements système Compute Engine, consultez ce guide pour savoir comment trouver des entrées de journal similaires à l'aide des journaux d'audit.
Les journaux d'activité Compute Engine sont obsolètes. Vous pouvez identifier les entrées de journal d'activité en fonction de leur nom de journal :
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Les journaux d'audit Compute Engine contiennent les mêmes informations que celles disponibles via les journaux d'activité, entre autres. Toutefois, les informations sont présentées différemment dans les journaux d'audit par rapport aux journaux d'activité. Vous devez donc ajuster vos requêtes.
Passer des journaux d'activité aux journaux d'audit
Pour utiliser des journaux d'audit plutôt que des journaux d'activité, ajustez vos requêtes. Procédez comme suit.
Recherchez vos anciennes requêtes. Par exemple, vous pouvez les avoir sauvegardées dans une recherche enregistrée dans l'explorateur de journaux, ou avoir créé un script à l'aide de l'API ou du SDK. Pour en savoir plus sur la surveillance de vos ressources, consultez la documentation concernant la Logging.
Remplacez les champs du journal d'activité par les champs appropriés du journal d'audit. Reportez-vous au tableau pour voir comment les champs sont mappés les uns aux autres.
Par exemple, si votre ancienne requête de journal d'activité recherchait un champ nommé
jsonPayload.resource.name
, votre nouvelle requête de journal d'audit doit rechercherprotoPayload.resourceName
.Enregistrez et utilisez votre nouvelle requête de journal d'audit. Par exemple, créez une recherche enregistrée dans Cloud Logging ou mettez à jour vos scripts.
Exemples
Voici quelques exemples de requêtes converties :
Interroger une activité liée à une ressource spécifique
Exemple de requête | |
---|---|
Anciens journaux d'activité | gcloud logging read jsonPayload.resource.name="VM_NAME"
|
Journal d'audit | Utilisez l'une des options suivantes.
Avec l'option 1, l'opérateur "has" ( |
Interroger les entrées récentes du journal des activités d'administration
Exemple de requête | |
---|---|
Anciens journaux d'activité | gcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
|
Journal d'audit | gcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" |
Interroger les entrées de journal récentes relatives à la création d'instances
Exemple de requête | |
---|---|
Anciens journaux d'activité | gcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' |
Journal d'audit | gcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' |
Interroger le début de toutes les opérations de création d'instance
Exemple de requête | |
---|---|
Anciens journaux d'activité | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' |
Journal d'audit | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' |
Interroger l'achèvement d'une opération
Exemple de requête | |
---|---|
Anciens journaux d'activité | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" |
Journal d'audit | gcloud logging read operation.last="true" |
Différences entre les journaux d'activité et les journaux d'audit
Lisez cette section pour découvrir comment les journaux d'audit sont structurés différemment des journaux d'activité. Gardez ces différences à l'esprit lorsque vous convertissez les anciennes requêtes de journal d'activité en requêtes de journal d'audit. Par exemple, dans vos requêtes, remplacez tous les anciens noms de champs du journal d'activité par les noms de champs du journal d'audit correspondants.
Bien que les journaux d'audit et les journaux d'activité renvoient tous deux des objets d'entrée de journal, ils présentent les différences suivantes :
- Noms de champs différents. Pour en savoir plus, consultez le tableau lié au mappage des noms de champs.
- Des valeurs de champs différentes, y compris :
- Noms de journaux différents : les journaux d'audit ont des noms contenant
cloudaudit.googleapis.com
. - Charges utiles différentes : les journaux d'audit renvoient un champ
protoPayload
au lieu d'un champjsonPayload
. - Noms de ressources complets : les journaux d'audit renvoient des noms de ressources incluant leur chemin d'accès, par exemple :
projects/my-project/zones/us-east1-b/instances/my-instance-name
. - Noms de méthodes versionnés : les journaux d'audit renvoient des noms de méthodes incluant leur version, par exemple
v1
.
- Noms de journaux différents : les journaux d'audit ont des noms contenant
Voici un exemple illustrant les différences entre les noms de journaux et les charges utiles :
Exemple d'entrées de journal | |
---|---|
Anciens journaux d'activité | { 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" ... } |
Journal d'audit | { 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" ... } |
Mapper des champs des journaux d'activité aux journaux d'audit
Utilisez les tableaux suivants pour mapper les champs du journal d'activité aux champs du journal d'audit correspondants dans vos requêtes.
Champs
Utilisez le tableau suivant pour remplacer les anciens champs du journal d'activité par les champs des journaux d'audit dans vos requêtes mises à jour.
Par exemple, si l'une de vos requêtes sur un ancien journal d'activité contient un filtre basé sur jsonPayload.resource.type
, votre nouvelle requête de journal d'audit doit filtrer suivant resource.type
.
Ancien champ de journal d'activité | Champ du journal d'audit |
---|---|
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 |
Au choix :
|
logName |
logName |
receiveTimestamp |
receiveTimestamp |
resource.labels |
resource.labels |
severity |
severity |
timestamp |
timestamp |
Valeurs des champs
Utilisez les tableaux suivants pour mapper les anciennes valeurs des champs du journal d'activité aux valeurs des champs du journal d'audit. Par rapport aux journaux d'activité, les journaux d'audit ont plusieurs valeurs de nom de journal et différentes valeurs de charge utile. Les entrées du journal d'audit renvoient également des noms de ressources complets et des noms de méthodes versionnés.
Noms des journaux
Pour rechercher une entrée de journal d'audit, recherchez un logName
qui inclut l'élément cloudaudit.googleapis.com
.
Nom du journal | Contenu du journal | |
---|---|---|
Anciens journaux d'activité | projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log | Activités d'administration et événements système |
Journal d'audit | projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity | Activité d'administration |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event | Événements système | |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access | Accès aux données |
Charges utiles
Dans chaque entrée du journal d'audit, recherchez une charge utile protoPayload
plutôt que jsonPayload
.
Type de charge utile | Exemple de charge utile | |
---|---|---|
Anciens journaux d'activité | 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" } |
Journal d'audit | 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" } |
Consultez la section Mapper les champs des entrées de journal pour découvrir les relations entre ces types de charges utiles et apprendre comment mettre en correspondance les champs des anciens journaux d'activité et ceux des journaux d'audit.
Noms de ressources
Dans les journaux d'audit, les noms de ressources d'API (dans le champ protoPayload.resourceName
) sont complets, par exemple :
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Vous pouvez toujours utiliser des noms partiels, mais vous devez corriger votre requête pour utiliser l'opérateur "has" (:
) au lieu de l'opérateur "equals".
Utilisez l'une des options suivantes dans vos requêtes de journal d'audit pour filtrer sur une ressource spécifique :
gcloud logging read protoPayload.resourceName:"VM_NAME"
gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Noms de méthode
Dans les journaux d'audit, les noms des méthodes API (figurant dans le champ protoPayload.methodName
) sont préfixés par leur version, par exemple : v1.compute.instances.delete
.
Champ | Valeur | Exemple de requête | |
---|---|---|---|
Anciens journaux d'activité | jsonPayload.event_subtype | RESOURCE.METHOD | jsonPayload.event_subtype=compute.instances.delete |
Journal d'audit | protoPayload.methodName | API_VERSION.RESOURCE.METHOD | protoPayload.methodName=v1.compute.instances.delete ou protoPayload.methodName=beta.compute.instances.delete ou protoPayload.methodName:compute.instances.delete |
Vous pouvez toujours utiliser des noms de méthode non versionnés dans vos requêtes de journal d'audit, mais vous devez corriger votre requête pour utiliser l'opérateur "has" (:
) au lieu de l'opérateur "equals" (=
). Par exemple : protoPayload.methodName:compute.instances.delete
renvoie tous les appels d'API de suppression d'instance, quelle que soit la version. Pour plus d'informations sur les opérateurs, consultez la section Comparaisons.
Étape suivante
- Lisez le guide de démarrage rapide sur l'utilisation des outils de journalisation.
- Découvrez comment afficher des entrées de journal.
- Découvrez comment afficher les journaux à l'aide de filtres de journalisation avancés.
- Obtenez plus d'informations sur les journaux d'audit Cloud de Compute Engine.