看生效值而不是写法
GET /<index>/_settings 默认只返回显式配置过的设置,加上 include_defaults=true 才会把继承自模板与系统默认的生效值一并列出。排查行为差异(副本数、刷新间隔、分析器、ILM 绑定)时要以这里返回的生效值为准,而不是索引模板或部署脚本里的写法。
flat_settings 有什么用
默认输出是嵌套结构,副本数藏在 settings.index.number_of_replicas 层级下;flat_settings=true 会把嵌套键压成点号形式,既方便与模板文件做文本比对,也方便脚本直接取值。再配合 filter_path 只取关心的几个键,就能在设置项很多的大索引上避免拉回整段响应。
基本信息
| 接口 | GET /<index>/_settings |
|---|---|
| 看默认值 | include_defaults=true |
| 压平输出 | flat_settings=true |
| 精确取字段 | filter_path=**.index.number_of_replicas |
| 批量核对 | GET /logs-*/_settings?flat_settings=true |
示例
示例
# 只看显式配置过的设置
GET /my-index/_settings?flat_settings=true
# 连同默认值一起看,确认最终生效值
GET /my-index/_settings?include_defaults=true&flat_settings=true
# 只取关心的键:副本数与刷新间隔
GET /my-index/_settings?include_defaults=true&filter_path=**.index.number_of_replicas,**.index.refresh_interval
# 批量核对一批索引
GET /logs-*/_settings?flat_settings=true
# 修改后立即读取核对是否生效
PUT /my-index/_settings
{ "index.number_of_replicas": 2 }典型使用场景
- 排查写入慢:确认 refresh_interval 是否被改得很短
- 规范核对:副本数是否与容量与可用性要求一致
- 分析器排错:分词结果异常时先看索引上实际生效的分析器配置
- 确认 ILM 绑定:索引是否挂到了预期的生命周期策略上
- 变更前后对比:改完设置立刻读取,避免被模板在下次滚动时覆盖
参数组合用法
| 参数 | 作用 | 使用场景 |
|---|---|---|
| (无参数) | 只返回显式配置过的设置 | 快速看出人工改过什么 |
| include_defaults=true | 附带模板与系统默认值 | 需要确认最终生效值时 |
| flat_settings=true | 把嵌套设置压平成点号键 | 做 diff 或脚本取值 |
| filter_path=... | 只返回匹配的键 | 索引多、设置多时必用 |
设置值可能来自索引模板、生命周期策略或人工修改,看到异常值先回溯来源再改,否则很可能在下次滚动新建索引时被模板重新覆盖。
include_defaults=true 在索引或设置很多的集群上响应很大,务必配合 filter_path 或限定索引通配符,避免采集任务把协调节点压住。