查看活动日志

Compute Engine 提供活动日志,可让您跟踪会对您的项目产生影响的某些事件,例如 API 调用和系统事件。具体而言,活动日志提供有关以下各项的信息:

  • Compute Engine API 调用 - GCE_API_CALL 事件是会更改资源状态的 API 调用。例如,用于创建磁盘、更新实例元数据、创建实例组、更改机器类型的 API 调用都记录在活动日志中。不更新资源的 API 调用(例如 getlist 请求)则不予以记录。
  • 操作日志 - 当 API 调用完成更改资源状态时,系统会记录 GCE_OPERATION_DONE 事件,而 Compute Engine 会返回活动日志中所记录的已完成操作事件。
  • 系统日志 - 当 Compute Engine 执行系统事件时,系统会记录 GCE_SYSTEM_EVENT 事件,而系统事件则记录在活动日志中。例如,透明维护事件会记录为系统事件。

例如,对于 API 事件,活动日志提供 API 请求的开始时间和结束时间等详细信息、请求正文的详细信息、发出 API 请求的授权用户以及请求端点。您可以下载活动日志以搜索特定的 API 请求或查看 Compute Engine 发起的系统事件。

活动日志不提供有关项目帐单或使用情况的信息,例如虚拟机实例的运行时间或费用。对于帐单日志,请参阅帐单导出功能。如需了解使用情况日志,请参阅查看使用情况报告

Compute Engine 活动日志也与审计日志不同。

活动日志作为 Stackdriver Logging 服务的一部分提供。如需整体上详细了解 Stackdriver Logging,请阅读 Stackdriver Logging 文档。

准备工作

执行此任务所需的权限

要执行此任务,您必须具有以下权限

  • 针对项目执行 logging.logServiceIndexes.list 的权限
  • 针对项目执行 logging.logServices.list 的权限

查看日志

默认情况下,所有 Compute Engine 项目都会启用活动日志记录。

您可以通过 Google Cloud Platform Console 中的日志查看器来查看项目的活动日志:

  1. 转到 GCP Console 中的日志记录页面。
  2. 在日志查看器中,从第一个下拉菜单中选择并过滤您的资源类型。
  3. 所有日志下拉菜单中选择 compute.googleapis.com/activity_log,以查看 Compute Engine 活动日志。

导出日志

请阅读 Stackdriver 文档中的配置日志导出,了解如何导出活动日志。

识别日志文件

当您将日志导出到 Google Cloud Storage 时,日志文件按日志条目对象文档所述的结构存储。

Compute Engine 日志文件按以下目录结构存储:

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

以下是示例日志文件名,该文件存储在名为 my-bucket 的 Google Cloud Storage 存储分区中:

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

在 BigQuery 中,活动日志存储在一组表中,每种日志类型和每个日期对应一个表,并且使用以下格式命名这些表:

<dataset>.compute_googleapis_com_activity_log_YYYYMMDD

如需了解如何在 BigQuery 中查询活动日志,请参阅 Google BigQuery 中的日志条目

读取活动日志

活动日志结构如 LogEntry 类型文档所述。

Compute Engine 活动日志具有以下各项:

  • compute.googleapis.com/activity_log,作为 log 字段的值
  • metadata,用于说明时间戳等常规信息
  • structPayload,包含日志条目的特定内容

您可以详细了解 LogEntry 说明中的每个日志条目随附的通用字段,但活动日志条目的有效负载内容都特定于 Compute Engine,下文有说明。

有效负载内容

日志条目的内容按 JSON 对象格式提供,且存储在 structPayload 字段中。structPayload 字段包含以下信息:

字段 类型 说明
actor 字符串 执行操作的用户或服务帐号的电子邮件。这与 user_id 相同。
error 字符串 提供此事件期间发生的任何错误的详细信息。如果没有错误,则省略。错误通常将造成请求无法成功完成。您可以使用此字段来调试失败的请求。
event_subtype 字符串 将特定子类型描述为 API 方法。

例如,插入新实例的请求会显示为 compute.instances.insert删除地址资源的请求会显示为 compute.addresses.delete

请参阅 API 参考,获取 API 方法的完整列表。

event_timestamp_us 时间戳 所记录事件的时间戳,从标准 Epoch 算起,以微秒为单位。这与 metadata.timestamp 相同。
event_type 字符串 描述一般事件类型。

这可以是以下类型之一:

  • GCE_API_CALL:表示已更新资源的 REST API 调用。
  • GCE_OPERATION_DONE:完成 API 请求后,无论成功与否,都会记录此事件类型。
  • GCE_SYSTEM_EVENT - Compute Engine 发起的系统事件。
info 字符串 可选字段,显示额外信息(如果适用)。如果没有额外信息可以显示,则省略此字段。
operation 字符串 发出 API 请求以更新或更改任何资源时,系统会创建相应的操作对象以跟踪请求完成情况。此属性描述此事件的操作对象,提供操作名称、操作地区或区域以及操作 ID 等信息。

操作可以是地区操作区域操作全球操作,具体取决于操作要修改的资源。

request JSON 包含原始 API 请求正文。

resource JSON 描述此事件正在修改的特定资源。例如,虚拟机实例被视为资源,虚拟机的示例资源属性看起来如下所示:

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

API 参考中详细描述了资源类型列表。

注意:如果某项操作会影响多个资源,则可能存在多个具有相同 trace_id 的日志条目。

trace_id 字符串 系统提供的跟踪 ID,用于对一个操作所触发的相关日志进行分组。例如:

trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e"
user_agent 字符串 描述执行此请求的客户端。例如,如果您使用 Java 客户端库发出请求,则用户代理将为 Google-API-Java-Client
version 字符串 当前日志格式版本指示 Compute Engine 日志架构。当前版本为 1.2。

注意:Compute Engine API 版本控制不同于日志格式版本控制。

warning 字符串 如果在此事件期间出现任何警告,则提供这些警告的详细信息。警告是参考信息,不影响请求,这和错误不同。

示例日志条目

例如,对于创建虚拟机的 API 请求,其对应的示例日志条目如下所示:

{
  "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"
    }
  }
}
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档