本文提供了有助于您了解用于内部 HTTP(S) 负载平衡的日志记录和监控指标的信息。
日志记录
您可以逐个后端服务地启用日志记录功能。一个内部 HTTP(S) 负载平衡器的网址映射可引用多个后端服务,因此根据您的具体配置,您可能需要为多个后端服务启用日志记录功能。
为现有后端服务启用日志记录功能
控制台
- 转到 Google Cloud Console 中的“负载平衡”页面。
转到“负载平衡”页面 - 点击您的负载平衡器的名称。
- 点击修改 。
- 点击后端配置。
- 点击您的后端服务旁边的修改 。
- 点击高级配置(会话亲和性、连接排空超时时间)。
- 点击启用日志记录。
- 设置采样率比例。您可以设置介于
0.0
到1.0
(默认值)之间的任何值。 - 点击更新。
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.0
到1.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) 流量有用的信息。日志条目包含以下类型的信息:
- 大多数 Google Cloud 日志中显示的常规信息,例如严重程度、项目 ID、项目编号、时间戳等。
- HttpRequest 日志字段。
日志字段
日志为 LogEntry proto。
字段 | 类型 | 说明 |
---|---|---|
logName
|
字符串 |
此日志条目所属日志的资源名称。 采用 "projects/PROJECT_ID/logs/requests" 的形式。 |
timestamp
|
时间戳格式 | 请求的开始时间。 |
severity
|
LogSeverity 格式 |
日志条目的严重性。默认值为 LogSeverity.DEFAULT 。 |
httpRequest
|
HttpRequest 对象 | 一个 HttpRequest proto,用于描述要在日志中记录的 HTTP(S) 请求。 |
trace
|
字符串 |
与日志条目关联的跟踪记录的资源名称(如果有)。如果其中包含相对资源名称,则假定该名称相对于 https://tracing.googleapis.com 。示例:projects/PROJECT_ID/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
|
字符串 |
作为网址映射键的一部分配置的网址映射路径规则或路由规则。可以是 UNMATCHED 或 UNKNOWN (用作回退)。
|
backendTargetName
|
字符串 | 根据与请求匹配的网址映射路径规则或路由规则,为处理请求而选择的后端的名称。 |
backendTargetType
|
字符串 |
后端目标的类型 (BACKEND_SERVICE /UNKNOWN )。 |
backendName |
字符串 | 后端实例组或网络端点组的名称。 |
backendType
|
字符串 | 后端的类型,可以是实例组或 NEG。 |
backendScope
|
字符串 |
后端的范围(可以是区域名称或地区名称)。如果 backendName 未知,该字段可能为 UNKNOWN 。 |
backendScopeType
|
字符串 |
后端的范围 (REGION /ZONE )。如果 backendName 未知,该字段可能为 UNKNOWN 。 |
监控
内部 HTTP(S) 负载平衡将监控数据导出到 Monitoring。
监控指标具有以下用途:
- 评估负载平衡器的配置、使用情况和性能
- 问题排查
- 提高资源利用率并改善用户体验
除了 Monitoring 中的预定义信息中心,您还可以通过 Monitoring API 创建自定义信息中心、设置提醒和查询指标。
查看 Cloud Monitoring 指标
如需使用 Metrics Explorer 查看受监控资源的指标,请按照以下步骤操作:
- 在 Google Cloud Console 中,转到 Monitoring 页面。
如果您从未使用过 Cloud Monitoring,那么您在 Google Cloud Console 中首次访问 Monitoring 时,系统会自动创建一个工作区,并将您的项目与该工作区相关联。否则,如果您的项目未与工作区关联,则系统会显示一个对话框,您可以创建一个工作区,也可以将您的项目添加到现有工作区。我们建议您创建一个工作区。完成选择后,请点击添加。
- 在 Monitoring 导航窗格中,点击
Metrics Explorer。
- 确保所选标签页为指标。
- 在查找资源类型和指标字段中,从菜单中选择或者输入资源和指标的名称。在各字段中填写以下信息:
- 对于资源,选择或输入 internal_http_lb_rule。 这将选择内部 HTTP/S 负载平衡规则资源。
- 对于指标,从菜单中进行选择。
- 如需修改数据的显示方式,请使用过滤条件、分组依据和聚合器菜单。例如,您可以按资源或指标标签进行分组。如需了解详情,请参阅选择指标。
定义提醒政策
您可以创建提醒政策来监控指标的值,当这些指标违反条件时便会通知您。
如需创建监控一个或多个内部 HTTP/S 负载平衡器资源的提醒政策,请按以下步骤操作:
- 在 Google Cloud Console 中,转到 Monitoring 页面。
如果您从未使用过 Cloud Monitoring,那么您在 Google Cloud Console 中首次访问 Monitoring 时,系统会自动创建一个工作区,并将您的项目与该工作区相关联。否则,如果您的项目未与工作区关联,则系统会显示一个对话框,您可以创建一个工作区,也可以将您的项目添加到现有工作区。我们建议您创建一个工作区。完成选择后,请点击添加。
- 在 Monitoring 导航窗格中,选择 notifications 提醒,然后选择创建政策。
- 点击添加条件:
- 目标窗格中的设置指定了要监控的资源和指标。在查找资源类型和指标字段中,选择资源内部 HTTP/S 负载平衡器。接下来,从指标列表中选择一个指标。
- 提醒政策的配置窗格中的设置决定了何时触发提醒。 此窗格中的大多数字段已填充默认值。 如需详细了解此窗格中的字段,请参阅提醒政策文档中的配置。
- 点击添加。
- 如需前进到通知部分,请点击下一步。
- 可选:如需将通知添加到您的提醒政策中,请点击通知渠道。在对话框中,从菜单中选择一个或多个通知渠道,然后点击确定。
如果您要添加的通知渠道未列出,请点击管理通知渠道。系统会将您带到新浏览器标签页中的通知渠道页面。在此页面上,您可以更新已配置的通知渠道。完成更新后,返回原始标签页,点击 autorenew 刷新,然后选择要添加到提醒政策中的通知渠道。
- 如需前进到文档部分,请点击下一步。
- 点击名称,然后输入提醒政策的名称。
- 可选:点击文档,然后添加您希望包含在通知消息中的任何信息。
- 点击保存。
定义 Monitoring 自定义信息中心
您可以针对内部 HTTP(S) 负载平衡指标创建自定义 Monitoring 信息中心:
- 转到 Google Cloud Console 中的监控。
转到 Monitoring - 选择 Dashboards > Create Dashboard。
- 点击 Add Chart。
- 给图表添加一个标题。
- 选择指标和过滤条件。对于指标,资源类型为内部 HTTP/S 负载平衡器。
- 点击保存。
指标报告频率与保留
系统会每隔 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 区域或地区,如果未分配后端组,则此属性的值为特殊字符串。示例:us-central1-a 、europe-west1-b 、asia-east1 、UNKNOWN 。 |
PROXY_REGION | 内部 HTTP(S) 负载平衡器、客户端和后端所在的地区。示例:us-central1 、europe-west1 或 asia-east1 。 |
BACKEND | 传送客户端请求的后端实例组或网络端点组的名称。 |
BACKEND_TARGET | 传送客户端请求的后端服务的名称。 |
MATCHED_URL_RULE | 与客户端 HTTP(S) 请求前缀匹配的网址映射路径规则或路由规则(最多 50 个字符)。 |
整个负载平衡器均支持 Response code class fraction
指标,不再支持进一步细分。
后续步骤
- 了解有关内部 HTTP(S) 负载平衡的概念性信息
- 创建内部 HTTP(S) 负载平衡器。
- 如需了解负载平衡器可以使用的 DNS 名称选项,请参阅内部负载平衡和 DNS 名称。