elasticsearch - 如何设置elasticsearch并发处理20k POST请求?

标签 elasticsearch

我们正在尝试从大约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请求?

最佳答案

假设您要跟踪2万个服务器指标,那么由于您希望在没有用例的确切频率的情况下进行汇总,那么每秒应该有2万个请求,那么发送CPU使用率的2万个服务器可能同时发生,为什么不这样。

您需要进行基准测试,并应从默认部署(3个节点,1个主节点,绿色集群)开始,了解有关elasticsearch types of nodes的含义的更多信息,尤其要注意数据节点和摄取节点,最后,您需要从默认部署开始部署和基准测试,调整并保持基准测试,因为每个用例都是特殊的,您的情况看起来像Elasticsearch的绝佳产品,了解节拍,logstash和kibana。

以我个人的观点,如果您没有太多预算并且不关心实时性,还有其他方法可以解决此问题,例如将每秒20k的指标存储在Kafka中,这对于处理高io写入容量,然后以您的集群支持的容量logstash将其添加到Elasticsearch,显然这使Kafka陷入了您的皇室之苦,这是我们喜欢的问题,因为我们知道总会有解决方案和乐趣。

关于elasticsearch - 如何设置elasticsearch并发处理20k POST请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54646288/

相关文章:

ruby-on-rails - 测试环境中的Searchkick映射不适用于 `fields`选项

elasticsearch - 如何获取在Kibana中创建的索引列表?

elasticsearch - 如何从Elasticsearch过滤stromcrawler数据

elasticsearch - Logstash 仅将 mysql 中的一行选择查询索引到 Elasticsearch

elasticsearch - 从 filebeat 到 logstash 的连接被拒绝

elasticsearch - 如何根据另一个索引/类型的聚合进行排序

elasticsearch - 使用数组项作为键的ElasticSearch聚合

spring - 通过使用Spring Data Elasticsearch查询多个字段来更新?

java - 使用java api的Elasticsearch多条件查询

elasticsearch - 如何通过内部对象搜索ElasticSearch