【问题标题】:Elasticsearch index not being created with settings from logstash template未使用 logstash 模板中的设置创建 Elasticsearch 索引
【发布时间】:2019-10-24 17:43:15
【问题描述】:

我有一个新索引的批量上传,我从 logstash 发送到我的 ES 集群。因此,我希望在加载完成之前关闭复制和刷新,并在上传完成后重新启用这些值。

我有一个如下所示的配置文件

input {
      stdin { type => stdin }
}
filter {
  csv {
     separator => " "
     columns => [ ...]
  }
}

output {
   amazon_es {
     hosts =>
         ["my-domain.us-east-1.es.amazonaws.com"]
     index => "my-index"
     template => "conf/my-index-template.json"
     template_name => "my-index-template-name"
     region => "us-east-1"
  }
}

模板文件看起来像

{
    "template" : "my-index-template-name",
    "mappings" : {
      ...
    },
    "settings" : {
      "index" : {
        "number_of_shards" : "48",
        "number_of_replicas" : "0",
        "refresh_interval": "-1"
      }
    }
}

当我运行 logstash 并查看该索引的设置时,映射都受到此模板的尊重,这很好,但 settings 部分中的所有内容都被忽略并采用默认值(即 @ 987654324@和number_of_replicas=1)

一些调查笔记: 如果我在从 ES 本身安装模板后获得模板,我会在模板中看到正确的值(mappingssettings)。他们只是似乎没有应用于索引

此外,如果我获取模板文件的内容并使用 PUT 手动创建索引,它会按我的预期显示

我的 logstash 版本是 7.3.0,我的 elasticsearch 版本是 6.7

不知道我在这里做错了什么

【问题讨论】:

    标签: elasticsearch logstash aws-elasticsearch


    【解决方案1】:

    您的索引名称是my-index,但您的映射中的模板设置使用my-index-template-name,它需要是正则表达式或与您的索引同名。

    由于您使用的是 elasticsearch 6.7,因此您应该在映射中使用 index_patterns 而不是 template

    {
        "index_patterns" : ["my-index"],
        "mappings" : {
          ...
        },
        "settings" : {
          "index" : {
            "number_of_shards" : "48",
            "number_of_replicas" : "0",
            "refresh_interval": "-1"
          }
        }
    }
    

    【讨论】:

    • 如果我使用index_patterns,是否也要将配置文件更改为使用index_patterns 而不是template_name
    • 不,index_patterns 是 elasticsearch 映射中的一个设置,它定义了模板将应用于哪些索引名称,logstash 中的 template_name 只是定义了弹性搜索中模板的名称,它和PUT _template/template_name_value基本一样。
    • 我很抱歉,也许我没有正确表达我的问题。如果我将模板文件也更改为具有index_patterns 条目,那么在这种情况下,logstash 配置应该是什么样的?
    • 你可以保持相同的logstash配置,不需要改变,你仍然可以在你的elasticsearch映射中使用template设置,它和index_patterns功能相同,但它是在较新的版本中已弃用。
    猜你喜欢
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 2021-01-16
    • 2016-06-07
    • 2015-11-15
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多