内部 HTTP(S) 负载平衡日志记录和监控

本文提供了有助于您了解用于内部 HTTP(S) 负载平衡的日志记录和监控指标的信息。

日志记录

您可以逐个后端服务地启用日志记录功能。一个内部 HTTP(S) 负载平衡器的网址映射可引用多个后端服务,因此根据您的具体配置,您可能需要为多个后端服务启用日志记录功能。

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

控制台

  1. 转到 Google Cloud Console 中的“负载平衡”页面。
    转到“负载平衡”页面
  2. 点击您的负载平衡器的名称。
  3. 点击修改
  4. 点击后端配置
  5. 点击您的后端服务旁边的修改
  6. 点击高级配置(会话亲和性、连接排空超时时间)
  7. 点击启用日志记录
  8. 设置采样率比例。您可以设置介于 0.01.0(默认值)之间的任何值。
  9. 点击更新

gcloud

使用 gcloud compute instance-templates create 命令更新后端服务以启用日志记录功能。

gcloud compute backend-services update backend-service \
    --enable-logging \
    --logging-sample-rate=rate \
    --region=region

其中

  • --enable-logging 表示对该后端服务启用日志记录功能。
  • --logging-sample-rate 接受介于 0.01.0 之间的值,其中 0.0 表示不在日志中记录任何请求,1.0 表示在日志中记录所有请求。只有搭配使用 --enable-logging 参数时才有意义。启用日志记录功能的情况下,如果将采样率设置为 0.0,那么效果将相当于停用日志记录功能。

为后端服务启用日志记录功能后,每个 HTTP(S) 请求都会通过 Cloud Logging 记录到日志中。

如何查看日志

如需查看日志,请转到日志查看器

内部 HTTP(S) 负载平衡器日志将依次按照网络和地区编入索引。

  • 如需查看所有内部 HTTP(S) 负载平衡器的日志,请在第一个下拉菜单中选择内部 HTTP/S 负载平衡规则
  • 如需仅查看一个网络的日志,请选择内部 HTTP/S 负载平衡规则,然后再选择网络的名称。
  • 如需仅查看网络中一个地区的日志,请选择内部 HTTP/S 负载平衡规则 > network > region

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

系统为日志字段强制执行 UTF-8 编码。非 UTF-8 字符将被替换为问号。

