首页/云/可观测性速查/ES 节点角色与部署形态
日志平台52 条

ES 节点角色与部署形态

节点按角色分工:master 管集群状态、data 存数据、ingest 做写入前处理、coordinating 负责分发请求;生产通常拆开角色以隔离故障与负载。

可观测性速查云更新于 2026-10-13

节点角色是什么

Elasticsearch 集群里的节点按职责分工:master 负责集群状态与元数据变更,data 存储分片并执行检索与聚合,ingest 在写入前跑预处理管道,不配任何角色的协调节点只负责请求分发与结果汇聚。生产环境通常把角色拆开,避免主节点被查询压垮、数据节点被协调流量拖慢;小集群合并角色则能省运维成本。配置入口是各节点 elasticsearch.yml 的 node.roles。

基本信息

配置项elasticsearch.yml 中的 node.roles
常见组合[data, ingest]、[master]、[] 表示纯协调节点
主节点数量需奇数以满足选举多数,常见为 3 个
版本差异ES 7.9+ 使用 node.roles,更早版本用 node.master / node.data 布尔项
生效方式修改配置后重启该节点进程

典型使用场景

  • 小集群简化:3 到 5 个节点时把 data 与 ingest 合并,减少节点数量
  • 大集群稳定:主节点独立部署,避免大量查询影响集群状态更新
  • 写入预处理:由 ingest 节点承担管道处理,把字段加工从应用侧移到集群侧
  • 查询隔离:独立协调节点承接高并发查询的分发与汇聚
  • 冷热分层:数据节点按硬件分组,热数据放在 SSD 节点上

角色配置与查看

角色配置与查看
node.name: es-data-01
node.roles: [ data, ingest ]     # 数据 + 写入处理

# 专用主节点(生产建议 3 个)
# node.roles: [ master ]

# 协调节点:不承担数据与主节点职责
# node.roles: [ ]

# 查看各节点角色、是否为主节点与堆使用率
GET /_cat/nodes?v&h=name,node.role,master,heap.percent,ram.percent

角色与职责

角色职责不拆分的风险
master集群状态与元数据变更被拖慢时集群状态更新受阻
data存储分片、执行检索聚合协调流量会挤占检索资源
ingest写入前的管道处理管道复杂时拉高数据节点负载
coordinating请求分发与结果汇聚无专用节点时由数据节点兼任
专用主节点不要承担数据职责:主节点参与读写会放大集群状态变更失败的概率,一旦选举多数丢失,集群会长时间无法恢复写入。
小集群合并角色能明显降低运维成本,但「主节点必须是奇数且至少 3 个」这条底线要守住,双主节点没有任何多数容错能力。

易错点

  • 数据节点同时扛协调流量会被查询拖慢写入,规模上来后应使用独立协调节点分担
  • 主节点只部署两个时没有多数容错,一台故障就可能失去写入能力
  • 新版 node.roles 与旧版 node.master / node.data 混写配置,容易出现角色与预期不符且启动不报错
  • 把 ingest 管道堆在主节点上,写入洪峰时会连带影响集群状态更新

数据来源与参考

  • Elastic 官方文档 · Node roles
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