因此,我在eks上使用fluent-bit,在AWS上使用elasticsearch,它指向AWS elasticsearch服务,但为了节省成本,我们删除了elasticsearch,并创建了一个单独的elasticsearch实例,足够用于开发。而且aws服务仅使用一个实例并不能很好地管理。
问题是,在这个迁移过程中,流畅的位似乎已经坏了,我得到了很多“警告无法刷新块”和一些“错误连接#55到ES-服务器: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输出中激活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"}}以前是否有人遇到过这个错误,并知道如何解决它?
发布于 2021-04-20 03:38:12
因此,在查看日志并找到映射问题后,我认为ssem已经解决了这个问题。日志现在被正确解析并发送到elasticsearch。
为了解决这个问题,我必须增加输出重试的限制,并添加Replace_Dots选项。
[OUTPUT]
Name es
Match *
Host ELASTICSERVER
Port 9200
Index <fluent-bit-{now/d}>
Retry_Limit 20
Replace_Dots On似乎在一开始我对发送的内容有问题,因为错误似乎在更改后仍然存在,直到创建了一个新的索引,这让我认为错误仍然没有得到解决。
https://stackoverflow.com/questions/67112611
复制相似问题