You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无ILM功能的ElasticSearch Kibana中删除旧索引?

关于ILM实现旧索引删除的解决方案及参考内容

一、先确认ILM功能是否启用

  • 检查Elasticsearch集群的xpack.index_lifecycle_management.enabled设置状态,执行以下命令验证:
    GET _cluster/settings?include_defaults=true&filter_path=**.index_lifecycle_management.enabled
    
  • 若返回值为false,需在elasticsearch.yml中开启该配置后重启集群:
    xpack.index_lifecycle_management.enabled: true
    

二、Kibana无ILM入口的排查点

  • 确认Kibana配置文件kibana.yml中xpack.indexLifecycleManagement.enabled设置为true,未开启则修改后重启Kibana。
  • 检查当前登录用户权限,需分配manage_index_lifecycle权限(superuser角色默认包含该权限),否则无法看到ILM功能入口。

三、手动编写ILM策略的步骤

1. 创建ILM策略

通过Elasticsearch API创建自动删除旧索引的策略,以下是删除30天以上索引的示例:

PUT _ilm/policy/delete_old_indices_policy
{
  "policy": {
    "phases": {
      "delete": {
        "min_age": "30d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}
  • 说明:如果需要先执行rollover(索引滚动)再删除,可添加hot阶段配置;上述示例直接设置索引存活满30天后触发删除。

2. 关联索引与策略

  • 给现有索引绑定策略:
    PUT /_all/_settings
    {
      "index": {
        "lifecycle": {
          "name": "delete_old_indices_policy"
        }
      }
    }
    
  • 创建索引模板,让新索引自动应用策略:
    PUT _index_template/old_indices_template
    {
      "index_patterns": ["logs-*"], // 替换为你需要匹配的索引前缀,比如"metrics-*"
      "template": {
        "settings": {
          "index.lifecycle.name": "delete_old_indices_policy"
        }
      }
    }
    

四、验证策略执行状态

  • 查看策略详情:
    GET _ilm/policy/delete_old_indices_policy
    
  • 查看索引的ILM执行情况:
    GET /_all/_ilm/explain
    

内容的提问来源于stack exchange,提问作者sneedster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:15:58