📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

index_state_management.enabled 配置项控制是否启用索引状态管理 (ISM) 功能。

是否可选 #

默认值 #

true (启用 ISM)

配置项类型 #

动态配置 - 可以在运行时修改

配置格式 #

# 启用 ISM(默认)
index_state_management.enabled: true

# 禁用 ISM
index_state_management.enabled: false

功能说明 #

索引状态管理 (ISM) 允许自动化管理索引的生命周期:

  • 自动执行索引操作(rollover、delete、shrink 等)
  • 基于时间、大小或文档数触发操作
  • 集中管理索引策略

工作原理 #

┌─────────────────────────────────────────────────────────┐
│                   ISM 工作流程                            │
└─────────────────────────────────────────────────────────┘

策略定义
    │
    ├── 状态
    │   ├── 过渡条件
    │   └── 执行操作
    │
    ▼
协调器扫描
    │
    ├── 检查索引状态
    ├── 评估过渡条件
    └── 执行定义操作

推荐设置 #

环境推荐值说明
生产环境true启用自动化管理
开发环境true便于测试
测试环境false禁用自动化操作

使用示例 #

启用 ISM:

index_state_management.enabled: true

禁用 ISM:

index_state_management.enabled: false

ISM 策略示例 #

PUT _policies/test_policy
{
  "policy": {
    "description": "测试策略",
    "default_state": "hot",
    "states": [
      {
        "name": "hot",
        "actions": [
          {"rollover": {"max_size": "50GB", "max_age": "30d"}}
        ],
        "transitions": [
          {"state_name": "warm", "conditions": {"min_index_age": "30d"}}
        ]
      },
      {
        "name": "warm",
        "actions": [
          {"replica_count": 2}
        ],
        "transitions": [
          {"state_name": "delete", "conditions": {"min_index_age": "90d"}}
        ]
      },
      {
        "name": "delete",
        "actions": [
          {"delete": {}}
        ]
      }
    ]
  }
}

配置验证 #

# 查看当前配置
GET /_cluster/settings?filter_path=*.index_state_management.enabled

# 查看 ISM 策略
GET _policies/*

# 查看索引的 ISM 状态
GET _index_state_management/explain/*

常见问题 #

问题 1:ISM 未执行策略

解决方案:

# 确保已启用
index_state_management.enabled: true

# 检查策略是否正确绑定
GET _index_state_management/explain/*

问题 2:禁用后策略仍执行

解决方案:

# 需要手动解除策略绑定
POST _index_state_management/remove_policy/my-index

注意事项 #

  1. 动态配置:可以在运行时修改
  2. 策略绑定:禁用不会自动解除现有策略
  3. 协调器:启用后协调器开始运行
  4. 资源消耗:会定期扫描索引状态

相关配置项 #

配置项默认值说明
index_state_management.jitter0.6随机抖动因子
index_state_management.coordinator.sweep_skip_period5m扫描跳过周期
index_state_management.history.enabledtrue是否记录历史

完整配置示例 #

# easysearch.yml

# 启用 ISM
index_state_management.enabled: true
index_state_management.jitter: 0.6
index_state_management.coordinator.sweep_skip_period: 5m