如何在ElasticSearch中手动强制继续执行ILM策略或更新索引的执行阶段

时间:2019-10-08 07:06:23

标签: elasticsearch

在测试ILM API时,有几次索引会因配置错误而卡住或出错。希望我能解决所有问题,但是一旦索引卡住了,我就不知所措,我不知道如何进行处理。

示例: 我有一个暖和的政策

"warm": {
    "min_age": "1d",
    "actions": {
      "readonly" : { },
      "forcemerge": {
        "max_num_segments": 1
      },
      "allocate": {
        "include" : {
          "box_type": "hot,warm"
        }
      }
    }
  }

说“等待[5]个分片分配给与给定过滤器匹配的节点”会很麻烦。问题是我没有热或热的box_type。那么,我该如何解决此错误配置并继续执行ilm?是否可以更新索引的执行策略?还是要为索引分配新策略但更改其生命周期?

2 个答案:

答案 0 :(得分:0)

从上面的ILm定义中删除“ allocate”部分,因为集群中没有满足该条件的节点。然后,预热阶段将仅执行强制合并和只读操作。

之后,您可以使用https://www.elastic.co/guide/en/elasticsearch/reference/master/index-lifecycle-error-handling.html#_retrying_failed_index_lifecycle_management_steps

发出ILM重试。

遇到ILM问题时,ILM解释api(https://www.elastic.co/guide/en/elasticsearch/reference/master/ilm-explain-lifecycle.html)应该会带您找到问题的根源。

有关更多详细信息,请查看此https://www.elastic.co/guide/en/elasticsearch/reference/master/_updates_to_executing_policies.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/master/index-lifecycle-error-handling.html

答案 1 :(得分:0)

我认为我的问题基本上可以通过以下方式回答:

取消阻塞等待分配的问题是删除索引本身的设置 例如,从索引设置中删除以下内容: “ index.routing.allocation.include.box_type”:“热,暖”

还有一个高级API,可将索引手动移至另一步骤 enter image description here