我们正尝试从大约2万台服务器中收集性能指标,并使用以下curl命令将数据发布到elasticsearch中,以进一步分析数据
curl
-XPOST "$ELASTICSEARCH_URL/sariovm/sar/"
-H 'Content-Type: application/json'
-d '{ "@timestamp" : '\""$DATE3\""', "cpu" : '$cpu', "iowait" : '$iowait', "swapips" : '$swapips', "swapops" : '$swapops', "hostname" : "'$HOSTNAME'" }'
当前,我们使用80多个POST请求进行了Elasticsearch测试,并仅设置了一个节点来处理请求。如何设置elasticsearch进行扩展以处理20K +个POST请求?
答案 0 :(得分:1)
假设您正在跟踪20k服务器指标,则应该是每秒20k请求,因为您要在没有用例确切频率的情况下进行汇总,因此20k个发送CPU使用率的服务器可能会同时发生,为什么不呢? / p>
您需要进行基准测试,并且应该从默认部署(3个节点,1个主节点,绿色集群)开始,详细了解什么是elasticsearch types of nodes,最后特别注意数据节点和摄取节点您需要从默认的部署和基准开始,调整并保持基准,因为每个用例都是特殊的,您的情况看起来像是Elasticsearch很好的产品,了解节拍,对数和基巴纳。
以我个人的观点,如果您没有太多预算并且不关心实时性,还有其他方法可以处理此问题,例如将每秒2万个指标存储在Kafka中,这对于处理高io写入容量,然后logstash以群集支持的容量进行弹性搜索,显然,这使Kafka陷入了您的皇室之苦,这是我们喜欢的问题,因为我们知道总会有解决方案和乐趣。
答案 1 :(得分:0)
这真的取决于。
每2万多个帖子?每秒?每小时?每天?您将需要这些信息。
而且,通过使用单个节点,您将忽略我认为的最大弹性搜索优势(当然,这是向外扩展的支持)。
这也取决于您帖子的大小。
您将需要更多的信息来回答这个问题,但是我建议(以及弹性建议)只是尝试一下。使用一些节点并开始尝试建立索引,
并添加资源,直到达到目标