原始訊息如下
[2019-12-10T14:28:15,007][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>"logstash-2019.12.10", :_type=>"doc", :_routing=>nil}, #<LogStash::Event:0x51 212471>], :response=>{"index"=>{"_index"=>"logstash-2019.12.10", "_type"=>"doc", "_id"=>nil, "status"=>400, "error"=>{"type"=>"illegal_argument_exception", "reason"=>"The [default] mapping cannot be updated on index [logstash-2019.12.10] : defaults mappings are not useful anymore now that indices can have at most one type."}}}}
於是上網 Google 了一下,發現 elastic 論壇中別人也有遇到跟我一樣的問題,而解決方案其實很簡單就是刪除舊的 Template 並重新啟動 Logstash 即可。
https://discuss.elastic.co/t/logstash-could-not-index-event-to-elasticsearch-the-default-mapping-cannot-be-updated-on-index/177315/3
刪除 Template 的方法
在 Head 套件中網址輸入 http://192.168.1.2:9200/_template/logstash/ 方法選擇 DELETE或是直接在 Elasticsearch 主機上下指令
# curl -XDELETE http://192.168.1.2:9200/_template/logstash
IP記得改成你 Elasticsearch 主機的 IP 喔,將舊的 Template 刪除並重啟 Logstash 後回到 Kibana 就可以發現 Log 有正常收進來了。
沒有留言:
張貼留言