使用AWS内置Fluent Bit从EKS Fargate向Elastic Cloud发日志报错求助
问题分析与解决
问题根源
从报错信息的JSON片段可以看到,发送给Elastic Cloud的批量请求中,索引字段的格式出现错误:
{"create":{"_index":"\"leoh-logging\""}}
索引名leoh-logging被额外包裹了一层双引号,导致Elastic无法正确解析JSON结构,触发x_content_parse_exception错误。
解决方法
修改Fluent Bit的ES输出配置,去掉Index参数值的双引号:
[OUTPUT] Name es Match * Index leoh-logging # 移除原有的双引号 Host xxx Port 9243 HTTP_User elastic-beats HTTP_Passwd xxxx tls On tls.verify Off Suppress_Type_Name On
原因说明
Fluent Bit的INI格式配置中,字符串类型的参数不需要用双引号包裹。如果手动添加了双引号,Fluent Bit会将引号当作参数值的一部分传递给Elastic Cloud,导致生成的JSON出现嵌套引号,违反JSON语法规范,最终引发400错误。
内容的提问来源于stack exchange,提问作者Ted Hoang
相关产品推荐
相关产品推荐

