提问要多花一点心思哦

es节点数量到底几个比较好

Elasticsearch | 作者 hide | 发布于2022年08月17日 | 阅读数:3255

ES作用:
  1. 目前项目中用ES,td-agent收集log

ES服务器配置:
  1. java版本11

  1. ES服务器 2台
  2. 版本6.6.2
  3. disk es_1:1T es_2:500G
  4. memory:32G,分配给es 16G
  5. CPU: 8核非高速

现象:
  1. 每个index {"number_of_shards": 1, "number_of_replicas": 0}
  2. 目标服务器有500台,每台上至少会生成2个index,分别是服务的log和system log,统计过每天的数据量,每天都会在ES服务器上增加150G-200G的数据,现在保存23天的数据后,大概有20000个index,并且es_2的磁盘容量就会达到85%-90%,停止分配到这个节点,es_01的负荷会非常高,down了很多次了,然后每次恢复都要回复接近10000个index,耗时非常多,太痛苦了。

问题:
  1. 请问在这种情况下,要几台ES服务器才能稳定收集并保存30天的数据

已邀请:

shick

赞同来自: hide

建议三个data节点,每个2-3TB,另外三个独立的master节点。

locatelli

赞同来自: hide

这里有两个问题:
一是磁盘容量。这个比较好算,日均数据量x30天,然后再考虑disk watermark。另外目前没有replica,所以一旦丢失节点数据就没有了。如果增加replica的话要考虑相应的容量。
二是shard数量 - 即使是1 primary/0 replica配置,20000个index也有20000个shard,这对于2节点集群来说超出推荐值太多,有很大的稳定性风险。另外版本6也是一个问题 - 最新的版本可以让单节点容纳更多数据。 

tongchuan1992 - 学无止境、学以致用

赞同来自: hide

先不说增加几台机器,你这个两台机器搭成一个集群,master也就一台吧,稳定性极差。建议至少增加至三个节点,然后索引数量的问题,看起来你的每个索引数据量也不大,建议以周为单位合并索引,然后磁盘空间就按照保存30天的大小的除以0.7左右申请即可。

Charele - Cisco4321

赞同来自:

这谁说得清啊,5?10?20?
越多越好。

Ombres

赞同来自:

默认情况下,单节点的shard的上限是2000,想必你们已经调整了该参数。
看你的提问,仅说磁盘存储不足导致数据分配停止,那么反过来的意思就是搜索性能没有问题对吗?如果是这种情况,按照你们的数据量200G*30=6t,我建议评估总共需要的存储,直接加硬盘就行。

要回复问题请先登录注册