我正试图为库伯伦特斯在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文件如下所示
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发布于 2021-06-22 15:52:43
根据文档 (在页面的最底部,是的,我们正在对它们进行改进,对当前的状态不满意),其中有几个部分在Fargate日志记录的EKS上下文中是不允许的,更具体地说,可以进入ConfigMap的内容。您想要的是以下内容(注意:这是我正在使用的实际部署,稍作调整):
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。
发布于 2022-03-03 09:42:18
我想知道是否有人能够按照流畅的文档使用解析器来处理fargate‘hide’的“日志”部分。下面是我的aws配置映射的一个片段,它将日志推送到两个输出,但遗憾的是,解析永远不会发生。
我想避免在Opensearch中查看日志时使用hacky regexes,这可以通过正确解析“日志”来避免。
PS。我注意到流利位文档指的是所谓的“码头”解析器,但是fargate节点正在使用容器作为容器运行时,这可能是一个问题吗?
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的文档。
https://stackoverflow.com/questions/68086502
复制相似问题