Si usas registros de actividad para ver la actividad del administrador de Compute Engine y los eventos del sistema, lee esta guía a fin de comprender cómo encontrar entradas de registro similares mediante registros de auditoría en su lugar.
Los registros de actividad de Compute Engine están obsoletos. Puedes identificar las entradas del registro de actividad según su nombre de registro:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Los registros de auditoría de Compute Engine contienen la misma información que está disponible a través de los registros de actividad y más. Sin embargo, los registros de auditoría presentan la información de manera diferente en comparación con los registros de actividad. Por lo tanto, deberás ajustar las consultas.
Cómo migrar de los registros de actividad a los registros de auditoría
Para usar registros de auditoría en lugar de registros de actividad, ajusta las consultas. Sigue estos pasos:
Busca las consultas anteriores. Por ejemplo, puedes haberlas guardado en una búsqueda guardada en el Explorador de registros o quizás creaste una secuencia de comandos mediante la API o el SDK. Para obtener más información sobre cómo supervisar los recursos, consulta la documentación de Logging.
Reemplaza los campos del registro de actividad con los campos de registro de auditoría adecuados. Consulta la tabla para ver cómo se asignan los campos entre sí.
Por ejemplo, si la consulta del registro de actividad heredado buscaba un campo llamado
jsonPayload.resource.name
, la consulta de registro de auditoría nueva debería buscarprotoPayload.resourceName
en su lugar.Guarda y usa la nueva consulta de registro de auditoría. Por ejemplo, crea una búsqueda guardada en Cloud Logging o actualiza las secuencias de comandos.
Ejemplos
Estos son algunos ejemplos de consultas convertidas:
Consulta las actividades relacionadas con un recurso específico
Ejemplo de consulta | |
---|---|
Registro de actividad heredado | gcloud logging read jsonPayload.resource.name="VM_NAME"
|
Registro de auditoría | Usa una de las opciones que aparecen a continuación:
Con la opción 1, el operador “has” ( |
Consulta las entradas del registro de actividad reciente del administrador
Ejemplo de consulta | |
---|---|
Registro de actividad heredado | gcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
|
Registro de auditoría | gcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" |
Consulta las entradas de registro de creación de instancias recientes
Ejemplo de consulta | |
---|---|
Registro de actividad heredado | gcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' |
Registro de auditoría | gcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' |
Consulta el inicio de todas las operaciones de creación de instancias
Ejemplo de consulta | |
---|---|
Registro de actividad heredado | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' |
Registro de auditoría | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' |
Consulta la finalización de cualquier operación
Ejemplo de consulta | |
---|---|
Registro de actividad heredado | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" |
Registro de auditoría | gcloud logging read operation.last="true" |
Diferencias entre los registros de actividad y los registros de auditoría
Consulta esta sección para aprender cómo se estructuran los registros de auditoría en comparación con los registros de actividad. Ten en cuenta estas diferencias cuando conviertas consultas de registros de actividad heredadas en consultas de registros de auditoría. Por ejemplo, en las consultas, reemplaza todos los nombres de campo de registro de actividad heredados con los nombres de campo de registro de auditoría correspondientes.
Si bien el registro de auditoría y el registro de actividad muestran objetos de entrada de registro, tienen las siguientes diferencias:
- Diferentes nombres de campo. Consulta la tabla de asignación de nombres de campo para obtener más detalles.
- Diferentes valores de campo, incluidos:
- Diferentes nombres de registro: los registros de auditoría tienen nombres de registro que contienen
cloudaudit.googleapis.com
. - Diferentes cargas útiles: los registros de auditoría muestran un campo
protoPayload
en lugar de unjsonPayload
. - Nombres de recursos completamente calificados: los registros de auditoría muestran nombres de recursos que incluyen la ruta, por ejemplo:
projects/my-project/zones/us-east1-b/instances/my-instance-name
. - Nombres de métodos con versiones: los registros de auditoría muestran nombres de métodos que incluyen la versión, por ejemplo,
v1
.
- Diferentes nombres de registro: los registros de auditoría tienen nombres de registro que contienen
Este es un ejemplo que muestra las diferencias en los nombres de registros y las cargas útiles:
Ejemplo de entrada de registro | |
---|---|
Registro de actividad heredado | { 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" ... } |
Registro de auditoría | { 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" ... } |
Asigna campos de los registros de actividad a los de registros de auditoría
Usa las siguientes tablas para asignar campos de registro de actividad a los campos de registro de auditoría correspondientes en las consultas.
Campos
Usa la siguiente tabla para reemplazar los campos de registro de actividad heredados por los campos de registro de auditoría en las búsquedas actualizadas.
Por ejemplo, si tu consulta de registro de actividad heredada contenía un filtro basado en jsonPayload.resource.type
, la nueva consulta de registro de auditoría debería filtrarse por resource.type
.
Campo de registro de actividad heredado | Campo de registro de auditoría |
---|---|
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 |
Uno de:
|
logName |
logName |
receiveTimestamp |
receiveTimestamp |
resource.labels |
resource.labels |
severity |
severity |
timestamp |
timestamp |
Valores de campo
Usa las siguientes tablas para asignar valores de campo de registros de actividad heredados a valores de campo de registro de auditoría. En comparación con los registros de actividad, los registros de auditoría tienen varios valores de nombre de registro y diferentes valores de carga útil. Las entradas de registro de auditoría también muestran nombres de recursos completamente calificados y nombres de métodos con versiones.
Nombres de registro
Para encontrar una entrada de registro de auditoría, busca un logName
que incluya cloudaudit.googleapis.com
.
Nombre del registro | Contenido del registro | |
---|---|---|
Registro de actividad heredado | projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log | Actividad del administrador y eventos del sistema |
Registro de auditoría | projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity | Actividad del administrador |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event | Eventos del sistema | |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access | Acceso a los datos |
Cargas útiles
En cada entrada de registro de auditoría, busca un protoPayload
en lugar de un jsonPayload
.
Tipo de carga útil | Ejemplo de carga útil | |
---|---|---|
Registro de actividad heredado | 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" } |
Registro de auditoría | 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" } |
Para saber cómo se relacionan estas cargas útiles entre sí y cómo asignar los campos de registro de actividad heredados a los campos de registro de auditoría, lee la sección sobre cómo asignar campos de entrada de registro.
Nombres de recursos
En los registros de auditoría, los nombres de recursos de la API (en el campo protoPayload.resourceName
) están completamente calificados, por ejemplo:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Aún puedes usar nombres parciales, pero debes corregir la consulta para usar el operador “has” (:
) en lugar del operador “equals”.
Usa una de las siguientes opciones en las consultas de registro de auditoría para filtrar según un recurso específico:
gcloud logging read protoPayload.resourceName:"VM_NAME"
gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Nombres de métodos
En los registros de auditoría, los nombres de los métodos de API (en el campo protoPayload.methodName
) tienen el número de versión como prefijo (por ejemplo, v1.compute.instances.delete
).
Campo | Valor | Ejemplo de consulta | |
---|---|---|---|
Registro de actividad heredado | jsonPayload.event_subtype | RESOURCE.METHOD | jsonPayload.event_subtype=compute.instances.delete |
Registro de auditoría | protoPayload.methodName | API_VERSION.RESOURCE.METHOD | protoPayload.methodName=v1.compute.instances.delete o protoPayload.methodName=beta.compute.instances.delete o protoPayload.methodName:compute.instances.delete |
Aún puedes usar nombres de métodos sin versiones en las consultas de registro de auditoría, pero debes corregir la consulta para usar el operador “has” (:
) en lugar del operador “equals” (=
). Por ejemplo, protoPayload.methodName:compute.instances.delete
muestra todas las llamadas a la API de eliminación de instancias, sin importar la versión. Para obtener más información sobre los operadores, consulta comparaciones.
¿Qué sigue?
- Lee la guía de inicio rápido para usar las herramientas de registro.
- Obtén más información sobre cómo ver entradas de registro.
- Obtén información sobre la visualización de registros con los filtros de registro avanzados.
- Obtén más información sobre los registros de auditoría de Cloud de Compute Engine.