如何为ELK Stack中的节点分配CPU,RAM,磁盘,碎片?

时间:2019-04-25 10:49:36

标签: elasticsearch logstash kibana elastic-stack filebeat

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

  • 每个节点应包含多少个分片

  • 应为每个节点分配多少Ram和CPU

  • 如何为节点分配最大存储空间

我在Ubuntu平台上构建ELK Stack。

系统1属性

  • 12GB RAM

  • 500 GB硬盘

系统2属性

  • 8GB RAM

  • 500 GB硬盘

系统3属性

  • 4GB RAM

  • 500 GB硬盘

由于有3个节点(3 * 3 = 9),因此我将分片数设为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集群。

1 个答案:

答案 0 :(得分: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