1、出现问题原因
上述问题是由于磁盘使用率过高所导致。数据节点的磁盘使用率存在以下三个水位线,超过水位线可能会影响Elasticsearch或Kibana服务:
- 1、磁盘使用率超过85%:会导致新的分片无法分配。
- 2、磁盘使用率超过90%: Elasticsearch会尝试将对应节点中的分片迁移到其他磁盘使用率比较低的数据节点中。
- 3、磁盘使用率超过95%:系统会对Elasticsearch集群中的每个索引强制设置read_only_allow_delete属性,此时索引将无法写入数据,只能读取和删除对应索引。
2、临时解决办法
只会解决展示的报错,如果磁盘真的达到了阈值,过一会还会报错
下面的操作的具体含义是: 取消只允许删除,只读的状态; 改完后数据可以正常插入
PUT /_all/_settings
{
"index.blocks.read_only_allow_delete": null
}
3、根本解决办法
①清除不使用的索引,释放磁盘空间
②更改elasticsearch.yml ES阈值容量
cluster.routing.allocation.disk.watermark.flood_stage: 99%
③检查当前系统中的大文件,释放因其他服务异常导致的磁盘使用异常
④增加磁盘容量
4、临解决办法细节
ES存储数据和日志的路径,通过application.yml进行修改编辑
- path.data尽量配置在磁盘空间大的文件目录下,已保证有足够的空间可以存储索引数据,防止空间爆满写不了索引和后期的数据迁移。