Envoy Gateway 代理访问日志配置指南

Envoy Gateway 代理访问日志配置指南

gateway Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway gateway 项目地址: https://gitcode.com/gh_mirrors/gate/gateway

概述

Envoy Gateway 作为云原生 API 网关解决方案,提供了强大的可观测性能力。本文将详细介绍如何配置 Envoy Gateway 的代理访问日志功能,帮助开发者更好地监控和分析流量情况。

前置准备

在开始配置前,请确保已具备以下环境:

  1. 已部署 Kubernetes 集群
  2. 已安装 Envoy Gateway
  3. 已部署日志收集系统(如 Loki)
  4. 具备 kubectl 命令行工具

默认访问日志格式

Envoy Gateway 默认提供了丰富的日志格式,包含以下关键信息:

{
  "start_time": "请求开始时间",
  "method": "HTTP方法",
  "protocol": "协议类型",
  "response_code": "响应状态码",
  "bytes_received": "接收字节数",
  "bytes_sent": "发送字节数",
  "duration": "请求耗时",
  "upstream_host": "上游服务地址",
  "downstream_remote_address": "客户端地址"
  // 更多字段...
}

这种结构化日志格式非常适合后续的日志分析和处理。

日志配置实践

1. 禁用访问日志

在某些性能敏感场景下,可能需要禁用访问日志:

apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
spec:
  telemetry:
    accessLog:
      disable: true

2. OpenTelemetry 日志收集

将日志发送到 OpenTelemetry Collector 是生产环境的推荐做法:

spec:
  telemetry:
    accessLog:
      settings:
        - format:
            type: Text
            text: |
              [%START_TIME%] "%REQ(:METHOD)% %PATH% %PROTOCOL%" %RESPONSE_CODE%
          sinks:
            - type: OpenTelemetry
              openTelemetry:
                host: otel-collector.monitoring.svc
                port: 4317

3. gRPC ALS 日志服务

对于需要自定义日志处理的场景,可以使用 gRPC Access Log Service:

spec:
  telemetry:
    accessLog:
      settings:
        - sinks:
            - type: ALS
              als:
                backendRefs:
                  - name: envoy-als
                    port: 8080
                type: HTTP

高级配置技巧

1. CEL 表达式过滤

使用 CEL 表达式可以实现灵活的日志过滤:

spec:
  telemetry:
    accessLog:
      settings:
        - matches:
            - "'x-envoy-logged' in request.headers"
          # 其他配置...

2. 元数据增强

可以在日志中添加 Kubernetes 资源元数据:

%METADATA(ROUTE:envoy-gateway:resources)%

3. 精细化日志控制

区分路由和监听器级别的日志:

spec:
  telemetry:
    accessLog:
      settings:
        - type: Route
          # 路由日志配置
        - type: Listener
          # 监听器日志配置

最佳实践建议

  1. 生产环境建议使用 OpenTelemetry 收集日志
  2. 根据实际需求选择合适的日志格式
  3. 对于高流量场景,考虑使用采样策略
  4. 合理使用 CEL 表达式减少不必要日志
  5. 定期检查日志系统的性能和容量

通过本文介绍的配置方法,您可以灵活地控制 Envoy Gateway 的访问日志行为,为系统监控和故障排查提供有力支持。

gateway Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway gateway 项目地址: https://gitcode.com/gh_mirrors/gate/gateway

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苗素鹃Rich

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值