首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么EKS说我的fluent-bit.conf无效

为什么EKS说我的fluent-bit.conf无效
EN

Stack Overflow用户
提问于 2021-06-22 15:30:24
回答 2查看 1.1K关注 0票数 2

我正试图为库伯伦特斯在EKS + Fargate上设置流畅的位。我能够在Cloudwatch上获得所有日志都指向一个常规日志组,但是现在当我向data:字段添加fluent-bit.conf: AC.26并尝试将更新应用到我的集群时,我得到了以下错误:

对于:"fluentbit-config.yaml":接纳web钩子"0500-amazon-eks-fargate-configmaps-admission.amazonaws.com“拒绝请求: fluent-bit.conf无效。请只在日志配置图中提供output.conf、filters.conf或parsers.conf。

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

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

这个

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

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-22 15:52:43

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

代码语言:javascript
复制
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,因此如果不需要,可以随意删除第二个输出部分。但是,您注意到不可能有其他的部分,例如input-kubernetes.conf

票数 4
EN

Stack Overflow用户

发布于 2022-03-03 09:42:18

我想知道是否有人能够按照流畅的文档使用解析器来处理fargate‘hide’的“日志”部分。下面是我的aws配置映射的一个片段,它将日志推送到两个输出,但遗憾的是,解析永远不会发生。

我想避免在Opensearch中查看日志时使用hacky regexes,这可以通过正确解析“日志”来避免。

PS。我注意到流利位文档指的是所谓的“码头”解析器,但是fargate节点正在使用容器作为容器运行时,这可能是一个问题吗?

代码语言:javascript
复制
data:
  filters.conf: |
    [FILTER]
        Name             kubernetes
        Match            kube.*
        Merge_Log           On
        Merge_Log_Key       log_proccessed
        Buffer_Size         0
        Kube_Meta_Cache_TTL 300s
        Parser docker
  flb_log_cw: 'true'
  output.conf: |
    [OUTPUT]
        Name cloudwatch_logs
        Match   *
        region eu-west-1
        log_group_name /aws/eks/bs-277-main/container
        log_stream_prefix log-
    [OUTPUT]
        Name  es
        Match *
        Host  vpc-my-amazing-os-endpoint.eu-west-1.es.amazonaws.com
        Port  443
        Index kubernetes
        Type  doc
        AWS_Auth On
        AWS_Region eu-west-1
        tls   On
  parsers.conf: |
    [PARSER]
        Name         docker
        Format       json
        Time_Key     time
        Time_Format  %Y-%m-%dT%H:%M:%S.%L
        Time_Keep    On

遇到了这个流位配置的示例,并进行了容器日志解析,但是它基于将Parser添加到输入部分,而这个部分在Fargate中被忽略,因为它可能是由AWS管理的。

非常不幸的是,诸如流利比特这样的可观测性的关键组成部分很少有关于AWS Fargate的文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68086502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档