Visualizando registros de atividades


Os registros de atividades do Compute Engine estão obsoletos. Em vez disso, use registros de auditoria . Para obter mais informações, consulte Migrando de logs de atividades para logs de auditoria .

Os registros de atividades do Compute Engine não são a mesma coisa que os registros de auditoria . Os logs de auditoria contêm as mesmas informações que os logs de atividades legados e muito mais. Recomendamos que você use logs de auditoria em vez de logs de atividades. Se você já estiver usando logs de atividades, leia Migrando de logs de atividades para logs de auditoria .

O Compute Engine fornece registros de atividades que permitem rastrear determinados eventos que afetam seu projeto, como chamadas de API e eventos do sistema. Especificamente, os registos de atividades fornecem informações sobre:

  • Chamadas de API do Compute Engine: eventos GCE_API_CALL são chamadas de API que alteram o estado de um recurso. Por exemplo, chamadas de API para criar um disco, atualizar metadados de instância, criar um grupo de instâncias, alterar um tipo de máquina são registradas em logs de atividades. As chamadas de API que não atualizam um recurso, como solicitações get e list não são registradas.
  • Registros de operação: os eventos GCE_OPERATION_DONE são registrados quando uma chamada de API altera o estado de conclusão de um recurso. O Compute Engine retorna um evento de operação concluído que é registrado nos registros de atividades.
  • Registros do sistema: os eventos GCE_SYSTEM_EVENT são registrados quando o Compute Engine executa um evento do sistema e são registrados nos registros de atividades. Por exemplo, um evento de manutenção transparente seria registrado como um evento do sistema.

Por exemplo, com um evento de API, um log de atividades fornece detalhes como o horário de início e término de uma solicitação de API, as especificações do corpo da solicitação, o usuário autorizado que fez a solicitação de API e o ponto final da solicitação. Você pode fazer download de registros de atividades para pesquisar solicitações de API específicas ou para revisar eventos do sistema iniciados pelo Compute Engine.

Os logs de atividades não fornecem informações de faturamento ou uso sobre um projeto, como há quanto tempo uma instância de máquina virtual está em execução ou quanto custa. Para registros de cobrança, consulte o recurso de exportação de cobrança . Para logs de uso, consulte Visualizando relatórios de uso .

Os registros de atividades são fornecidos como parte do serviço Cloud Logging. Para mais informações sobre o Logging em geral, leia a documentação do Cloud Logging .

Antes de começar

  • Familiarizado com o Cloud Logging .
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Permissões necessárias para esta tarefa

Para executar esta tarefa, você deve ter as seguintes permissões :

  • logging.logServiceIndexes.list no projeto
  • logging.logServices.list no projeto

Visualizando registros

O registro de atividades está ativado por padrão para todos os projetos do Compute Engine.

Você pode ver os registros de atividades do seu projeto por meio do Explorador de registros no console do Google Cloud :

  1. No console do Google Cloud, acesse a página Logging .

    Vá para a página de registro

  2. Quando estiver no Logs Explorer, selecione e filtre o tipo de recurso na primeira lista suspensa.
  3. Na lista suspensa Todos os registros , selecione computate.googleapis.com/activity_log para ver os registros de atividades do Compute Engine.

Registros de roteamento

Para saber como exportar registros de atividades, leia Configurar e gerenciar coletores na documentação do Cloud Logging.

Identificando arquivos de log

Ao exportar registros para o Cloud Storage, os arquivos de registro são armazenados na estrutura descrita na documentação de objetos de entrada de registro .

Os arquivos de registro do Compute Engine são armazenados com a seguinte estrutura de diretórios:

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

Veja a seguir um exemplo de nome de arquivo de log armazenado em um bucket do Cloud Storage chamado my-bucket :

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

No BigQuery, os registros de atividades são armazenados em um conjunto de tabelas, uma tabela para cada tipo de registro e dia, e as tabelas são nomeadas usando o seguinte formato:

<dataset>.compute_googleapis_com_activity_log_YYYYMMDD

Para obter informações sobre como consultar registros de atividades no BigQuery, consulte Entradas de registro no BigQuery .

Lendo registros de atividades

Os logs de atividades são estruturados conforme descrito na documentação do tipo LogEntry .

