沙师弟,师父的充电器掉了

15台机器,日志量200G左右,集群规模多大合适?

Elasticsearch | 作者 sdlyjzh | 发布于2014年12月02日 | 阅读数:23110

一个redis够么?es1个节点的话,内存给多大合适?
已邀请:
Elk的处理能力没有公式可以得到,受很多因素影响,我给出的答案是基于我们的实践经验。我们经历过20G -> 100G -> 200G -> 500G -> 1T这样的过程,集群的data node从最初的4个扩容到现在的20个。目前每天处理50亿条裸日志,产生的主索引1.5TB,业务繁忙期间,每秒处理8-10万条日志,历史数据保留10天。

如果每天200gb日志估计用redis问题不大,但以后量会大很多,推荐用Kafka,主要原因是redis是单线程,一个实例的处理能力受限于一个cpu内核,而多个实例做lb会很麻烦。kafka是集群方式运作,扩容简单得多。另外Kafka的队列是构造在磁盘上的,相比Reidis可以容忍更长的消费端故障时间。我们目前是2台服务器做kafka集群,上面所说的量撑住毫无压力。

kennywu76 - Wood

赞同来自:

一个redis够了,这个量ES估计需要4个data node,单机内存最好>=64GB,ES的heap分配20-30GB足够。

rockybean - Elastic Certified Engineer, ElasticStack Fans,公众号:ElasticTalk

赞同来自:

@kennywu76 hi,很想知道你的这个评估是基于怎样的一个逻辑算出来的?

@sdlyjzh 你所说的日志两200G是每天产生量吧? 这个数据量的QPS怎么也得1000了,内存上应该要不小。假设每条日志大小平均1KB,简单计算,1秒就有1MB,如果用一个redis的话,内存设置多少合适呢?

@medcl 在qcon上海的分享上有讲到redis内存撑爆,后来换用了kafka的经验。不知道有无考虑?

最近我也在尝试用es来搭建日志系统,还在犹豫是否用kafka做中间件,看了@medcl 的介绍后,又看到了kafka 省资源这点好处。

目前我碰到的难点在es集群评估上,和楼主的问题一致,希望可以得到一个评估逻辑的解答,谢谢各位!

rockybean - Elastic Certified Engineer, ElasticStack Fans,公众号:ElasticTalk

赞同来自:

@kennywu76 谢谢您的回复!

我还想问一下,多个data node可以分配在一台机器上吗?这样会有什么不好的地方吗?master node你们用了几个? 关于shard的数目我也想咨询下,我们一天的日志量目前在300G左右,shard做10个可以吧,另外我们不会直接基于es做aggregation的东西,所以是不是shard越多越好呢?

另外kafka消费是自己写消费者程序吧,然后通过es的sdk再索引到elasticsearch吗?还是有现成可用的?

谢谢!

lee62817

赞同来自:

我也想了解kafka如何配置
有人有教學嗎

juneryang

赞同来自:

可能这个问题现在回答太晚了。我回答下吧,现在正在弄这个东西。我们有两个项目,一个项目一天产生索引文件约100多G,现在的ELK在一台阿里云虚拟机,配置是8核16G内存,es是一个节点,目前负载高峰期约70%上下,日志高峰期有2小时左右延迟。另外一个项目,5台线上机器的日志一天约500-600G,目前ELK在一台物理机上,24核88G内存,es是两个节点,cpu负载70-80%,晚高峰的日志时间延迟约2小时。

要回复问题请先登录注册