http://blog.51cto.com/11819159/1926411
ELK架构:elasticsearch+kibana+filebeat
版本信息:
elasticsearch 5.2.1
kibana 5.2.1
filebeat 6.0.0 (预览版)
今天在进行ELK测试的时候,在kibana上面discover无论那个index,发现均会报错:
[request] Data too large, data for [<agg [2]>] would be larger than limit of
并且在elasticsearch的日志可以看到:
org.elasticsearch.common.breaker.CircuitBreakingException: [request] Data too large, data for [<agg [2]>] would be larger than limit of [1283260416/1.1gb]
根据错误信息在Google的帮助下,可以比较明显的获取得到是由于内存不够的原因导致,但是具体是因为什么原因暂时还不是很清楚。并且网上大部分出现类似的错误都是清楚缓存:
curl -XPUT 'http://localhost:9200/_cache/clear'
在server上面我执行的上诉语句之后,在kibana的web界面点击discover还是出现上诉的错误,说明思路是错误的,然后我在下面的一篇文章中找到了一些有用的信息:
http://blog.csdn.net/brotherdong90/article/details/50477836
在上面的截图我们可以比较清晰的获取得到elasticsearch的circuite breaker的断路器原理,但是在上面的截图它出现的错误是fieddate,但是我出现的错误是request,所以我猜想我可能是因为request circuite breaker ,request的内存不够。
上面的解释这个主要是为了防止单个request使用过多的内存所做的措施,所以我做的就是动态的更改request的cache大小:
curl -XPUT localhost:9200/_cluster/settings -d '{
"persistent" : {
"indices.breaker.request.limit" : "40%"
}
}'