docker - 多租户环境中的 EKS 租户特定 Cloudwatch 日志流
问题描述
我在 AWS EKS 上托管了多个微服务。每个服务都是多租户,即它迎合多个租户。我已经使用 Fluentd 集成了 Cloudwatch Container Insights。Fluentd 正在为每个活动的 Service pod 创建一个日志流。现在,我想为每个租户创建单独的日志流,只有他们的日志。
所以,理想情况下,我想要的是假设我有一个名为“ServiceA”的微服务,租户为 TenantA 和 TenantB。因此,在 CLoudWatch 中,我应该为该服务提供 2 个日志流,例如 ServiceA_TenantA 和 ServiceA_TenantB。
请让我知道使用流利配置的方法
解决方案
您的租户是如何部署的,它们是在相同的名称空间中还是在不同的名称空间中。为什么我要问这是因为我将 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
推荐阅读
- birt - 如何从Birt中的特定数字开始页码循环?
- ios - Button changing after image moves over it?
- sql - 我需要从现有的 TABLE 创建一个 VIEW 并将一个额外的 COLUMN 映射到该 VIEW
- r - 从 RMarkdown 将多个输出渲染为 PDF
- django - ModuleNotFoundError...没有名为 Google 的模块
- amazon-web-services - 您应该如何在 AWS 中部署无服务器和非无服务器资源的组合?
- typescript - 如何使用 Typescript 在 mongoose findOneAndDelete 中间件上获取文档?
- python - 如何在 Tensorflow 上使用保存的模型保存模型、加载和预测?
- reactjs - 创建以特定前缀开头且不可擦除的输入文本
- sql-server - SSIS - 无法从 ODBC 源永久更改外部列