【问题标题】:Logstash and Elastic upgradeLogstash 和 Elastic 升级
【发布时间】:2017-12-27 16:35:32
【问题描述】:

我在 5.1 版上有一个功能性的 Logstash 和 Elasticsearch。

我删除了所有索引,然后升级到 6.1。

现在,当 Logstash 从 Filebeat 接收到一些事件(仍然是 5.1 版)时,它会抛出这个错误:

[2017-12-27T17:29:16,463][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch.
{
  :status => 400,
  :action => ["index", {:_id=>nil, :_index=>"logstash-2017.12.27", :_type=>"doc", :_routing=>nil}, #<LogStash::Event:0x34de85bd>],
  :response => {
    "index" => {
      "_index" => "logstash-2017.12.27",
      "_type" => "doc",
      "_id" => nil,
      "status" => 400,
      "error" => {
        "type" => "mapper_parsing_exception",
        "reason" => "Failed to parse mapping [_default_]: [include_in_all] is not allowed for indices created on or after version 6.0.0 as [_all] is deprecated. As a replacement, you can use an [copy_to] on mapping fields to create your own catch all field.",
        "caused_by" => {
          "type" => "mapper_parsing_exception",
          "reason" => "[include_in_all] is not allowed for indices created on or after version 6.0.0 as [_all] is deprecated. As a replacement, you can use an [copy_to] on mapping fields to create your own catch all field."
        }
      }
    }
  }
}

我什至尝试过使用极其简单的管道,您可以在此处看到:

input {
  beats {
    port => 5044
  }
}   

filter {
    json {
      source => "message"
    }   
}   

output {
  elasticsearch { hosts => ["localhost:9200"] }
}

但它一遍又一遍地抛出这个错误。

知道这里有什么问题吗?

【问题讨论】:

    标签: elasticsearch logstash logstash-configuration


    【解决方案1】:

    这个答案只是为了扩展@alexanderlz 所说的内容。从 kibana 的 DevTools 页面我运行了这个:

    GET /_template/
    

    列出所有模板

    这是我们需要删除/修改(部分)的模板:

    "logstash": {
        "order": 0,
        "version": 60001,
        "index_patterns": [
          "logstash-*"
        ],
    

    然后运行

    DELETE /_template/logstash
    

    完成后重启logstash,它会重新安装一个新的、正确的模板。

    【讨论】:

    • kibana 中的 DevTools 页面非常有用。这种方法也为我解决了这个问题。干得好!
    【解决方案2】:

    看看changes in mapping, introduced in elasticsearch 6.0

    您需要从索引模板中删除 include_in_all 映射参数。

    你能在这里粘贴你的模板/映射吗?

    【讨论】:

    • 非常感谢您的见解,它现在运行良好。我通过删除这些字段或简单地删除模板并让新的日志存储再次创建它来工作。总的来说,这再次证明我真的值得阅读主要版本的更改日志。
    • @Navarro - 你如何删除模板?
    猜你喜欢
    • 2016-05-14
    • 2021-10-18
    • 2016-12-30
    • 2019-10-05
    • 2021-08-06
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多