Elasticsearch的索引生命周期管理会随机删除索引

时间:2020-07-13 12:01:09

标签: elasticsearch

使用来自官方dockerhub(7.7.1)的一个节点ES。

我已经创建了一个基本的删除策略:

"test_policy": {
    "version": 1,
    "modified_date": "2020-07-13T11:38:15.283Z",
    "policy": {
        "phases": {
            "delete": {
                "min_age": "10s",
                "actions": {
                    "delete": {}
                }
            }
        }
    }
}

将上述策略添加到模板中,以以下示例为例: https://www.elastic.co/guide/en/elasticsearch/reference/current/set-up-lifecycle-policy.html(注意:我没有使用过渡)

PUT _template / my_template

{
  "index_patterns": ["test-*"], 
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1,
    "index.lifecycle.name": "test_policy" 
  }
}

然后我输入两个索引:test-2017-11-12test-2222

发生的事情(根据http://localhost:9200/test-*/_ilm/explain)是,即使在几分钟后,两个索引阶段都是“新的”。然后在4-5分钟后,一个索引切换到“删除”阶段并停留在那里。另一个仍处于“新”阶段。

"test-2017-11-12": {
    "index": "test-2017-11-12",
    "managed": true,
    "policy": "test_policy",
    "lifecycle_date_millis": 1594640489746,
    "age": "13.69m",
    "phase": "delete",
    "phase_time_millis": 1594640734626,
    "action": "delete",
    "action_time_millis": 1594640734626,
    "step": "wait-for-shard-history-leases",
    "step_time_millis": 1594640734626,
    "phase_execution": {
        "policy": "test_policy",
        "phase_definition": {
            "min_age": "10s",
            "actions": {
                "delete": {}
            }
        },
        "version": 1,
        "modified_date_in_millis": 1594640295283
    }
}

编辑:最后在 17分钟后!,该索引被删除,现在另一个卡在同一阶段

1。这是什么“ 等待分片历史租赁 ”东西?在ES文档中找不到有关此内容的任何信息。
2.即使一个挂在“删除”阶段,为什么另一个索引也被这个阻塞?为什么不是所有超过10岁的索引都进入删除阶段?

1 个答案:

答案 0 :(得分:0)

默认情况下,ILP每10分钟执行一次。由于群集的配置设置,请参见https://www.elastic.co/guide/en/elasticsearch/reference/7.10/ilm-settings.html#_cluster_level_settings

此处简短讨论 https://discuss.elastic.co/t/ilm-not-deleting-indices/234437