如何将CPU,RAM,磁盘,碎片分配给ELK堆栈中的节点?

问题描述 投票:1回答:1

我制作了一个带有3个节点的ELK STACK,其中一个节点是主节点,2个数据节点。假设我有大约1GB的数据要与群集一起使用。我需要知道

  • 每个节点应包含多少分片
  • 应该为每个节点分配多少Ram和CPU
  • 如何为节点分配最大存储空间

我在Ubuntu平台上构建了ELK Stack。

系统1属性

  • 12GB RAM
  • 500 GB硬盘

系统2属性

  • 8GB RAM
  • 500 GB硬盘

系统3属性

  • 4GB RAM
  • 500 GB硬盘

由于有3个节点,我将碎片数量设为9?(3 * 3 = 9)。使用Rest API。

curl -X POST "http://localhost:9200/_template/default" -H 'Content-Type: application/json' -d'
{
  "index_patterns": ["*"],
  "order": -1,
  "settings": {
    "number_of_shards": "9",
    "number_of_replicas": "1"
  }
}
'

我不知道这是对还是错。

我需要建立一个健康的集群。

是否有任何方法或参数来分配分片,副本,RAM,磁盘空间等?

是否有任何方法可以根据文件大小找到理想的分片数?

必须为每个节点分配多少CPU核心?

到目前为止,我引用了以下链接来构建ELK集群。

elasticsearch logstash kibana elastic-stack filebeat
1个回答
2
投票

碎片细节

通常,我们建议如果您不希望数据显着增长,那么:

One primary shard is fine if you have less than 100K documents

One primary shard per node is good if you have over 100K documents

One primary shard per CPU core is good if you have at least a couple million documents

索引可以有多个分片,但任何给定的分片只能属于一个索引。

参考:https://docs.bonsai.io/article/122-shard-primer

© www.soinside.com 2019 - 2024. All rights reserved.