Azure Kubernetes 容器日志到事件中心

Azure Kubernetes Container Logs to Event Hub

如何将所有容器 pods azure Kubernetes 的日志 (stdout / stderr) 记录到事件中心。 我可以通过 Log Analytics 工作区查看所有日志 >> 使用 Azure 查询语言的日志。

我想将所有日志发送到事件中心。

有人可以对此提出建议吗?

您可以通过 Fluent-Bit 的 Kafka 输出轻松地将容器日志转发到事件中心。

这是 Kafka 的 Fluent-Bit 文档 - https://docs.fluentbit.io/manual/pipeline/outputs/kafka

这里是 Kafka 客户端与事件中心的集成 - https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview

使用 fluentbit kafka 输出到 Azure EventHub 为我工作

td-agent-bit.conf

[INPUT]
  Name                tail
  Path                xxx.log
  Refresh_Interval    10

[OUTPUT]
  Name        kafka
  Match       *
  brokers     xxx.xxx.windows.net:9093
  topics      xxx
  rdkafka.security.protocol   SASL_SSL
  rdkafka.sasl.username       $ConnectionString
  rdkafka.sasl.password       Endpoint=sb://xxx.xxx.windows.net/;SharedAccessKeyName=xxx;SharedAccessKey=xxx
  rdkafka.sasl.mechanism      PLAIN

[OUTPUT]
  name  stdout
  match *

在 docker 容器内(必须有或代理 down/ssl 失败)

docker-compose.yml

version: "3.7"
services:
  fluent-bit:
    image: fluent/fluent-bit:1.6.2
    container_name: fluentbit
    restart: always
    volumes:
      - ./td-agent-bit.conf:/fluent-bit/etc/fluent-bit.conf
      - ./xxx.log:/fluent-bit/etc/xxx.log:ro