控制平面日志记录和监控

本文档演示了如何使用 Cloud LoggingCloud Monitoring 来查看 Cloud Service Mesh 控制平面的日志和指标。

使用服务网格可以观察进出服务的流量,从而实现更丰富的监控和调试,而无需更改服务本身的代码。日志条目可提供对服务网格进行问题排查的重要信息,包括成功连接和断开连接的记录、配置不正确的客户端的错误报告以及 API 资源冲突提醒。

使用场景

以下是控制平面日志记录和监控的三个用例:

  • 适用于 Cloud Service Mesh 控制平面的 Cloud Logging:您可以安全地存储、搜索、分析您的所有 Cloud Service Mesh 使用 Cloud SQL 的所有内置功能来记录数据和事件, Logging。当 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 日志的示例查询,但您可以使用上一个链接创建自己的查询。

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    前往日志浏览器

  2. 资源列表中,
    • 如果您使用服务路由 API,请选择 Gateway ScopeMesh
    • 如果您使用的是旧版 API,请选择 GCE Network
  3. 日志名称列表中,选择 trafficdirector.googleapis.com/events
  4. 点击运行查询

Cloud Service Mesh 日志条目字段

字段 说明
node_id xDS 客户端节点的 ID,由 xDS 客户端提供。
client_type 连接到 Cloud Service Mesh 的 xDS 客户端的类型。可能的值:
  • ENVOY
  • GRPC-JAVA
  • GRPC-C++
  • GRPC-PYTHON
  • GRPC-GO
  • UNKNOWN
node_ip 客户端提供的节点的 IP 地址。
api_version xDS 客户端用于连接到 Cloud Service Mesh 的 xDS API 版本。 可能的值有 V2V3
description 事件的文本说明,以及其他详细信息。

日志条目示例

日志条目示例 说明
“Cloud Service Mesh 无法找到 xDS 客户端的任何配置。” 当 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 资源时,系统会生成此类日志消息。 配置正确,但 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 响应。
“从 Cloud Service Mesh 发送 ADS 响应失败。Last discovery request from the node had an incorrect version and/or nonce." 当 Cloud Service Mesh 可以 由于来自 的通信损坏,无法正确处理 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 指标,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Metrics Explorer 页面。

    打开 Metrics Explorer

  2. 资源类型列表中,选择一个资源。
    • 如果您使用服务路由 API,请选择 Gateway ScopeMesh
    • 如果您使用的是旧版 API,请选择 Network
  3. 指标列表中,选择 connected_clients
  4. 返回到资源类型列表,然后选择 Compute Engine Backend Service
  5. 指标列表中,选择 Request countRequest count by zone

或者,您可以使用查询来查看跨区域请求计数:

  1. 选择 MQL
  2. 在该字段中输入以下示例查询:
    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)]
    
  3. 点击运行查询

设置基于日志的指标和提醒

以下步骤要求您设置基于日志的指标。如需详细了解如何设置基于日志的指标,请参阅概览

您可以配置提醒,以便在包含的日志中显示用户指定的消息时收到通知。如果发生意外情况,这些提醒可以通知操作者。例如,如果 Cloud Service Mesh 配置更改导致 API 资源冲突,您会收到有关错误消息的提醒。如需为基于日志的指标设置提醒,请参阅配置图表和提醒