后端服务的日志和指标

本文档介绍了如何配置 Cloud LoggingCloud Monitoring 并将其与传统版应用负载均衡器、全球外部应用负载均衡器和 Cloud CDN 配合使用。

日志记录

您可以为外部应用负载均衡器后端服务启用和停用日志记录功能,还可以查看其日志。对于具有后端存储桶的外部应用负载均衡器,日志记录功能会自动启用且无法停用。

您可以为每个后端服务启用或停用日志记录功能。您可以配置是记录所有请求还是记录随机采样的一小部分请求。

您必须确保没有适用于外部应用负载均衡器的日志排除项。如需了解如何验证是否允许 Cloud HTTP Load Balancer 日志,请参阅排除过滤器

日志采样和收集

系统会对由负载均衡器后端虚拟机 (VM) 实例处理的请求(以及相应的响应)进行采样。然后,系统会处理这些采样的请求以生成日志。您可以根据 logConfig.sampleRate 参数控制系统以日志条目形式发出的请求的比例。 当 logConfig.sampleRate1.0 (100%) 时,表示系统会为所有请求生成日志并写入 Cloud Logging。

可选字段

日志记录包含必填字段和可选字段。记录的内容部分列出了哪些字段是可选字段,以及哪些是必填字段。所有必填字段始终包含在内。您可以自定义要保留哪些可选字段。

  • 如果您选择包括所有可选字段,则日志记录格式中的所有可选字段都将包含在日志中。向记录格式添加新的可选字段后,日志会自动包含新字段。

  • 如果您选择排除所有可选字段,则所有可选字段都将被省略。

  • 如果您选择自定义,则可以指定要包含的可选字段,例如 tls.protocol,tls.cipher,orca_load_report.cpu_utilization,orca_load_report.mem_utilization

如需了解如何自定义可选字段,请参阅在新的后端服务上启用日志记录

针对新的后端服务启用日志记录功能

控制台

  1. 在 Google Cloud 控制台中,前往负载均衡页面。

    转到“负载均衡”

  2. 点击您的负载均衡器的名称。

  3. 点击修改

  4. 点击后端配置

  5. 选择创建后端服务

  6. 填写必填的后端服务字段。

  7. 日志记录部分,选中启用日志记录复选框。

  8. 设置采样率比例。您可以设置 0.01.0 的数字,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。默认值为 1.0

  9. 可选:如需在日志中包含所有可选字段,请在可选字段部分中,点击包括所有可选字段

  10. 如需完成后端服务的修改,请点击更新

  11. 如需完成负载均衡器修改,请点击更新

gcloud

使用 gcloud compute backend-services create 命令创建后端服务并启用日志记录功能。

gcloud compute backend-services create BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

gcloud compute backend-services create 命令支持以下字段:

  • --global 表示后端服务是全球性的。 此字段用于与全球外部应用负载均衡器搭配使用的后端服务。
  • --enable-logging 表示对该后端服务启用日志记录功能。
  • --logging-sample-rate 接受从 0.01.0 值,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。此字段仅在搭配 --enable-logging 参数使用时才有意义。启用日志记录功能的情况下,如果将采样率设置为 0.0,那么效果将相当于停用日志记录功能。默认值为 1.0
  • --logging-optional 允许您指定要包括在日志中的可选字段。 只有全球外部应用负载均衡器支持这些字段。

    • INCLUDE_ALL_OPTIONAL:包括所有可选字段。

    • EXCLUDE_ALL_OPTIONAL(默认值):排除所有可选字段。

    • CUSTOM:包括您在 OPTIONAL_FIELDS 中指定的可选字段的自定义列表。

  • --logging-optional-fields 允许您以逗号分隔列表的形式指定要包括在日志中的可选字段。

    例如,仅当 LOGGING_OPTIONAL_MODE 设置为 CUSTOM 时才能设置 tls.protocol,tls.cipher。如果您使用自定义指标并希望记录 ORCA 负载报告的元素,请将 LOGGING_OPTIONAL_MODE 设置为 CUSTOM,并在 OPTIONAL_FIELDS 字段中指定必须记录哪些元素。例如 orca_load_report.cpu_utilization,orca_load_report.mem_utilization

