首页 > 解决方案 > 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 岁的索引都进入删除阶段?

标签: elasticsearch

解决方案


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


推荐阅读