istio envoyfilter 将访问日志发送到 kafka

问题描述 投票:0回答:1

我需要一个 envoyfilter 将 envoy 访问日志发送到 kafka。我用

envoy.extensions.access_loggers.file.v3.FileAccessLog
将日志发送到标准输出,但我没有找到将访问日志发送到 kafka 的方法,我尝试找到一个 typed_config 来自动发送该日志

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: access-logs-to-kafka
spec:
  workloadSelector:
    labels:
      app: my-app
  configPatches:
    - applyTo: ACCESS_LOG
      match:
        context: SIDECAR_INBOUND
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.access_loggers.kafka
          typed_config:
            "@type": type.googleapis.com/envoy.extensions.access_loggers.kafka.v3.KafkaSink
            config:
              brokers:
                - broker.kafka.svc.cluster.local:9092
              topic: access-logs
              message_format: "%START_TIME% %REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL% %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-REQUEST-ID)% %UPSTREAM_HOST%\n"

但是好像没有kafkasink 我什么也没做

你们有类似的实验吗?

apache-kafka istio envoyproxy
1个回答
0
投票

正如@amir提到的,我们还尝试了第一种方法,即将访问日志打印到stdout,并使用fluidd通过连接器将这些日志发送到kafka。至少在小规模上它运作良好。还没有大规模尝试过,托运人的可靠性可能会成为一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.