首页 > 解决方案 > GCP HTTPS LoadBalancer 访问日志和 istio 日志的区别

问题描述

我有几个手动部署的 GKE 集群(手动部署,而不是GKE 中的 Google Cloud 提供istio的托管)istio

我最近收到了一封来自 Google 的电子邮件,通知我

Google Cloud Platform 将更改 HTTP(S) 负载平衡的默认行为,以便默认情况下不再启用日志记录。

由于我的 GKE 集群为istio-ingressgateway资源创建 HTTPS LB,是否有任何与 HTTPS LB 有关的日志记录我在日志中看不到istio

标签: logginggoogle-cloud-platformload-balancingistio

解决方案


对于istio到达您的入口网关的每个连接请求,访问日志都是可见的。

HTTP(S) 负载均衡器日志不同,包括:

记录什么

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

  • 大多数 GCP 日志中显示的一般信息,例如严重性、项目 ID、项目编号、时间戳等。
  • HttpRequest 日志字段。但是, HttpRequest.protocol 不会 HttpRequest.latency 为 HTTP(S) 负载平衡 Cloud Logging 日志填充。
  • 中的一个 statusDetails 字段 structPayload。该字段包含一个字符串,用于解释负载均衡器返回它所做的 HTTP 状态的原因。下表包含对这些日志字符串的进一步说明。

当您禁用 HTTP(S) LB 日志时,istio 仍将记录所有到达 istio 入口网关的流量,并且这些日志将可在 envoy 日志中访问。

但是,与从未到达 istio 入口网关的 LoadBalancer 级别终止的流量相关的日志可能不会被记录。

因此,例如,与您的任何后端都不匹配并且在负载均衡器上终止的请求可能不会留下日志。

如果您希望拥有更多日志并确保没有任何遗漏,您应该启用 HTTP(S) LB 日志。否则禁用这些日志会减少日志量,包括与 istio 日志重叠的冗余日志。

有关 HTTP(S) LB 的更多信息,请访问 Google 云文档页面

有关 Istio 日志的更多信息,请访问 Istio 文档页面

有关 GKE istio 插件的信息,请访问 Google 云文档页面

希望能帮助到你。


推荐阅读