Si usa registros de actividad para ver la actividad administrativa de Compute Engine y los eventos del sistema, lea esta guía para comprender cómo encontrar entradas de registro similares utilizando registros de auditoría .
Los registros de actividad de Compute Engine están obsoletos. Puede 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. Pero los registros de auditoría presentan la información de manera diferente en comparación con los registros de actividad. Por lo tanto, deberá ajustar sus consultas.
Cómo migrar de registros de actividad a registros de auditoría
Para utilizar registros de auditoría en lugar de registros de actividad, ajuste sus consultas . Utilice los siguientes pasos.
Encuentra tus consultas antiguas. Por ejemplo, es posible que los haya guardado en una búsqueda guardada en el Explorador de registros o haya creado un script utilizando la API o el SDK. Para obtener más información sobre cómo puede monitorear sus recursos, consulte la documentación de Registro .
Reemplace los campos del registro de actividad con campos de registro de auditoría apropiados. Consulte la tabla para ver cómo se asignan los campos entre sí.
Por ejemplo, si su consulta de registro de actividad heredada buscaba un campo llamado
jsonPayload.resource.name
, su nueva consulta de registro de auditoría debería buscarprotoPayload.resourceName
en su lugar.Guarde y utilice su nueva consulta de registro de auditoría. Por ejemplo, cree una búsqueda guardada en Cloud Logging o actualice sus scripts.
Ejemplos
A continuación se muestran algunos ejemplos de consultas convertidas:
Consulta de actividad relacionada con un recurso específico
Ejemplo de consulta | |
---|---|
Registro de actividad heredado | gcloud logging read jsonPayload.resource.name=" VM_NAME " |
Registro de auditoría | Utilice una de las siguientes opciones
Con la opción 1, el operador "has" ( |
Consulta de entradas recientes del registro de actividad 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 de 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"' |
Consultando 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"' |
Consultar 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 registros de actividad y registros de auditoría
Lea esta sección para saber cómo se estructuran los registros de auditoría de manera diferente a los registros de actividad. Tenga en cuenta estas diferencias al convertir consultas de registros de actividad heredados en consultas de registros de auditoría. Por ejemplo, en sus consultas, reemplace todos los nombres de los campos del registro de actividad heredado con los nombres de los campos del registro de auditoría correspondientes.
Si bien el registro de auditoría y el registro de actividad devuelven objetos de entrada de registro , tienen las siguientes diferencias:
- Diferentes nombres de campos. Consulte la tabla de asignación de nombres de campos para obtener más detalles.
- Diferentes valores de campo, que incluyen:
- 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 devuelven un campo
protoPayload
en lugar dejsonPayload
. - Nombres de recursos completos: los registros de auditoría devuelven nombres de recursos que incluyen su ruta, por ejemplo:
projects/my-project/zones/us-east1-b/instances/my-instance-name
. - Nombres de métodos versionados: los registros de auditoría devuelven nombres de métodos que incluyen su versión, por ejemplo,
v1
.
- Diferentes nombres de registro : los registros de auditoría tienen nombres de registro que contienen
A continuación se muestra un ejemplo que muestra diferencias en los nombres de registro 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" ... } |
Asignación de campos de registros de actividad a registros de auditoría
Utilice las siguientes tablas para asignar campos de registro de actividad a los campos de registro de auditoría correspondientes en sus consultas.
Campos
Utilice la siguiente tabla para reemplazar los campos de registro de actividad heredados con campos de registro de auditoría en sus consultas actualizadas.
Por ejemplo, si su consulta de registro de actividad heredada contenía un filtro basado en jsonPayload.resource.type
, su 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
Utilice las siguientes tablas para asignar valores de campos de registro de actividad heredados a valores de campos 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 del registro de auditoría también devuelven nombres de recursos completos y nombres de métodos versionados.
Nombres de registro
Para encontrar una entrada de registro de auditoría, busque un logName
que incluya cloudaudit.googleapis.com
.
Nombre de registro | Contenido del registro | |
---|---|---|
Registro de actividad heredado | projects/ PROJECT_ID /logs/compute.googleapis.com%2Factivity_log | Actividad de administrador y eventos del sistema |
Registro de auditoría | projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Factivity | Actividad administrativa |
projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Fsystem_event | Eventos del sistema | |
projects/ PROJECT_ID /logs/cloudaudit.googleapis.com%2Fdata_access | Acceso a datos |
Cargas útiles
En cada entrada del registro de auditoría, busque protoPayload
en lugar de 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 entre sí y cómo asignar campos de registro de actividad heredados a campos de registro de auditoría, lea Asignaciones de campos de entrada de registro .
Nombres de recursos
En los registros de auditoría, los nombres de los recursos API (en el campo protoPayload.resourceName
) están completamente calificados, por ejemplo:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Aún puede usar nombres parciales, pero debe corregir su consulta para usar el operador "tiene" ( :
) en lugar del operador "igual".
Utilice una de las siguientes opciones en sus consultas de registro de auditoría para filtrar por 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 API (en el campo protoPayload.methodName
) tienen el prefijo de su versión, como: 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.nombredelmétodo | 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 puede usar nombres de métodos no versionados en sus consultas de registro de auditoría, pero debe corregir su consulta para usar el operador "tiene" ( :
) en lugar del operador "igual" ( =
). Por ejemplo: protoPayload.methodName:compute.instances.delete
devuelve todas las llamadas API de eliminación de instancias, independientemente de la versión. Para obtener más información sobre los operadores, consulte comparaciones .
¿Qué sigue?
- Lea el inicio rápido para usar herramientas de registro.
- Obtenga más información sobre cómo ver las entradas del registro .
- Obtenga información sobre cómo ver registros con filtros de registro avanzados .
- Obtenga más información sobre los registros de auditoría de la nube de Compute Engine.