本页面介绍了如何为代理网络负载均衡器配置和使用 Cloud Logging 和 Cloud Monitoring。
监控资源
下表指定了负载均衡器的资源名称。
区域级外部代理网络负载均衡器 区域级内部代理网络负载均衡器 跨区域内部代理网络负载均衡器 全球外部代理网络负载均衡器 |
传统代理网络负载均衡器 | |
---|---|---|
Logging 受监控的资源类型 | “代理网络负载均衡器规则”l4_proxy_rule |
“全球外部代理网络负载均衡器规则”tcp_ssl_proxy_rule |
Monitoring 受监控的资源类型 | “代理网络负载均衡器规则”l4_proxy_rule |
“全球外部代理网络负载均衡器规则”tcp_ssl_proxy_rule |
用于代理网络负载均衡器的日志记录
日志提供了对负载均衡器进行问题排查和监控的有用信息。系统会汇总每个连接的日志,可让您深入了解每个连接如何路由到服务后端。
使用日志无需额外费用。但是,根据您导入日志的方式,您需要按 Cloud Logging、BigQuery 或 Pub/Sub 的标准价格付费。此外,启用日志不会影响负载均衡器的性能。
日志采样和收集
系统会对离开和进入负载均衡器后端虚拟机 (VM) 实例的连接进行采样。然后,系统会处理这些采样的连接以生成日志。您可以根据 logConfig.sampleRate 参数控制系统以日志条目形式发出的连接的比例。当 logConfig.sampleRate
为 1.0
(100%) 时,表示系统会为所有连接生成日志并写入 Cloud Logging。
为新的后端服务启用日志记录功能
gcloud
使用 gcloud compute backend-services create
命令。
对于区域级外部代理网络负载均衡器和区域级内部代理网络负载均衡器,请使用以下命令:
gcloud compute backend-services create BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
对于全球外部代理网络负载均衡器、传统代理网络负载均衡器或跨区域内部代理网络负载均衡器:
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
替换以下内容:
BACKEND_SERVICE
:后端服务的名称。REGION
:要创建的后端服务的区域。SAMPLE_RATE
:只有在为此后端服务启用日志记录功能时,才能指定此字段。该字段的值必须介于
0.0 to 1.0
之间,其中0.0
表示未报告任何日志,1.0
表示记录所有连接。如果启用日志记录功能,但将采样率设置为0.0
,则相当于停用日志记录功能。默认值为1.0
。
API
向 regionBackendServices.insert
方法发出 POST
请求:
对于区域级内部代理网络负载均衡器:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于区域级外部代理网络负载均衡器:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于全球外部代理网络负载均衡器,请使用以下命令:
向 backendServices.insert
方法发出 POST
请求:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于传统代理网络负载均衡器:
向 backendServices.insert
方法发出 POST
请求:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于跨区域内部代理网络负载均衡器:
向 backendServices.insert
方法发出 POST
请求:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
请替换以下内容:
BACKEND_SERVICE
:后端服务的名称。SAMPLE_RATE
:只有在为此后端服务启用日志记录功能时,才能指定此字段。该字段的值必须介于
0.0 to 1.0
之间,其中0.0
表示未报告任何日志,1.0
表示记录所有连接。如果启用日志记录功能,但将采样率设置为0.0
,则相当于停用日志记录功能。默认值为1.0
。
为现有后端服务启用日志记录功能
gcloud
使用 gcloud
compute backend-services update
命令。
对于区域级外部代理网络负载均衡器和区域级内部代理网络负载均衡器,请使用以下命令:
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
对于全球外部代理网络负载均衡器、传统代理网络负载均衡器或跨区域内部代理网络负载均衡器:
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
替换以下内容:
BACKEND_SERVICE
:后端服务的名称。REGION
:要创建的后端服务的区域。SAMPLE_RATE
:只有在为此后端服务启用日志记录功能时,才能指定此字段。该字段的值必须介于
0.0 to 1.0
之间,其中0.0
表示未报告任何日志,1.0
表示记录所有连接。如果启用日志记录功能,但将采样率设置为0.0
,则相当于停用日志记录功能。默认值为1.0
。
API
向 regionBackendServices/patch
方法发出 PATCH
请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
对于区域级内部代理网络负载均衡器:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于区域级外部代理网络负载均衡器:
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于全球外部代理网络负载均衡器,请使用以下命令:
向 backendServices/patch
方法发出 PATCH
请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于传统代理网络负载均衡器:
向 backendServices/patch
方法发出 PATCH
请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
对于跨区域内部代理网络负载均衡器:
向 backendServices/patch
方法发出 PATCH
请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
请替换以下内容:
PROJECT_ID
:您的项目的名称。BACKEND_SERVICE
:后端服务的名称。SAMPLE_RATE
:只有在为此后端服务启用日志记录功能时,才能指定此字段。
该字段的值必须介于
0.0 to 1.0
之间,其中0.0
表示未报告任何日志,1.0
表示记录所有连接。如果启用日志记录功能,但将采样率设置为0.0
,则相当于停用日志记录功能。默认值为1.0
。
为现有后端服务启用日志记录功能
gcloud
使用 gcloud compute backend-services update
命令。
对于区域级外部代理网络负载均衡器和区域级内部代理网络负载均衡器,请使用以下命令:
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --no-enable-logging
对于全球外部代理网络负载均衡器、传统代理网络负载均衡器或跨区域内部代理网络负载均衡器:
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
替换以下内容:
BACKEND_SERVICE
:后端服务的名称。REGION
:后端服务的区域。
API
对于区域级外部代理网络负载均衡器和区域级内部代理网络负载均衡器,请使用以下命令:
向 regionBackendServices/patch
方法发出 PATCH
请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE { "logConfig": { "enable": false } }
对于全球外部代理网络负载均衡器、传统代理网络负载均衡器或跨区域内部代理网络负载均衡器:
向 backendServices/patch
方法发出 PATCH
请求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "logConfig": { "enable": false } }
请替换以下内容:
PROJECT_ID
:您的项目的名称。REGION
:后端服务的区域。BACKEND_SERVICE
:后端服务的名称。
查看日志
如果日志注入到 Cloud Logging 中,并且未通过日志路由器接收器排除,则您可以使用 Cloud Logging API 和 Google Cloud CLI 读取日志。
如需查看所有日志,请完成以下步骤。
控制台
在 Google Cloud 控制台中,转到日志浏览器页面。
选择代理网络负载均衡器规则资源类型。
选择 loadbalancing.googleapis.com/connections 日志名称。
控制台查询
在 Google Cloud 控制台中,转到日志浏览器页面。
点击显示查询切换开关。
将以下内容粘贴到查询字段中。
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
点击运行查询。
替换以下内容:
LOG_RESOURCE_TYPE
:设置为l4_proxy_rule
或tcp_ssl_proxy_rule
的日志记录受监的控资源类型。PROJECT_ID
:您的项目的名称。
查看特定后端服务的日志
如需查看特定后端服务的日志,请完成以下步骤。
控制台查询
在 Google Cloud 控制台中,转到日志浏览器页面。
点击显示查询切换开关。
将以下内容粘贴到查询字段中。
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections" resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
点击运行查询。
替换以下内容:
LOG_RESOURCE_TYPE
:设置为l4_proxy_rule
或tcp_ssl_proxy_rule
的日志记录受监的控资源类型。PROJECT_ID
:您的项目的名称。BACKEND_SERVICE_NAME
:后端服务的名称。
查看后端实例组的日志
如需查看特定后端实例组的日志,请完成以下步骤。
控制台查询
在 Google Cloud 控制台中,转到日志浏览器页面。
点击显示查询切换开关。
将以下内容粘贴到查询字段中。
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections" resource.labels.backend_group_name="BACKEND_GROUP_NAME"
点击运行查询。
替换以下内容:
LOG_RESOURCE_TYPE
:设置为l4_proxy_rule
或tcp_ssl_proxy_rule
的日志记录受监的控资源类型。PROJECT_ID
:您的项目的名称。BACKEND_GROUP_NAME
:实例组的名称。
记录的内容
日志条目包含对监控和调试流量有用的信息。日志记录包含必填字段,这些字段是每个日志记录的默认字段。
字段 | 字段格式 | 字段类型:必填或可选 | 说明 |
---|---|---|---|
severity timestamp receiveTimestamp insertID logName |
LogEntry | 需要 | 日志条目中描述的常规字段。 |
resource | MonitoredResource | 需要 | MonitoredResource 是与日志条目关联的资源类型。 MonitoredResourceDescriptor 使用类型名称和一组标签来描述 |
jsonPayload | object (Struct format) | 需要 | 以 JSON 对象表示的日志条目载荷。JSON 对象包含以下字段:
|
日志字段
日志记录包含必填字段,这些字段是每个日志记录的默认字段。
某些日志字段在给定字段中包含多段数据,即这些日志字段采用多字段格式。例如,connection
字段采用 IpConnection
格式,它在单个字段中包含来源 IP 地址和目的地 IP 地址、端口以及协议。以下记录格式表介绍了这些采用多字段格式的日志字段。
下表列出了资源 l4_proxy_rule 的所有必填日志字段。
字段 | 字段格式 | 说明 |
---|---|---|
连接 | IpConnection | 描述此连接的 5 元组。 |
startTime | 字符串 | 负载均衡器接受来自客户端的连接时的时间戳(RFC 3339 日期字符串格式)。 |
endTime | 字符串 | 客户端或后端终结连接时的时间戳(RFC 3339 日期字符串格式)。 |
bytesSent | int64 | 从服务器发送到客户端的字节数。 |
bytesReceived | int64 | 服务器从客户端接收的字节数。 |
IpConnection 字段格式
字段 | 类型 | 说明 |
---|---|---|
clientIp | 字符串 | 客户端 IP 地址 |
clientPort | int32 | 客户端端口。仅针对 TCP 和 UDP 连接设置。 |
serverIp | 字符串 | 服务器 IP 地址(转发规则 IP 地址) |
serverPort | int32 | 服务器端口。仅针对 TCP 和 UDP 连接设置。 |
protocol | int32 | IANA 协议编号 |
资源标签
下表列出了资源类型 l4_proxy_rule
的资源标签。
字段 | 类型 | 说明 |
---|---|---|
network_name | 字符串 | 负载均衡器的 VPC 网络名称。 |
project_id | 字符串 | 与相应资源关联的 Google Cloud 项目的标识符。 |
区域 | 字符串 | 在其中定义了负载均衡器的区域。 |
target_proxy_name | 字符串 | 转发规则引用的目标代理对象的名称。 |
forwarding_rule_name | 字符串 | 转发规则对象的名称。 |
loadbalancing_scheme_name | 字符串 | 负载均衡器的转发规则和后端服务的一个属性,指示负载均衡器是可用于内部流量还是外部流量。 |
backend_target_name | 字符串 | 为处理请求而选择的后端的名称。 |
backend_target_type | 字符串 | 后端目标的类型 (BACKEND_SERVICE / UNKNOWN) 。 |
backend_name | 字符串 | 后端实例组或网络端点组 (NEG) 的名称。 |
backend_type | 字符串 | 后端类型,可以是实例组或 NEG,或者未知。 当 backend_type 为 |
backend_scope | 字符串 | 后端的范围,可以是可用区名称或区域名称。如果 backend_name 未知,该字段可能为 UNKNOWN 。 |
backend_scope_type | 字符串 | 后端的范围 (REGION/ZONE )。如果 backend_name 未知,该字段可能为 UNKNOWN 。 |
监控
代理网络负载均衡器会将监控数据导出到 Cloud Monitoring。
监控指标可用于执行以下操作:
- 评估负载均衡器的配置、使用情况和性能。
- 排查问题。
- 提高资源利用率并改善用户体验。
除了 Monitoring 中的预定义信息中心以外,您还可以使用 Cloud Monitoring API 创建自定义信息中心、设置提醒和查询指标。
查看 Monitoring 信息中心
在 Google Cloud 控制台中,前往 Monitoring 页面。
如果导航窗格中出现资源,请选择资源,然后选择 Google Cloud 负载均衡器。否则,选择信息中心,然后选择名为 Google Cloud 负载均衡器的信息中心。
点击您的负载均衡器的名称。
在左侧窗格中,您可以看到此负载均衡器的各种详细信息。 在右侧窗格中,您可以看到时间序列图表。如需查看具体的细分信息,请点击细分信息。
指标报告频率和保留
每隔 1 分钟,系统就会将负载均衡器的指标批量导出到 Monitoring 中。监控数据会保留六 (6) 周。 指标基于采样的流量(采样率是动态的,且无法调整)。
默认情况下,信息中心可按 1H(1 小时)、6H(6 小时)、1D(1 天)、1W(1 周)和 6W(6 周)时间间隔提供数据分析。您可以在 6 周到 1 分钟的时间间隔内手动请求执行分析。
传统代理网络负载均衡器的指标
传统代理网络负载均衡器的以下指标会报告给 Monitoring。
指标 | 名称 | 说明 |
---|---|---|
入站流量 | tcp_ssl_proxy/ingress_bytes_count |
通过 Google Front End (GFE) 从外部端点发送到已配置的后端的字节数(以每秒字节数为单位)。 |
出站流量 | tcp_ssl_proxy/egress_bytes_count |
通过 GFE 从已配置的后端发送到外部端点的字节数(以每秒字节数为单位)。 |
打开的连接数 | tcp_ssl_proxy/open_connections |
在给定的采样时间点打开的连接数。采样间隔时间为一分钟。 |
每秒新的连接数 | tcp_ssl_proxy/new_connections |
创建的连接数(客户端成功连接到后端)。计算粒度是每分钟,但是图表会调整为显示每秒的值。如需了解详情,请参阅 Monitoring 文档。 |
每秒关闭的连接数 | tcp_ssl_proxy/closed_connections |
已关闭的连接数。计算粒度是每分钟,但是图表会调整为显示每秒的值。如需了解详情,请参阅 Monitoring 文档。 |
前端 RTT | tcp_ssl_proxy/frontend_tcp_rtt |
为客户端和 GFE 之间的每个连接测量得到的平滑往返时间 (RTT) 分布(通过 GFE 的 TCP 栈测量,每次应用层字节从 GFE 传递到客户端时)。 平滑 RTT 是一种算法,用于处理 RTT 测量中可能发生的变体和异常。 |
其他负载均衡器的指标
区域级内部代理网络负载均衡器、区域级外部代理网络负载均衡器、跨区域内部代理网络负载均衡器和全球外部代理网络负载均衡器的以下指标会报告给 Monitoring。
指标 | 名称 | 说明 |
---|---|---|
入站流量 | l4_proxy/ingress_bytes_count |
使用代理从客户端发送到后端虚拟机的字节数。每 60 秒采样一次。采样后,数据在最长 210 秒的时间内不会显示。 |
出站流量 | l4_proxy/egress_bytes_count |
使用代理从后端虚拟机发送到客户端的字节数。每 60 秒采样一次。采样后,数据在最长 210 秒的时间内不会显示。 |
每秒关闭的连接数 | l4_proxy/tcp/closed_connections_count |
使用 TCP RST 或 TCP FIN 消息终结的连接数。每 60 秒采样一次。采样后,数据在最长 210 秒的时间内不会显示。 |
过滤指标的维度
系统会为每个负载均衡器汇总指标。指标可以进一步细分为以下几个维度。
属性 | 说明 |
---|---|
后端范围 | 发起连接的实例组的范围(区域或地区)。 |
后端区域 | 如果实例组为可用区级实例组,则指为连接提供服务的实例组所在的可用区。 |
后端地区 | 如果实例组为区域级实例组,则指为连接提供服务的实例组所在的区域。 |
代理所在的洲 | 终结了用户 TCP/SSL 连接的 GFE 所在的大洲,例如 America 、Europe 、Asia 。
|
实例组 | 接收用户连接的实例组的名称。 |
转发规则 | 用于连接到 GFE 的转发规则的名称。 |
客户所在的国家/地区 | 用户所在国家/地区的名称。 |
后续步骤
- 如需了解 SSL 政策的工作原理,请参阅 SSL 政策概览。
- 如需了解外部代理网络负载均衡器的工作原理,请参阅外部代理网络负载均衡器概览。
- 如需了解内部代理网络负载均衡器的工作原理,请参阅内部代理网络负载均衡器概览。