master eligible nodes: 负责集群状态(cluster state)的管理. 使用低配置的 CPU,RAM和磁盘, 一般配置3台 (高可用, 避免脑裂)

data nodes:负责数据存储及处理客户端请求. 使用高配置的CPU,RAM和磁盘

ingest nodes:负责数据处理. 使用高配置CPU; 中等配置的RAM;低配置的磁盘

coordinating only nodes: 可以用来扮演 Load Balancers, 降低 master 和 data nodes 的负载, 负责搜索结果的 gather / reduce. 需要将 master、data、ingest 都配置为 false. 可以使用中等以上的CPU, RAM, 低配置的磁盘

基本部署模式

这样在数据不足的时候, 直接增加 data node 即可

水平扩展

这样当系统有大量的复杂查询及聚合的时候, 可以通过增加 Coordinating 节点, 将查询指向 Coordinating 节点, 增加查询的性能

读写分离

通过 ingest 在写入的时候通过 pipleline 的方式对数据进行预处理

在集群中部署 kibana

Shard Filtering

通过 node.attr 来标记节点, 通过 index.routing.allocation 来分配索引到节点上.