Os registros de atividades do Compute Engine têm:

  • compute.googleapis.com/activity_log como valor do campo log
  • metadata , que descrevem informações comuns, como carimbo de data/hora
  • structPayload , que contém o conteúdo específico da entrada de log

Você pode ver mais detalhes sobre os campos comuns fornecidos com cada entrada de registro na descrição do LogEntry , mas o conteúdo da carga útil das entradas do registro de atividades é específico do Compute Engine e é descrito abaixo.

Conteúdo da carga útil

O conteúdo de uma entrada de log é fornecido no formato de objeto JSON e armazenado no campo structPayload . O campo structPayload contém as seguintes informações:

Campo Tipo Descrição
actor corda Email do usuário ou conta de serviço que realiza a operação. É o mesmo que user_id .
error corda Fornece quaisquer detalhes de erro caso um erro tenha ocorrido durante esse evento. Isto é omitido se não houver erros. Os erros geralmente impedem que uma solicitação seja concluída com êxito. Você pode usar esse campo para depurar uma solicitação com falha.
event_subtype corda Descreve o subtipo específico como um método de API.

Por exemplo, uma solicitação para inserir uma nova instância aparece como compute.instances.insert e uma solicitação para excluir um recurso Address aparece como compute.addresses.delete .

Consulte a referência da API para obter uma lista abrangente de métodos de API.

event_timestamp_us carimbo de data/hora O carimbo de data/hora, em microssegundos, do evento registrado desde a época padrão. É o mesmo que metadata.timestamp .
event_type corda Descreve o tipo de evento geral.

Este pode ser um dos seguintes valores:

  • GCE_API_CALL . Indica uma chamada de API REST que atualizou um recurso.
  • GCE_OPERATION_DONE . Após a conclusão de uma solicitação de API, bem-sucedida ou não, esse tipo de evento é registrado.
  • GCE_SYSTEM_EVENT . Um evento do sistema iniciado pelo Compute Engine.
info corda Um campo opcional com informações adicionais, se aplicável. Este campo será omitido se não houver informações adicionais a serem mostradas.
operation corda Quando uma solicitação de API é feita para atualizar ou alterar quaisquer recursos, um objeto de operação correspondente é criado para rastrear a solicitação até a conclusão. Esta propriedade descreve o objeto de operação para este evento, fornecendo informações como o nome da operação, a zona ou região da operação e o ID da operação.

As operações podem ser uma operação de zona , uma operação de região ou uma operação global , dependendo do recurso que a operação está modificando.

request JSON Contém o corpo original da solicitação da API.

resource JSON Descreve o recurso específico que está sendo modificado por este evento. Por exemplo, uma instância de máquina virtual (VM) é considerada um recurso e um exemplo de propriedade de recurso para uma VM é semelhante ao seguinte:
"resource": {
  "type": "instance",
  "name": "example-instance",
  "id": "0",
  "zone": "us-central1-f"
}

Uma lista de tipos de recursos é descrita detalhadamente na referência da API .

Nota: Se uma ação afetar vários recursos, poderá haver diversas entradas de log com o mesmo trace_id .

trace_id corda Um ID de rastreamento fornecido pelo sistema usado para agrupar logs relacionados que são acionados por uma única ação. Por exemplo:
trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e"
user_agent corda Descreve o cliente que executou esta solicitação. Por exemplo, se você usasse as bibliotecas de cliente do Cloud para Java para fazer uma solicitação, o agente do usuário seria Google-API-Java-Client .
version corda A versão atual do formato de registro indica o esquema de registro do Compute Engine. A versão atual é 1.2.

Observação: o controle de versão da API Compute Engine é separado do controle de versão do formato de registro.

warning corda Fornece detalhes de aviso caso algum aviso tenha ocorrido durante esse evento. Um aviso é informativo e não afeta a solicitação, diferentemente dos erros.

Exemplo de entrada de registro

Por exemplo, um exemplo de entrada de log que descreve uma solicitação de API para criar uma VM é semelhante a este:

{
  "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 atividades obsoletas

As seguintes entradas do registro de atividades serão descontinuadas, sem substituição, em 1º de junho de 2020:

Tipo de recurso monitorado 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