0

我设置了 EFK 管道。每天都会使用 logstash-* 前缀创建一个新索引。每次 Fluentd 发送一个新字段时,该字段都会添加到索引模式 logstash-* 中。我正在尝试创建一个索引模板,该模板将在创建索引时禁用对特定字段的索引。我使用下面的 PUT 让它在 ES 7.1 中工作:

PUT _template/logstash-test
{
  "index_patterns": ["logstash-*"],
  "mappings": {
    "dynamic_templates" : [
        {
          "params" : {
            "path_match" : "params",
            "mapping" : {
              "enabled": false
            }
          }
        }
      ]
  }
}

但是,当我在 Elasticsearch 6.8 上尝试此操作时,出现以下错误:

"type": "illegal_argument_exception",
"reason": "Malformed [mappings] section for type [dynamic_templates], should include an inner object describing the mapping"
4

1 回答 1

1

它在 Elasticsearch 6.X 中有点不同,因为它有映射类型,不再使用

尝试这样的事情:

PUT _template/logstash-test
{
    "index_patterns": ["logstash-*"],
    "mappings": {
        "_doc": {
            "dynamic_templates" : [
                {
                    "params" : {
                        "path_match" : "params",
                        "mapping" : {
                            "enabled": false
                        }
                    }
                }
            ]
        }
    }
}

如果您的索引具有不同的自定义类型并且未使用该_doc类型,则应在映射中使用该类型。

于 2022-02-25T03:14:13.517 回答