查看自动调节程序日志

本页面介绍如何查看和解读与自动调节相关的日志。启用自动调节后,自动调节程序会根据您指定的选项做出调节决策。每一个调节决策都由 Stackdriver Logging 记录,您可以在日志查看器中查看这些日志。

您可以使用日志查看器查看与以下内容相关的事件:

  • 实例组大小经过了调整。如果自动调节程序调整实例组的大小,则自动调节程序日志会描述本次调整。
  • 自动调节程序状态发生更改。例如,如果自动调节程序原本按预期工作,但后来遇到问题,则自动调节程序日志会描述状态的更改。通常返回的状态消息部分描述了其中的一些常见状态消息。

准备工作

查看自动调节程序日志

要查看自动调节程序日志,请使用 Google Cloud Platform Consolegcloud 工具或 Stackdriver Logging API。

Console

  1. 转到“日志查看器”页面。

    转到“日志查看器”页面

  2. 点开资源下拉菜单,选择 GCE 自动调节程序
  3. 然后,展开所有日志下拉菜单。选择自动调节程序以查看自动调节日志。

gcloud

使用 gcloud 工具运行测试版 logging read 命令以查找所有与自动调节相关的日志(包括活动日志审核日志)。例如:

gcloud beta logging read "resource.type=gce_autoscaler" --limit 10 \
    --format json

如果您要将条目限制为与自动调节程序的调整大小操作相关的日志,请指定 logName 参数并按字段 jsonPayload.newSize 进行过滤。将 logName 设置为:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例如:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.newSize:*' \
    --limit 10 --format json

要查看自动调节程序的状态更改,请使用 logName 参数并按字段 jsonPayload.new_status 进行过滤。将 logName 设置为:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例如:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.new_status:*' \
    --limit 10 --format json

API

Logging V2 API 发出请求。请求正文必须包含搜索日志时要使用的 filter 参数和要查看其日志的 project。例如,要请求获取调整大小操作列表,请使用以下命令:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_size:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

要请求获取状态更改列表,请使用以下命令:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_status:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

调整大小日志

与调整大小操作相关的日志描述有关实例组的先前大小和新大小的信息。这些日志条目可通过 JSON 负载中存在的以下字段来识别:

jsonPayload.new_size
jsonPayload.old_size

例如,在以下条目中,日志描述了从大小为 8 的旧实例组更改为大小为 10 的新实例组。

{
"insertId": "1l68z7sg4jw7kzo",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_size": 10,
  "old_size": 8,
  "project_id": "myproject",
  "zone_name": "europe-west1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T16:12:08.294439822Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "europe-west1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T16:12:07.715125478Z"

}

以下是日志中每个字段的说明:

属性
insertId 日志条目的唯一标识符。
jsonPayload 日志条目负载,表示为以 JSON 对象表示的结构。
new_size 该组被自动调节到的新大小。如果该组增大,则新大小将大于旧大小。如果减小,则新大小将小于旧大小。
old_size 该组在更改之前的旧大小。
instance_group_name 此日志条目适用的托管实例组的名称。
project_id 实例组的项目 ID。此字段应始终为当前项目的 ID。
autoscaler_name 负责此操作的自动调节程序的名称。
zone_name 自动调节程序和实例组的地区。
resource 自动调节程序的详细信息。
type 资源的类型。对于自动调节程序,此字段将始终为 gce_autoscaler
labels 有关自动调节程序的元数据。
location 自动调节程序的地区。
autoscaler_id 服务器生成的数字自动调节程序 ID。
project_id 自动调节程序所属的项目 ID
timestamp 日志条目所述事件发生的时间。采用 RFC 3339 UTC“Zulu”格式的时间戳,精确到纳秒。
severity 此日志的严重程度。对于自动调节程序日志,此字段始终为 "INFO"
logName 此日志条目所属日志的资源名称。对于自动调节程序调整大小日志,此字段将始终为 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler
receiveTimestamp Stackdriver Logging 接收日志条目的时间。采用 RFC 3339 UTC“Zulu”格式的时间戳,精确到纳秒。

状态更改日志

当自动调节程序的状态发生更改时,Compute Engine 会创建一个日志条目,用于捕获该状态更改。这些日志条目可通过 JSON 负载中存在的以下字段来识别:

jsonPayload.old_status
jsonPayload.new_status

例如,以下条目描述了从 OK 到新状态的状态更改:

The autoscaler is configured to scale based on a load balancing signal but
the instance group has not received any utilization data from the load
balancer or the utilization is constantly 0. Check that the load balancing
configuration is working

您可以使用这些状态消息找出自动调节程序未按预期运行的原因,或调试您之前注意到的旧问题。在本例中,您可能需要注意新的状态消息,并检查负载平衡配置是否已正确设置。

{
"insertId": "ivho6kg4icqfio",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_status": {
    "details": "The autoscaler is configured to scale based on a load
        balancing signal but the instance group has not received any
        utilization data from the load balancer or the utilization is
        constantly 0. Check that the load balancing configuration is working."
  },
  "old_status": {
    "details": "OK"
  },
  "project_id": "myproject",
  "zone_name": "us-east1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T15:11:58.076196762Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "us-east1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T15:11:57.619997893Z"

}

以下是日志中每个字段的说明:

属性
insertId 日志条目的唯一标识符。
jsonPayload 日志条目负载,表示为以 JSON 对象表示的结构。
new_status 新的自动调节程序状态。了解一些通常返回的状态消息
old_status 更改之前的旧自动调节程序状态。
instance_group_name 此日志条目适用的托管实例组的名称。
project_id 实例组的项目 ID
autoscaler_name 负责此操作的自动调节程序的名称。
zone_name 自动调节程序和实例组的地区。
resource 自动调节程序的详细信息。
type 资源的类型。对于自动调节程序,此字段将始终为 gce_autoscaler
labels 有关自动调节程序的元数据。
location 自动调节程序的地区。
autoscaler_id 服务器生成的数字自动调节程序 ID。
project_id 自动调节程序所属的项目 ID。该字段应始终为当前项目。
timestamp 日志条目所述事件发生的时间。采用 RFC 3339 UTC“Zulu”格式的时间戳,精确到纳秒。
severity 此日志的严重程度。对于自动调节程序日志,此字段始终为 "INFO"
logName 此日志条目所属日志的资源名称。对于状态更改日志,此字段将始终为 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler
receiveTimestamp Stackdriver Logging 接收日志条目的时间。采用 RFC 3339 UTC“Zulu”格式的时间戳,精确到纳秒。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档