您可以为资源日志 (resource.type="internal_http_lb_rule) 配置导出基于日志的指标的作业。这些指标是基于“内部 HTTP/S 负载平衡规则(基于日志的指标)”资源创建的,您可以在 Cloud Monitoring 信息中心下找到该资源:

转到“监控”

系统将在日志中记录的内容

内部 HTTP(S) 负载平衡日志条目包含对监控和调试 HTTP(S) 流量有用的信息。这些日志条目包含以下类型的信息:

  • 大多数 GCP 日志中会显示的常规信息,例如严重性、项目 ID、项目编号、时间戳等。
  • HttpRequest 日志字段。

日志字段

日志为 LogEntry proto

字段 类型 说明
logName 字符串 此日志条目所属日志的资源名称。
采用 "projects/[PROJECT_ID]/logs/requests" 的形式。
timestamp Timestamp 格式 请求的开始时间。
severity LogSeverity 格式 日志条目的严重性。默认为 LogSeverity.DEFAULT
httpRequest HttpRequest 对象 一个 HttpRequest proto,用于描述要在日志中记录的 HTTP(S) 请求。
trace 字符串 与日志条目关联的跟踪记录的资源名称(如果有)。如果其中包含相对资源名称,则假定该名称相对于 https://tracing.googleapis.com。示例:projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
spanId 字符串 与日志条目相关联的跟踪记录内的 Span ID。对于 Trace span,这与 Trace API v2 所用格式相同:一个 8 字节数组的十六进制编码,长度为 16 个字符,例如 000000000000004a
resource MonitoredResource 对象 与此日志条目关联的受监控资源。请参阅 MonitoredResource 对象

MonitoredResource

字段 类型 说明
networkName 字符串 负载平衡器的 VPC 网络名称。
region 字符串 负载平衡器所在的 Google Cloud 地区的名称。
urlMapName 字符串 配置为选择一项后端服务的网址映射对象的名称。
forwardingRuleName 字符串 转发规则对象的名称。
targetProxyName 字符串 转发规则引用的目标代理对象的名称。
matchedUrlPathRule 字符串 作为网址映射键的一部分配置的网址映射路径规则或路由规则。可以是 UNMATCHEDUNKNOWN(用作回退)。
  • UNMATCHED 表示因不符合网址路径规则而使用默认路径规则的请求。
  • UNKNOWN 表示内部错误。
backendTargetName 字符串 根据与请求匹配的网址映射路径规则或路由规则,为处理请求而选择的后端的名称。
backendTargetType 字符串 后端目标的类型 (BACKEND_SERVICE/UNKNOWN)。
backendName 字符串 后端实例组或网络端点组 (NEG) 的名称。
backendType 字符串 后端的类型,可以是实例组或 NEG。
backendScope 字符串 后端的范围(可以是地区名称或区域名称)。如果 backendName 未知,该字段可能为 UNKNOWN
backendScopeType 字符串 后端的范围 (REGION/ZONE)。如果 backendName 未知,该字段可能为 "UNKNOWN"

监控

内部 HTTP(S) 负载平衡将监控数据导出到 Monitoring

监控指标具有以下用途:

  • 评估负载平衡器的配置、使用情况和性能
  • 问题排查
  • 提高资源利用率并改善用户体验

除了 Monitoring 中的预定义信息中心,您还可以通过 Monitoring API 创建自定义信息中心、设置提醒和查询指标。

查看 Cloud Monitoring 指标

如需使用 Metrics Explorer 查看受监控资源的指标,请执行以下操作:

  1. 在 Google Cloud Console 中,转到 Monitoring 或使用下面的按钮:
    转到 Monitoring
  2. 在 Monitoring 导航窗格中,点击 Metrics Explorer
  3. 确保所选标签页为指标
  4. 点击 Find resource type and metric 对应的框,然后从菜单中选择或者输入资源和指标的名称。在此文本框的各字段中填写以下信息:
    1. 对于资源,选择或输入 internal_http_lb_rule。 这将选择内部 HTTP/S 负载平衡规则资源。
    2. 对于指标,从菜单中进行选择。
  5. 使用 FilterGroup ByAggregator 菜单修改数据的显示方式。例如,您可以按资源或指标标签进行分组。如需了解详情,请参阅选择指标

定义提醒政策

您可创建提醒政策来监控指标的值,当这些指标违反条件时便会通知您。创建用于监控一个或多个内部 HTTP/S 负载平衡器资源的提醒政策的常规步骤如下:

  1. 在 Google Cloud Console 中,转到 Monitoring

    转到 Monitoring

  2. 在 Monitoring 导航窗格中,选择 提醒,然后选择创建政策
  3. 点击添加条件
    1. 目标窗格中的设置指定了要监控的资源和指标。点击相应文本框以启用菜单,然后选择内部 HTTP/S 负载平衡器资源。接下来,从指标列表中选择一个指标。
    2. 提醒政策的配置窗格中的设置决定了何时触发提醒。 此窗格中的大多数字段已填充默认值。 如需详细了解此窗格中的字段,请参阅提醒政策文档中的配置
    3. 点击添加
  4. 如需前进到通知部分,请点击下一步
  5. 可选:如需将通知添加到您的提醒政策中,请点击通知渠道。在对话框中,从菜单中选择一个或多个通知渠道,然后点击确定

    如果您要添加的通知渠道未列出,请点击管理通知渠道。系统会将您带到新浏览器标签页中的通知渠道页面。在此页面上,您可以更新已配置的通知渠道。完成更新后,返回原始标签页,点击刷新 ,然后选择要添加到提醒政策中的通知渠道。

  6. 如需前进到文档部分,请点击下一步
  7. 点击名称,然后输入提醒政策的名称。
  8. 可选:点击文档,然后添加您希望包含在通知消息中的任何信息。
  9. 点击保存
如需了解详情,请参阅提醒政策

定义 Monitoring 自定义信息中心

您可以针对内部 HTTP(S) 负载平衡指标创建自定义 Monitoring 信息中心:

  1. 转到 Google Cloud Console 中的 Monitoring
    转到 Monitoring
  2. 选择 Dashboards > Create Dashboard
  3. 点击 Add Chart
  4. 给图表添加一个标题。
  5. 选择指标和过滤条件。对于指标,资源类型为内部 HTTP/S 负载平衡器
  6. 点击保存

指标报告频率与保留

系统会每隔 1 分钟将负载平衡器的指标批量导出到 Monitoring 中。监控数据会保留六 (6) 周。 默认情况下,信息中心可按 1H(1 小时)、6H(6 小时)、1D(1 天)、1W(1 周)和 6W(6 周)时间间隔提供数据分析。您可以在从 1 分钟到 6 周的任何时间间隔内手动请求执行分析。

内部 HTTP(S) 负载平衡器的监控指标

内部 HTTP(S) 负载平衡器的以下指标会报告给 Monitoring

指标 FQDN 说明
请求数 loadbalancing.googleapis.com/https/internal/request_count 内部 HTTP(S) 负载平衡器传送的请求数
请求字节数 loadbalancing.googleapis.com/https/internal/request_bytes 以请求形式从客户端发送到内部 HTTP(S) 负载平衡器的字节数
响应字节数 loadbalancing.googleapis.com/https/internal/response_bytes 以响应形式从内部 HTTP(S) 负载平衡器发送到客户端的字节数
总延迟时间 loadbalancing.googleapis.com/https/internal/total_latencies 在从代理收到请求的第一个字节到代理发送响应的最后一个字节这段时间内测得的延迟时间分布(以毫秒为计量单位)。
后端延迟时间 loadbalancing.googleapis.com/https/internal/backend_latencies 在从代理向后端发送请求的第一个字节到代理收到后端响应的最后一个字节这段时间内测得的延迟时间分布(以毫秒为计量单位)。

内部 HTTP(S) 负载平衡器指标的过滤维度

系统会为每个内部 HTTP(S) 负载平衡器汇总指标。您可以按照以下维度过滤汇总的指标:

属性 说明
BACKEND_SCOPE 传送客户端请求的后端组所在的 Google Cloud Platform 地区或区域,如果未分配后端组,则此属性的值为特殊字符串。示例:us-central1-aeurope-west1-basia-east1UNKNOWN
PROXY_REGION 内部 HTTP(S) 负载平衡器、客户端和后端所在的区域。示例:us-central1europe-west1asia-east1
BACKEND 传送客户端请求的后端实例组或网络端点组的名称
BACKEND_TARGET 传送客户端请求的后端服务的名称
MATCHED_URL_RULE 与客户端 HTTP(S) 请求前缀匹配的网址映射路径规则或路由规则(最多 50 个字符)

整个负载平衡器均支持 Response code class fraction 指标,不再支持进一步细分。

后续步骤