针对现有后端服务启用日志记录功能

控制台

  1. 在 Google Cloud 控制台中,前往负载均衡页面。

    转到“负载均衡”

  2. 点击您的负载均衡器的名称。

  3. 点击修改

  4. 点击后端配置

  5. 点击后端服务旁边的 修改

  6. 日志记录部分,选中启用日志记录复选框。

  7. 采样率字段中,设置采样概率。您可以设置 0.01.0 的数字,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。默认值为 1.0

  8. 可选:如需在日志中包含所有可选字段,请在可选字段部分中,点击包括所有可选字段

  9. 如需完成后端服务的修改,请点击更新

  10. 如需完成负载均衡器修改,请点击更新

gcloud

使用 gcloud compute backend-services update 命令在现有后端服务上启用日志记录。

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

其中

  • --global 表示后端服务是全球性的。 此字段用于与全球外部应用负载均衡器搭配使用的后端服务。
  • --enable-logging 表示对该后端服务启用日志记录功能。
  • --logging-sample-rate 接受从 0.01.0 值,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。只有搭配使用 --enable-logging 参数时才有意义。启用日志记录功能的情况下,如果将采样率设置为 0.0,那么效果将相当于停用日志记录功能。默认值为 1.0
  • --logging-optional 允许您指定要包括在日志中的可选字段。 只有全球外部应用负载均衡器支持这些字段。

    • INCLUDE_ALL_OPTIONAL:包括所有可选字段。

    • EXCLUDE_ALL_OPTIONAL(默认值):排除所有可选字段。

    • CUSTOM:包括您在 OPTIONAL_FIELDS 中指定的可选字段的自定义列表。

  • --logging-optional-fields 允许您以逗号分隔列表的形式指定要包括在日志中的可选字段。

    例如 tls.protocol,tls.cipher。只有当 LOGGING_OPTIONAL_MODE 设置为 CUSTOM 时才能设置此项。 如果您使用自定义指标并希望记录 ORCA 负载报告的元素,请将 LOGGING_OPTIONAL_MODE 设置为 CUSTOM,并在 OPTIONAL_FIELDS 字段中指定必须记录哪些元素。例如 orca_load_report.cpu_utilization,orca_load_report.mem_utilization

针对现有后端服务停用或修改日志记录功能

控制台

  1. 在 Google Cloud 控制台中,前往负载均衡页面。

    转到“负载均衡”

  2. 点击您的负载均衡器的名称。

  3. 点击修改

  4. 点击后端配置

  5. 点击后端服务旁边的 修改

  6. 如需完全停用日志记录功能,请在日志记录部分中清除启用日志记录复选框。

  7. 如果要保持启用日志记录功能,可以设置其他采样率比例。您可以设置 0.01.0 的数字,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。默认值为 1.0。 例如,0.2 表示 20% 的采样请求会生成日志。

  8. 如需完成后端服务的修改,请点击更新

  9. 如需完成负载均衡器修改,请点击更新

gcloud:全局模式

使用 gcloud compute backend-services update 命令停用后端服务的日志记录功能。

完全停用日志记录功能

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

其中

  • --global 表示后端服务是全球性的。 此字段用于与全球外部应用负载均衡器搭配使用的后端服务。
  • --no-enable-logging 表示对该后端服务停用日志记录功能。

针对现有后端服务启用日志记录可选字段

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

