amazon-web-services - 为什么 EKS 说我的 Fluent-bit.conf 无效

标签 amazon-web-services kubernetes logging amazon-eks fluent-bit

我正在尝试在 EKS + Fargate 上为 Kuberentes 设置 Fluent Bit。我能够将日志全部发送到 Cloudwatch 上的一个通用日志组,但现在当我添加 Fluent-bit.conf 时: |到 data: 字段并尝试将更新应用到我的集群,我收到此错误:

for: "fluentbit-config.yaml": admission webhook "0500-amazon-eks-fargate-configmaps-admission.amazonaws.com" denied the request: fluent-bit.conf is not valid. Please only provide output.conf, filters.conf or parsers.conf in the logging configmap

对我来说最突出的是错误消息要求我仅提供输出、过滤器或解析器配置。

它与我在网上找到的其他示例相匹配,但我正在更新的集群上似乎没有 Fluent-bit.conf 文件或其他文件。我遵循的教程没有提到安装文件,所以我不知道为什么会收到此错误。

我的 Fluentbit-config.yaml 文件如下所示

kind: Namespace
apiVersion: v1
metadata:
  name: aws-observability
  labels:
    aws-observability: enabled
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: aws-logging
  namespace: aws-observability
  labels:
    k8s-app: fluent-bit
data:
  fluent-bit.conf: |
    @INCLUDE input-kubernetes.conf
    
  input-kubernetes.conf: |
    [INPUT]
        Name tail
        Parser docker
        Tag logger
        Path /var/log/containers/*logger-server*.log
        
  output.conf: |
    [OUTPUT]
        Name cloudwatch_logs
        Match logger
        region us-east-1
        log_group_name fluent-bit-cloudwatch
        log_stream_prefix from-fluent-bit-
        auto_create_group On

最佳答案

根据 docs (在该页面的最底部,是的,我们正在改进它们,对当前状态不满意)其中有几个部分在 Fargate 日志记录的 EKS 上下文中是不允许的,更多具体来说,什么可以进入 ConfigMap。您想要的是类似于以下内容的内容(注意:这是来 self 正在使用的实际部署,稍作修改):

kind: ConfigMap
apiVersion: v1
metadata:
  name: aws-logging
  namespace: aws-observability
data:
  output.conf: |
     [OUTPUT]
        Name cloudwatch_logs
        Match *
        region eu-west-1
        log_group_name something-fluentbit
        log_stream_prefix fargate-
        auto_create_group On
     [OUTPUT]
        Name  es
        Match *
        Host blahblahblah.eu-west-1.es.amazonaws.com
        Port 443
        Index something
        Type  something_type
        AWS_Auth On
        AWS_Region eu-west-1
        tls   On

使用此配置,您可以将日志流式传输到 CW 和 AES,因此如果不需要,请随意删除第二个 OUTPUT 部分。但是,您会注意到那里不能有其他部分,例如 input-kubernetes.conf

关于amazon-web-services - 为什么 EKS 说我的 Fluent-bit.conf 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68086502/

相关文章:

.net - 在 .NET 和 Mono 中使用相同的 log4net 程序集

java - 在 vaadin 和 spring 下进行日志记录

amazon-web-services - 在 AWS 的 ElastiCache 上禁用 Redis 实例交换

elasticsearch - JHipster Elasticsearch无法在Kubernetes上启动

apache-spark - Spark Container 中的 Fluent-bit

python - 如何将 site_id 或主机添加到 Django 调试日志?

amazon-web-services - 当我使用 git 和 npm install 时 AWS EFS 太慢

css - 为什么 elastic beanstalk 不为 django 管理站点呈现 css?

amazon-web-services - AWS Fargate无法删除集群

kubernetes - 区域配额不足,无法满足请求: resource "IN_USE_ADDRESSES"