![](/img/trans.png)
[英]Automatic log group creation in AWS cloudwatch using fluent bit in EKS
[英]eks fluent-bit to elasticsearch timeout
So I had a working configuration with fluent-bit on eks and elasticsearch on AWS that was pointing on the AWS elasticsearch service but for cost saving purpose, we deleted that elasticsearch and created an instance with a solo elasticsearch, enough for dev purpose. 并且 aws 服务仅使用一个实例就不能很好地管理。
问题是,在此迁移期间,流利位似乎已损坏,并且我收到很多“[警告] 无法刷新块”和一些“[错误] [上游] 连接 #55 到 ES-SERVER:9200 超时10 秒后”。
我目前的配置:
[FILTER]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc:443
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token
Kube_Tag_Prefix kube.var.log.containers.
Merge_Log On
Merge_Log_Key log_processed
K8S-Logging.Parser On
K8S-Logging.Exclude Off
[INPUT]
Name tail
Tag kube.*
Path /var/log/containers/*.log
Parser docker
DB /var/log/flb_kube.db
Mem_Buf_Limit 50MB
Skip_Long_Lines On
Refresh_Interval 10
Ignore_Older 1m
我认为问题出在其中一种配置中,如果我评论 kubernetes 过滤器,我不再有错误,但我失去了索引中的字段......
如果有人有建议,我尝试在 fluent-bit 中调整一些参数无济于事?
所以,之前的日志并没有说明什么,但我在激活 elasticsearch output 中的 trace_error 时终于发现了一些东西:
{"index":{"_index":"fluent-bit-2021.04.16","_type":"_doc","_id":"Xkxy 23gBidvuDr8mzw8W","status":400,"error":{"type":"mapper_parsing_exception","reas on":"object mapping for [kubernetes.labels.app] tried to parse field [app] as o bject, but found a concrete value"}}
以前有人遇到过这个错误并且知道如何解决吗?
因此,在查看日志并找到映射问题后,我认为已经解决了该问题。 日志现在被正确解析并发送到 elasticsearch。
为了解决它,我不得不增加 output 重试的限制并添加 Replace_Dots 选项。
[OUTPUT]
Name es
Match *
Host ELASTICSERVER
Port 9200
Index <fluent-bit-{now/d}>
Retry_Limit 20
Replace_Dots On
似乎一开始我对发送的内容有问题,因为在更改后错误似乎一直存在,直到创建了新索引,这让我认为错误仍未解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.