【问题标题】:EKS Tenant Specific Cloudwatch log stream in a multi tenant environment多租户环境中的 EKS 租户特定 Cloudwatch 日志流
【发布时间】:2021-04-16 11:21:13
【问题描述】:
我在 AWS EKS 上托管了多个微服务。每个服务都是多租户,即它迎合多个租户。我已经使用 Fluentd 集成了 Cloudwatch Container Insights。 Fluentd 正在为每个活动的 Service pod 创建一个日志流。现在,我想为每个租户创建单独的日志流,只包含他们的日志。
所以,理想情况下,我想要的是假设我有一个名为“ServiceA”的微服务,租户分别是 TenantA 和 TenantB。因此,在 CLoudWatch 中,我应该为该服务提供 2 个日志流,例如 ServiceA_TenantA 和 ServiceA_TenantB。
请告诉我使用 fluentd 配置的方法
【问题讨论】:
标签:
docker
amazon-cloudwatch
multi-tenant
amazon-eks
fluentd
【解决方案1】:
您的租户如何部署在相同的名称空间或不同的名称空间中。为什么我要问这是因为我将 fluentbit 作为边车运行,并且每个租户都有不同的命名空间。然后我的输入过滤器模式和输出过滤器模式负责查找正确的日志文件并将其发送到单独的tenant1 cloduwatch 日志组。我在日志组上进行隔离。
[INPUT]
Name tail
Tag tenant.*
Path /var/log/containers/*_tenant2_webapp-*.log
Docker_Mode On
Docker_Mode_Flush 5
Docker_Mode_Parser container_firstline
Parser docker
DB /var/fluent-bit/state/flb_container.db
Mem_Buf_Limit 50MB
Skip_Long_Lines On
Refresh_Interval 10
Rotate_Wait 30
storage.type filesystem
Read_from_Head ${READ_FROM_HEAD}
[OUTPUT]
Name cloudwatch_logs
Match tenant.*
region ${AWS_REGION}
log_group_name /aws/containerinsights/${CLUSTER_NAME}/application/tenant2
log_stream_prefix webapp-
auto_create_group true
extra_user_agent container-insights