其中

  • --logging-sample-rate 接受从 0.01.0 值,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。只有搭配使用 --enable-logging 参数时才有意义。启用日志记录功能的情况下,如果将采样率设置为 0.0,那么效果将相当于停用日志记录功能。默认值为 1.0
  • --logging-optional 允许您指定要包括在日志中的可选字段:

    • INCLUDE_ALL_OPTIONAL:包括所有可选字段。

    • EXCLUDE_ALL_OPTIONAL(默认值):排除所有可选字段。

    • CUSTOM:包括您在 OPTIONAL_FIELDS 中指定的可选字段的自定义列表。

  • --logging-optional-fields 允许您以逗号分隔列表的形式指定要包括在日志中的可选字段。

    例如,仅当 LOGGING_OPTIONAL_MODE 设置为 CUSTOM 时才能设置 tls.protocol,tls.cipher。 如果您使用自定义指标并希望记录 ORCA 负载报告的元素,请将 LOGGING_OPTIONAL_MODE 设置为 CUSTOM,并在 OPTIONAL_FIELDS 字段中指定必须记录哪些元素。例如 orca_load_report.cpu_utilization,orca_load_report.mem_utilization

将日志记录可选模式从“自定义”更新为其他模式

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=

其中

  • --logging-optional 允许您指定要包括在日志中的可选字段:

    • INCLUDE_ALL_OPTIONAL:包括所有可选字段。

    • EXCLUDE_ALL_OPTIONAL(默认值):排除所有可选字段。

  • 必须明确配置 --logging-optional-fields(如该示例所示)才能清除所有现有的 CUSTOM 字段。该 API 不支持将非 CUSTOM 模式与 CUSTOM 字段混用。

修改日志采样率

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --logging-sample-rate=VALUE

gcloud:经典模式

使用 gcloud compute backend-services update 命令停用后端服务的日志记录功能。

完全停用日志记录功能

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

其中

  • --global 表示后端服务是全球性的。 此字段用于与传统应用负载均衡器搭配使用的后端服务。
  • --no-enable-logging 表示对该后端服务停用日志记录功能。

修改日志采样率

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --logging-sample-rate=VALUE

其中

  • --global 表示后端服务是全球性的。 此字段用于与传统应用负载均衡器搭配使用的后端服务。
  • --logging-sample-rate 接受从 0.01.0 值,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。只有搭配使用 --enable-logging 参数时才有意义。启用日志记录功能的情况下,如果将采样率设置为 0.0,那么效果将相当于停用日志记录功能。

查看日志


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


HTTP(S) 日志将依次按照转发规则网址映射编入索引。

如需查看日志,请进入 Logs Explorer 页面:

转到日志浏览器

  • 如需查看所有日志,请在资源过滤条件菜单中选择 Cloud HTTP 负载均衡器 > 所有转发规则

  • 如需查看一条转发规则的日志,请选择一个转发规则名称。

  • 如需查看一个网址映射的日志,请选择一条转发规则,然后选择一个网址映射。

布尔值类型的日志字段通常仅在其值为 true 时才会显示。 如果某个布尔值字段的值为 false,则日志中将不会出现该字段。

系统为日志字段强制执行 UTF-8 编码。非 UTF-8 字符将被替换为问号。 对于传统应用负载均衡器和全球外部应用负载均衡器,您可以使用资源日志 (resource.type="http_load_balancer") 导出基于日志的指标。这些指标是基于应用负载均衡器规则(基于日志的指标)资源 (l7_lb_rule) 创建的,此资源位于 Cloud Monitoring 信息中心中(而不是 https_lb_rule 资源下)。

记录的内容

外部应用负载均衡器日志条目包含对监控和调试 HTTP(S) 流量有用的信息。日志记录包含必填字段,这些字段是每个日志记录的默认字段。

日志记录包含可选字段,用于添加有关 HTTP(S) 流量的其他信息。可以省略可选字段,以节省存储费用。

某些日志字段采用多字段格式,在给定字段中包含多段数据。例如,tls 字段采用 TlsInfo 格式,其中包含 earlyDataRequest 字段。 以下记录格式表介绍了这些采用多字段格式的字段。

字段 字段格式 字段类型:必填或可选 说明
severity
insertID
logName
LogEntry 必需 日志条目中描述的常规字段。
时间戳 string (Timestamp format) 可选 第一层 GFE 收到请求的时间。
httpRequest