Ve registros de actividad


Los registros de actividad de Compute Engine están obsoletos. En su lugar, usa registros de auditoría. Para obtener más información, consulta Migra desde los registros de actividad a los registros de auditoría.

Los registros de actividad de Compute Engine no son lo mismo que los registros de auditoría. Los registros de auditoría contienen la misma información que los registros de actividad heredados y más. Te recomendamos que uses registros de auditoría en lugar de registros de actividad. Si ya usas registros de actividad, consulta cómo migrar de registros de actividad a registros de auditoría.

Compute Engine proporciona registros de actividad que te permiten realizar un seguimiento de ciertos eventos que afectan a tu proyecto, como las llamadas a la API y los eventos del sistema. En específico, los registros de actividad proporcionan información sobre lo siguiente:

  • Llamadas a la API de Compute Engine: Los eventos GCE_API_CALL son llamadas a la API que cambian el estado de un recurso. Por ejemplo, las llamadas a la API para crear un disco, actualizar los metadatos de la instancia, crear un grupo de instancias y cambiar un tipo de máquina, se registran en los registros de actividad. Las llamadas a la API que no actualizan un recurso, como las solicitudes get y list, no se registran.
  • Registros de operaciones: Los eventos GCE_OPERATION_DONE se registran cuando finaliza una llamada a la API que cambia el estado de un recurso. Compute Engine muestra que se completó un evento de operación que se registra en tus registros de actividad.
  • Registros del sistema: Los eventos GCE_SYSTEM_EVENT se registran cuando Compute Engine realiza un evento del sistema y se registra en los registros de actividad. Por ejemplo, un evento de mantenimiento transparente se registraría como un evento del sistema.

Por ejemplo, con un evento de la API, un registro de actividad proporciona detalles como la hora de inicio y de finalización de una solicitud a la API, los detalles del cuerpo de la solicitud, el usuario autorizado que realizó la solicitud a la API y el extremo de la solicitud. Puedes descargar los registros de actividad para buscar solicitudes específicas a la API o revisar eventos del sistema que inició Compute Engine.

Los registros de actividad no proporcionan información sobre el uso o la facturación de un proyecto, como hace cuánto tiempo se ejecuta una instancia de máquina virtual o cuánto cuesta. Para obtener los registros de facturación, consulta la característica de exportación de facturación. Para obtener los registros de uso, consulta Ve informes de uso.

Los registros de actividad se proporcionan como parte del servicio de Cloud Logging. Para obtener más información acerca de Logging en general, lee la documentación de Cloud Logging.

Antes de comenzar

  • Obtén información sobre Cloud Logging.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Permisos necesarios para esta tarea

Para realizar esta tarea, debes tener los siguientes permisos:

  • logging.logServiceIndexes.list en el proyecto
  • logging.logServices.list en el proyecto

Visualiza registros

El registro de actividad está habilitado de forma predeterminada para todos los proyectos de Compute Engine.

Para ver los registros de actividad de tu proyecto a través del Explorador de registros en la consola de Google Cloud, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Logging.

    Ir a la página Logging

  2. En el Explorador de registros, elige y filtra el tipo de recurso en la primera lista desplegable.
  3. En la lista desplegable Todos los registros, elige compute.googleapis.com/activity_log para ver los registros de actividad de Compute Engine.

Enruta registros

Para obtener información sobre cómo exportar registros de actividad, consulta Configura y administra receptores en la documentación de Cloud Logging.

Identifica archivos de registro

Cuando exportas registros a Cloud Storage, los archivos de registro se almacenan en la estructura descrita en la documentación Objetos de entrada de registros.

Los archivos de registro de Compute Engine se almacenan con la siguiente estructura de directorios:

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

El siguiente es un nombre de archivo de registro de ejemplo almacenado en un bucket de Cloud Storage llamado my-bucket:

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

En BigQuery, los registros de actividad se almacenan en un conjunto de tablas, en el que hay una tabla para cada día y tipo de registro, y las tablas se nombran con el siguiente formato:

<dataset>.compute_googleapis_com_activity_log_YYYYMMDD

Para obtener información sobre cómo consultar los registros de actividad en BigQuery, consulta la página sobre entradas de registro en BigQuery.

Lee los registros de actividad

