配置项作用 #
node.ingest 配置项用于控制节点是否可以作为摄取节点(Ingest Node)运行。
摄取节点能够执行摄取管道(Ingest Pipeline),在文档被索引之前对其进行预处理。摄取管道由一系列处理器组成,可以执行诸如提取字段、重命名字段、解析 JSON、地理点处理等操作。
注意:此配置项已被废弃,推荐使用 node.roles 配置来替代。
配置项属性 #
- 配置路径:
node.ingest - 数据类型:
Boolean(布尔值) - 默认值:
true - 是否可选: 是
- 作用域: NodeScope(节点级别)
- 动态更新: 否(需要重启节点生效)
- 废弃状态: 已废弃,使用
node.roles替代
配置项详解 #
工作机制 #
摄取节点工作机制
索引请求流程:
启用 ingest (node.ingest: true):
├── 接收索引请求
├── 检查 pipeline 参数
├── 执行摄取管道
│ ├── 移除字段
│ ├── 重命名字段
│ ├── 解析 JSON
│ ├── 提取数据
│ ├── 转换格式
│ └── 其他处理
└── 索引处理后的文档
禁用 ingest (node.ingest: false):
├── 接收索引请求
├── 忽略 pipeline 参数
├── 不执行管道处理
└── 直接索引原始文档
摄取管道处理 #
摄取管道处理流程
请求: POST /_doc/pipeline=my_pipeline
1. 请求到达摄取节点
│
├── pipeline 参数存在?
│ ├── 是 → 继续处理
│ └── 否 → 直接索引
│
2. 加载管道定义
│
├── 查找管道配置
├── 验证处理器
└── 准备执行
│
3. 执行处理器序列
│
├── Processor 1
│ ├── 处理文档
│ └── 传递结果
├── Processor 2
│ ├── 处理文档
│ └── 传递结果
└── Processor N
│
4. 处理完成
│
└── 索引处理后的文档
常见处理器类型:
├── remove: 删除字段
├── rename: 重命名字段
├── set: 添加字段
├── json: 解析 JSON 字符串
├── split: 分割字符串
├── join: 连接数组
├── uppercase: 转大写
├── lowercase: 转小写
├── trim: 去除空格
├── date: 日期解析
├── grok: 模式匹配
├── convert: 类型转换
└── ...
角色映射 #
废弃配置与新角色映射
旧配置 (node.ingest):
node.ingest: true
│
↓
等效于:
node.roles: [ "ingest" ] ✅
完整角色配置示例:
旧方式:
node.master: true
node.data: true
node.ingest: true
新方式 (推荐):
node.roles: [ "master", "data", "ingest" ]
仅摄取节点:
旧方式:
node.master: false
node.data: false
node.ingest: true
新方式 (推荐):
node.roles: [ "ingest" ] ✅
协调节点:
旧方式:
node.master: false
node.data: false
node.ingest: false
新方式 (推荐):
node.roles: [] (空列表) ✅
配置建议 #
生产环境(默认) #
node:
ingest: true # 默认值
建议: 保持默认值 true。大多数节点应支持摄取处理。
纯数据节点 #
node:
ingest: false # 禁用摄取
建议: 如果数据节点不需要处理管道,可以禁用。
协调节点 #
node:
master: false
data: false
ingest: false # 禁用所有角色
建议: 协调节点应禁用摄取功能。
推荐配置(使用新角色) #
# 摄取节点
node.roles: [ "ingest" ]
建议: 使用 node.roles 替代废弃的 node.ingest。
代码示例 #
easysearch.yml 基础配置 #
node:
ingest: true
混合节点配置 #
node:
master: true
data: true
ingest: true
仅摄取节点配置 #
node:
name: "ingest-node-1"
master: false
data: false
ingest: true
协调节点配置 #
node:
name: "coordinating-node"
master: false
data: false
ingest: false
推荐使用角色配置 #
# 全功能节点
node.roles: [ "master", "data", "ingest" ]
# 仅摄取节点
node.roles: [ "ingest" ]
# 协调节点
node.roles: []
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
node.ingest | 摄取节点角色 | true |
node.master | 主节点角色 | true |
node.data | 数据节点角色 | true |
node.roles | 节点角色列表(推荐) | - |
摄取管道示例 #
管道定义和使用
1. 定义管道:
PUT _ingest/pipeline/my-pipeline
{
"description": "解析日志",
"processors": [
{
"grok": {
"field": "message",
"patterns": ["%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}"]
}
},
{
"date": {
"field": "timestamp",
"formats": ["ISO8601"]
}
},
{
"remove": {
"field": "message"
}
}
]
}
2. 使用管道索引:
POST /_doc/pipeline=my-pipeline
{
"message": "2026-02-04T10:30:00 INFO 某个日志消息"
}
3. 处理结果:
{
"timestamp": "2026-02-04T10:30:00.000Z",
"level": "INFO",
"msg": "某个日志消息"
}
性能影响分析 #
| node.ingest 设置 | 优点 | 缺点 |
|---|---|---|
| true | 支持管道处理 | CPU 和内存开销 |
| false | 减少资源占用 | 无法处理管道 |
资源消耗对比 #
资源消耗分析
启用摄取 (node.ingest: true):
├── CPU 使用
│ ├── 处理器执行
│ ├── 数据转换
│ └── 正则匹配
├── 内存使用
│ ├── 文档缓存
│ ├── 处理器状态
│ └── 临时数据
└── 延迟增加
├── 管道处理时间
├── 文档转换
└── 处理器开销
禁用摄取 (node.ingest: false):
├── CPU 使用: 减少 ✅
├── 内存使用: 减少 ✅
└── 延迟: 更低 ✅
推荐配置:
├── 集群中部分节点启用 ingest
├── 专门的摄取节点
├── 数据节点禁用 ingest
└── 协调节点禁用 ingest
使用场景 #
推荐启用 ingest 的场景 #
- 数据预处理: 需要在索引前处理文档
- 日志处理: 解析和格式化日志数据
- 数据清洗: 标准化输入数据
- 摄取节点: 专门用于处理管道的节点
推荐禁用 ingest 的场景 #
- 纯数据节点: 仅存储和查询数据
- 协调节点: 不需要处理管道
- 性能敏感: 对索引延迟要求高
- 资源受限: CPU 或内存不足
集群规划建议 #
集群摄取能力规划
小型集群:
├── 所有节点启用 ingest
├── 简化配置
└── 足够应对需求
中型集群:
├── 专门摄取节点 (2-3 个)
├── 数据节点禁用 ingest
└── 协调节点禁用 ingest
大型集群:
├── 摄取节点层 (3+ 个节点)
├── 独立资源
├── 水平扩展
└── 负载均衡
摄取节点配置:
node.roles: [ "ingest" ]
├── CPU: 较高要求
├── 内存: 适中
└── 磁盘: 无需大容量
注意事项 #
已废弃: 此配置项已被废弃,推荐使用
node.roles。需要重启: 修改此配置需要重启节点。
管道依赖: 如果禁用 ingest,索引时指定 pipeline 会失败。
资源消耗: 摄取处理会增加 CPU 和内存使用。
延迟影响: 管道处理会增加索引延迟。
集群规划: 合理规划摄取节点数量。
处理器验证: 测试管道处理器性能。
错误处理: 管道失败会导致索引失败。
监控建议: 监控摄取处理性能。
迁移建议: 新配置使用
node.roles。
废弃说明 #
配置迁移指南
从废弃配置迁移到新配置
旧配置:
node.master: true
node.data: true
node.ingest: true
新配置 (推荐):
node.roles: [ "master", "data", "ingest" ]
仅摄取节点:
旧配置:
node.master: false
node.data: false
node.ingest: true
新配置 (推荐):
node.roles: [ "ingest" ]
协调节点:
旧配置:
node.master: false
node.data: false
node.ingest: false
新配置 (推荐):
node.roles: []
迁移步骤:
1. 备份当前配置
2. 确定所需角色
3. 更新配置文件
4. 滚动重启节点
5. 验证集群状态





