[2018-11-13T14:32:25,699][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"test-2018.11.13", :_type=>"log", :_routing=>nil}, #<LogStash::Event:0x329a91a9>], :response=>{"index"=>{"_index"=>"test-2018.11.13", "_type"=>"log", "_id"=>"EPLCC2cBh0m3bGrR4-gG", "status"=>400, "error"=>{"type"=>"illegal_argument_exception", "reason"=>"mapper [host] of different type, current_type [text], merged_type [long]"}}}}
这个之前运行了一段时间都没有问题的,我是每天按照日期新建一个索引,索引是按照模版自动创建的,其他索引都没有问题,就一个项目索引的host老是匹配不了,我打印了一下元数据,索引不了的host用的是一个类似[2500,"1.1.1.1","2.2.2.2"] ,正常索引host传到ES的是类似["3-0100","1.1.1.1","2.2.2.2"],有没有哪位大神可以帮忙解答一下,有没有比较低成本的解决办法,我在测试环境试过,感觉用数字和双引号都支持的
这个之前运行了一段时间都没有问题的,我是每天按照日期新建一个索引,索引是按照模版自动创建的,其他索引都没有问题,就一个项目索引的host老是匹配不了,我打印了一下元数据,索引不了的host用的是一个类似[2500,"1.1.1.1","2.2.2.2"] ,正常索引host传到ES的是类似["3-0100","1.1.1.1","2.2.2.2"],有没有哪位大神可以帮忙解答一下,有没有比较低成本的解决办法,我在测试环境试过,感觉用数字和双引号都支持的
2 个回复
JackGe
赞同来自: bearsurvival 、weizijun
据你说在线下环境试过2500和"2500"都是可以的,需要确认下线下环境索引mapping配置中是否已经定义好host的类型为string了,并且测试的时候待写入的索引是不存在的,会触发创建索引的操作。
解决这种的问题的方式是给host字段指定类型。给这类索引创建好template,在template中定义好host的类型为string。例如
weizijun - elasticsearch fan
赞同来自: bearsurvival