首页 > 解决方案 > 多租户环境中的 EKS 租户特定 Cloudwatch 日志流

问题描述

我在 AWS EKS 上托管了多个微服务。每个服务都是多租户,即它迎合多个租户。我已经使用 Fluentd 集成了 Cloudwatch Container Insights。Fluentd 正在为每个活动的 Service pod 创建一个日志流。现在,我想为每个租户创建单独的日志流,只有他们的日志。

所以,理想情况下,我想要的是假设我有一个名为“ServiceA”的微服务,租户为 TenantA 和 TenantB。因此,在 CLoudWatch 中,我应该为该服务提供 2 个日志流,例如 ServiceA_TenantA 和 ServiceA_TenantB。

请让我知道使用流利配置的方法

标签: dockeramazon-cloudwatchmulti-tenantamazon-eksfluentd

解决方案


您的租户是如何部署的,它们是在相同的名称空间中还是在不同的名称空间中。为什么我要问这是因为我将 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

推荐阅读