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 [] would be larger than limit of 

    并且在elasticsearch的日志可以看到:

org.elasticsearch.common.breaker.CircuitBreakingException: [request] Data too large, data for [] 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

    

ELK之kibana的web报错[request] Data too large, data for [<agg [2]>] would be larger than limit of_第1张图片

ELK之kibana的web报错[request] Data too large, data for [<agg [2]>] would be larger than limit of_第2张图片

ELK之kibana的web报错[request] Data too large, data for [<agg [2]>] would be larger than limit of_第3张图片

在上面的截图我们可以比较清晰的获取得到elasticsearch的circuite breaker的断路器原理,但是在上面的截图它出现的错误是fieddate,但是我出现的错误是request,所以我猜想我可能是因为request circuite breaker ,request的内存不够。

ELK之kibana的web报错[request] Data too large, data for [<agg [2]>] would be larger than limit of_第4张图片    上面的解释这个主要是为了防止单个request使用过多的内存所做的措施,所以我做的就是动态的更改request的cache大小:

curl -XPUT localhost:9200/_cluster/settings -d '{

  "persistent" : {

    "indices.breaker.request.limit" : "40%" 

  }

}'

最后问题圆满解决了。