Los registros de actividad se estructuran como se describe en la documentación sobre el tipo LogEntry.

Los registros de actividad de Compute Engine tienen lo siguiente:

  • compute.googleapis.com/activity_log como valor del campo log
  • metadata, que describe la información común como la marca de tiempo
  • structPayload, que contiene los contenidos específicos de la entrada de registro

Puedes obtener más detalles acerca de los campos comunes proporcionados con cada entrada de registro en la descripción de LogEntry, pero el contenido de la carga útil de las entradas del registro de actividad es específico de Compute Engine y se describe a continuación.

Contenido de la carga útil

El contenido de una entrada de registro se proporciona en formato de objeto JSON y se almacena en el campo structPayload. El campo structPayload contiene la siguiente información:

Campo Tipo Descripción
actor string El correo electrónico de la cuenta de usuario o servicio que realiza la operación. Es igual a user_id.
error string Proporciona detalles de cualquier error que se haya producido durante este evento. Se omite si no hay errores. En general, los errores evitan que una solicitud se complete con éxito. Puedes usar este campo para depurar una solicitud con errores.
event_subtype string Describe el subtipo específico como un método de la API.

Por ejemplo, una solicitud para insertar una nueva instancia se muestra como compute.instances.insert, y una solicitud para borrar un recurso de dirección se muestra como compute.addresses.delete.

Consulta la referencia de la API para obtener una lista completa de los métodos de la API.

event_timestamp_us marca de tiempo La marca de tiempo, en microsegundos, del evento registrado desde el ciclo de entrenamiento estándar. Es igual a metadata.timestamp.
event_type string Describe el tipo de evento general.

Puede ser uno de los siguientes valores:

  • GCE_API_CALL: Indica una llamada a la API de REST que actualizó un recurso.
  • GCE_OPERATION_DONE: Una vez que se completa una solicitud a la API, ya sea exitosa o no, se registra este tipo de evento.
  • GCE_SYSTEM_EVENT: Un evento del sistema que inició Compute Engine.
info string Un campo opcional con información adicional, si corresponde. Este campo se omite si no hay información adicional para mostrar.
operation string Cuando se realiza una solicitud a la API para actualizar o cambiar algún recurso, se crea un objeto de operación correspondiente a fin de realizar el seguimiento de la solicitud. En esta propiedad, se describe el objeto de operación de este evento y se proporciona información como el nombre, la zona o región y el ID de la operación.

Las operaciones pueden ser una operación de zona, una operación de región o una operación global, en función del recurso que la operación modifica.

request JSON Contiene el cuerpo de solicitud a la API original.

resource JSON Describe el recurso específico que modifica este evento. Por ejemplo, una instancia de máquina virtual (VM) se considera un recurso, y una propiedad de recurso de ejemplo para una VM tiene el siguiente aspecto:

"resource": {
  "type": "instance",
  "name": "example-instance",
  "id": "0",
  "zone": "us-central1-f"
}

En la referencia de la API, se describe en detalle una lista de los tipos de recursos.

Nota: Si una acción afecta a varios recursos, puede haber varias entradas de registro con el mismo trace_id.

trace_id string Un ID de seguimiento proporcionado por el sistema que se usa para agrupar los registros relacionados que se activan con una sola acción. Por ejemplo:

trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e"
user_agent string Describe al cliente que realizó esta solicitud. Por ejemplo, si usaste las bibliotecas cliente de Cloud para Java a fin de realizar una solicitud, el usuario-agente sería Google-API-Java-Client.
version string La versión actual del formato de registro indica el esquema de registro de Compute Engine. La versión actual es 1.2.

Nota: El control de versiones de la API de Compute Engine es independiente del control de versiones del formato de registro.

warning string Proporciona detalles de cualquier advertencia que se haya producido durante este evento. A diferencia de los errores, una advertencia es informativa y no afecta a la solicitud.

Entrada de registro de muestra

Por ejemplo, una entrada de registro de muestra en la que se describe una solicitud a la API para crear una VM tiene el siguiente aspecto:

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

Entradas de registro de actividad obsoletas

Las siguientes entradas del registro de actividad se suspenderán, sin reemplazo, el 1 de junio de 2020:

Tipo de recurso supervisado Subtipo de evento
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