使用 EKS 中的流利位在 AWS cloudwatch 中自动创建日志组

Posted

技术标签:

【中文标题】使用 EKS 中的流利位在 AWS cloudwatch 中自动创建日志组【英文标题】:Automatic log group creation in AWS cloudwatch using fluent bit in EKS 【发布时间】:2022-01-13 03:25:40 【问题描述】:

有没有办法在新的 pod 出现时使用 fluent bit 自动将日志从 EKS pod 发送到 cloudwatch? 每当我们需要部署新服务时,我都可以通过在 fluent-bit configmap 中添加 INPUT、FILTER、OUTPUT 部分来发送日志。但是这个过程很麻烦。有没有办法使这部分自动化?就像我们进行新部署时一样,fluent bit 会看到新的 pod 并将日志发送到 cloudwatch 中的特定日志组。

提前致谢。

【问题讨论】:

您的 fluent-bit 没有作为 daemonset 运行? 是的,它作为一个守护进程运行。但是在我输入 INPUT 和 OUTPUT 部分之前,我没有看到新 pod 的日志被发送。我有一种感觉,我的配置中缺少一些东西。 您的日志写入到标准输出或主机上的自定义位置? 我都有。很少有服务会在标准输出中写入日志,很少会在自定义位置写入日志。无论如何,这些自定义位置已安装在 flunetbit 守护程序集中。 这是我正在使用的flunet-bit的配置文件。 github.com/satyaki88/fluent-bit/blob/main/fluent-bit.yaml 【参考方案1】:

您的输入路径具有仅捕获某些日志的特定表达式:

/var/log/containers/grafana.log

/var/log/containers/memsql.log,/var/log/containers/studio.log

在您的配置中没有看到自定义位置。无论如何,您可以关注 EKS 容器洞察(使用 fluent-bit)here,您无需在每次引入新工作负载时更改配置。

【讨论】:

默认情况下,所有日志都将进入 /aws/containerinsights/Cluster_Name/application 。但我需要新工作负载的日志将创建一个单独的日志组。我们怎样才能做到这一点,而不在 configmap 中添加 OUTPUT 部分?

以上是关于使用 EKS 中的流利位在 AWS cloudwatch 中自动创建日志组的主要内容,如果未能解决你的问题,请参考以下文章

AWS简单搭建使用EKS二

如何通过 AWS EKS 在 ECR 中使用 Docker 映像

如何使用 aws-cdk 从 AWS Secrets Manager 导入 EKS 密钥?

AWS简单搭建使用EKS二

AWS简单搭建使用EKS二

如何使用 Terraform 配置 AWS EKS 自动扩缩器?