【问题标题】:elasticsearch template doesn't change index ILMelasticsearch 模板不会更改索引 ILM
【发布时间】:2020-09-22 13:29:59
【问题描述】:

在我的弹性搜索中,我将收到格式为 dstack-prod_dcbs- 的每日索引。我想在它们复活后立即将 ILM 添加到它们。我不知道为什么不将 ILM 添加到索引中。下面你可以找到我的命令。(我已经定义了“dstack-prod_dcbs-policy”ILM)

*PUT _template/dstack-prod_dcbs
{
  "index_patterns": ["dstack-prod_dcbs-*"], 
  "settings": {
    "index.lifecycle.name": "dstack-prod_dcbs-policy"
}
}*

但是当我跑步时

GET dstack-prod_dcbs/_ilm/explain*

以下结果返回

*{
  "indices" : {
    "dstack-prod_dcbs-20200821" : {
      "index" : "dstack-prod_dcbs-20200821",
      "managed" : false
    },
    "dstack-prod_dcbs-2020-09-22" : {
      "index" : "dstack-prod_dcbs-2020-09-22",
      "managed" : false
    }
  }
}*

【问题讨论】:

    标签: elasticsearch ilm


    【解决方案1】:

    我相信 ILM 是使用每日索引的替代方法,当策略中的条件满足时(而不是成为新的一天),索引会滚动更新

    对于 ILM,您需要为模板定义翻转别名

    PUT _template/dstack-prod_dcbs
    {
      "index_patterns": ["dstack-prod_dcbs-*"], 
      "settings": {
        "index.lifecycle.name": "dstack-prod_dcbs-policy",
        "index.lifecycle.rollover_alias": "dstack-prod_dcbs"
      } 
    }
    

    然后你需要手动创建第一个索引,并将其分配为别名的写索引

    PUT dstack-prod_dcbs-000001
    {
       "aliases": {
            "dstack-prod_dcbs":{
                "is_write_index": true 
            }
        }
    }
    

    之后一切都会自动处理,并且会在翻转时创建一个新索引,然后将其分配为别名的写入索引

    【讨论】:

    • 感谢您的回复。当我为新索引(如测试(dstack-prod_dcbs))做一切都很好,但是当我使用它们时,我得到了“indices”:{“dstack-prod_dcbs-20200821”:{“index”:“ dstack-prod_dcbs-20200821”,“托管”:假},。我用 dstack-prod_dcbs 模式删除了所有索引
    • 是的,您需要在创建索引之前创建模板,因此您需要删除 dstack-prod_dcbs 索引并在创建模板后创建它们,以便将策略分配给它们
    • 我删除了 elasticsearch 卷,现在它可以正常工作了。我认为有时弹性不显示索引,但实际上它们是存在的。
    猜你喜欢
    • 2020-05-08
    • 1970-01-01
    • 2016-11-09
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 2021-05-06
    相关资源
    最近更新 更多