logging - GCP HTTPS LoadBalancer 访问日志和 istio 日志的区别
问题描述
我有几个手动部署的 GKE 集群(手动部署,而不是GKE 中的 Google Cloud 提供istio
的托管)istio
我最近收到了一封来自 Google 的电子邮件,通知我
Google Cloud Platform 将更改 HTTP(S) 负载平衡的默认行为,以便默认情况下不再启用日志记录。
由于我的 GKE 集群为istio-ingressgateway
资源创建 HTTPS LB,是否有任何与 HTTPS LB 有关的日志记录我在日志中看不到istio
?
解决方案
对于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 云文档页面。
希望能帮助到你。
推荐阅读
- javascript - 如何安排事件列表
- ios - 在 xcode 12.4 中使用聚合目标构建 xcframework
- c# - 为什么我会为步骤“鉴于我输入密码详细信息”找到不明确的步骤定义 c# specflow
- javascript - 在 Chrome 扩展打开的窗口中运行内联脚本
- validation - 在结帐字段国家/地区添加自定义验证
- php - 只有在 Woocommerce 中应用了某些优惠券时才允许购买特定产品
- javascript - 在使用 JQuery 加载期间依赖项删除将如何工作
- go - 使用反射,如何检查嵌入类型是否覆盖嵌入类型的方法?
- reactjs - Material-UI DataGrid 基于文本内容的动态行高
- python - 使用 Python 3.8 在 Mac M1 上安装 pygame 的问题