控制平面日志记录和监控
本文档演示了如何使用 Cloud Logging 和 Cloud Monitoring 来查看 Cloud Service Mesh 控制平面的日志和指标。
使用服务网格可以观察进出服务的流量,从而实现更丰富的监控和调试,而无需更改服务本身的代码。日志条目可提供对服务网格进行问题排查的重要信息,包括成功连接和断开连接的记录、配置不正确的客户端的错误报告以及 API 资源冲突提醒。
使用场景
以下是控制平面日志记录和监控的三个用例:
- 适用于 Cloud Service Mesh 控制平面的 Cloud Logging:您可以使用 Logging 的所有内置功能安全地存储、搜索和分析所有 Cloud Service Mesh 日志记录数据和事件并为其设置提醒。当 Envoy 或 gRPC 客户端连接或断开连接以及检测到配置问题时,Cloud Service Mesh 都会将日志导出到 Logging。
- 适用于 Cloud Service Mesh 控制平面的 Cloud Monitoring:Cloud Service Mesh 会将用于指示连接到 Cloud Service Mesh 控制平面的客户端数量的关键指标导出到 Monitoring。您可以在 Monitoring 中设置信息中心,并实时地直观呈现此指标,以便在客户端连接和断开连接时监控网格的运行状况。您还可以为网格设置 SLO。
- 立即排查问题:默认情况下,Cloud Service Mesh 会将遥测结果导出到 Logging 和 Monitoring。由于您无需进行额外设置即可配置日志记录和监控,因此您可以随时排查问题,包括在首次设置网格时。
查看日志
如需查看 Cloud Service Mesh 日志,请使用日志浏览器。以下部分介绍查看 Cloud Service Mesh 日志的示例查询,但您可以使用上一个链接创建自己的查询。
在 Google Cloud 控制台中,转到日志浏览器页面。
- 在资源列表中,
- 如果您使用服务路由 API,请选择
Gateway Scope
或Mesh
。 - 如果您使用的是旧版 API,请选择
GCE Network
。
- 如果您使用服务路由 API,请选择
- 在日志名称列表中,选择
trafficdirector.googleapis.com/events
。 - 点击运行查询。
Cloud Service Mesh 日志条目字段
字段 | 说明 |
---|---|
node_id |
xDS 客户端节点的 ID,由 xDS 客户端提供。 |
client_type |
连接到 Cloud Service Mesh 的 xDS 客户端的类型。可能的值:
|
node_ip |
客户端提供的节点的 IP 地址。 |
api_version |
xDS 客户端用于连接到 Cloud Service Mesh 的 xDS API 版本。可能的值有 V2 和 V3 。 |
description |
事件的文本说明,以及其他详细信息。 |
日志条目示例
日志条目示例 | 说明 |
---|---|
"Cloud Service Mesh could not find any configuration for xDS client." | 当 xDS 客户端因为没有配置而被 Cloud Service Mesh 拒绝时,系统会生成此日志。这可能是由于 Cloud Service Mesh 相关 API 资源设置不完整所致。 |
"Client has successfully connected." | 每当客户端成功连接到 Cloud Service Mesh 时,系统都会生成此类日志消息。 |
"Client has successfully disconnected." | 每当已建立连接的客户端与 Cloud Service Mesh 断开连接时,系统都会生成此类日志消息。 |
"TRAFFICDIRECTOR_INTERCEPTION_PORT metadata variable is not set. Routing configuration for the interception listener exists, but will be ignored." | 如果 Cloud Service Mesh 资源配置正确,但没有在 xDS 客户端节点元数据中设置 TRAFFICDIRECTOR_INTERCEPTION_PORT 变量,则系统会生成此类日志消息,因此无法将此配置添加到客户端。 |
"Interception listener is built on the given port 15001, but routing configuration does not exist for it." | 如果在 xDS 客户端节点元数据中设置了 TRAFFICDIRECTOR_INTERCEPTION_PORT 变量,但没有为 Cloud Service Mesh 配置任何资源来生成完整的 xDS 响应,则系统会生成此类日志消息。 |
"Sending ADS response from Cloud Service Mesh failed. Last discovery request from the node had an incorrect version and/or nonce." | 当 Cloud Service Mesh 由于来自 xDS 客户端的通信被损坏而无法正确处理 xDS 响应时,就会生成此类日志消息。此消息表明客户端存在实现错误。我们建议检查客户端的日志。 |
“客户端正在向后端服务 backend_service_id 发送跨区域流量。来源区域:source_region
目标区域:destination_region1, destination_region2 ” |
当客户端向 Cloud Service Mesh 报告其从来源区域向一个或多个目标区域发送跨区域流量时,就会生成此类日志消息。 |
查看指标
Cloud Service Mesh 会将三个指标导出到 Cloud Monitoring:xDS API 连接的串流、请求数和按区域划分的请求数。xDS API 连接的串流表示连接到控制平面的客户端数量;请求数表示发送到后端服务的请求数量,按来源区域、目标区域和请求状态分组。按可用区计数的请求数量表示发送到后端服务的请求数(按来源可用区、目标可用区和请求状态分组)。如需查看这些指标,请使用 Metrics Explorer。
如需查看 Cloud Service Mesh 指标,请执行以下操作:
在 Google Cloud 控制台中,转到 Metrics Explorer 页面。
- 在资源类型列表中,选择一个资源。
- 如果您使用服务路由 API,请选择
Gateway Scope
或Mesh
。 - 如果您使用的是旧版 API,请选择
Network
。
- 如果您使用服务路由 API,请选择
- 在指标列表中,选择
connected_clients
。 - 返回到资源类型列表,然后选择
Compute Engine Backend Service
。 - 在指标列表中,选择
Request count
或Request count by zone
。
或者,您可以使用查询来查看跨区域请求计数:
- 选择 MQL。
- 在该字段中输入以下示例查询:
fetch gce_backend_service | metric 'trafficdirector.googleapis.com/xds/server/request_count' | filter ( ne(metric.source_region, metric.destination_region)) | align rate(1m) | every 1m | group_by [metric.source_region, metric.destination_region, resource.backend_service_id], [value_request_count_aggregate: aggregate(value.request_count)]
- 点击运行查询。
设置基于日志的指标和提醒
以下步骤要求您设置基于日志的指标。如需详细了解如何设置基于日志的指标,请参阅概览。
您可以配置提醒,以便在包含的日志中显示用户指定的消息时收到通知。如果发生意外情况,这些提醒可以通知操作者。例如,如果 Cloud Service Mesh 配置更改导致 API 资源冲突,您会收到有关错误消息的提醒。如需为基于日志的指标设置提醒,请参阅配置图表和提醒。