GCP HTTPS LoadBalancer 访问日志和 istio 日志的区别

Difference between GCP HTTPS LoadBalancer access logs and istio logs

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

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

Google Cloud Platform will change the default behavior of HTTP(S) Load Balancing such that logging is no longer enabled by default.

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

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

HTTP(S) loadbalancer logs 不同,包括:

What is logged

HTTP(S) Load Balancing log entries contain information useful for monitoring and debugging your HTTP(S) traffic. Log entries contain the following types of information:

  • General information shown in most GCP logs, such as severity, project ID, project number, timestamp, and so on.
  • HttpRequest log fields. However, HttpRequest.protocol and HttpRequest.latency are not populated for HTTP(S) Load Balancing Cloud Logging logs.
  • a statusDetails field inside the structPayload. This field holds a string that explains why the load balancer returned the HTTP status that it did. The tables below contain further explanations of these log strings.

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

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

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

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

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

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

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

希望对您有所帮助。