无法使用 istio-proxy 记录出口流量 HTTP 请求

Unable to log egress traffic HTTP requests with the istio-proxy

我正在关注 this guide

正在记录入口请求。出口流量控制按预期工作,但我无法记录出口 HTTP 请求。缺少什么?

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: myapp
spec:
  workloadSelector:
    labels:
      app: myapp

  outboundTrafficPolicy:
    mode: REGISTRY_ONLY

  egress:
    - hosts:
        - default/*.example.com
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: example

spec:
  location: MESH_EXTERNAL
  resolution: NONE
  hosts:
    - '*.example.com'

  ports:
    - name: https
      protocol: TLS
      number: 443
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
  name: mesh-default
  namespace: istio-system
spec:
  accessLogging:
    - providers:
        - name: envoy

Kubernetes 1.22.2 Istio 1.11.4

AFAIK istio 默认只收集入口 HTTP 日志。

在 istio 文档中有一个 old article(自 2018 年起)描述了如何启用出口流量 HTTP 日志。

请记住,某些信息可能已过时,但我相信这是您所缺少的部分。

对于入口流量日志记录,我使用 EnvoyFilter 设置日志格式,它无需任何额外配置即可工作。在出口的情况下,我必须设置 accessLogFile: /dev/stdout.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: config
  namespace: istio-system
spec:
  profile: default
  meshConfig:
    accessLogFile: /dev/stdout