背景
今天打开kibana出现如下报错
Login is currently disabled. Administrators should consult the Kibana logs for more details.
#当前已禁用登录。管理员应查阅Kibana日志以了解更多详细信息。
排查过程
1.尝试重启kibana。无果。
2.只能区排查kibana日志,日志中发现大量关于等待elsaticsearch的提示。
3.检查es日志
es异常日志如下。报数据量太大。
回忆起来,最近对节点磁盘做了扩容,es上存储的日志文件的定时清理也做了相应调整,所以日志是比之前多了。
org.elasticsearch.common.breaker.CircuitBreakingException: [parent] Data too large, data for [<http_request>] would be [4608116665/4.2gb], which is larger than the limit of [4503614259/4.1gb]
于是搜索关于这个报错的解决办法。
总结原因是:elasticsearch的jvm默认最多使用80%的限制。当超过阈值,则会报[parent] Data too large,请求也会被熔断。
解决办法
1.对es进行扩容-我们可以调整jvm的参数对es进行扩容
我这边是在K8S中启动的elasticsearch,附上yaml文件修改截图
2.不想对es进行扩容-可以调整jvm默认最多使用阈值的限制
example
PUT _cluster/settings
{
"persistent" :
{
"indices.breaker.total.limit" : "95%"
}
}
查询修改后的限制:
GET _cluster/settings
{
"persistent" : {
"indices" : {
"breaker" : {
"total" : {
"limit" : "95%"
}
}
},
"xpack" : {
"monitoring" : {
"collection" : {
"enabled" : "true"
}
}
}
},
"transient" : {
"cluster" : {
"routing" : {
"allocation" : {
"enable" : "all"
}
},
"max_shards_per_node" : "900000"
}
}
}
参考文档
如何理解CircuitBreakingException: [parent] Data too large的问题? - Elastic 中文社区