现象
在进行索引请求时,返回类似 {[FORBIDDEN/12/index read-only/allow delete(api)];","type":"cluster_block_exception"} 的报错
原因
上述问题是由于磁盘使用率过高所导致。数据节点的磁盘使用率存在以下三个水位线,超过水位线可能会影响 Elasticsearch 或 Kibana 服务。
- 当集群磁盘使用率超过85%:会导致新的分片无法分配。
- 当集群磁盘使用率超过90%:Elasticsearch 会尝试将对应节点中的分片迁移到其他磁盘使用率比较低的数据节点中。
- 当集群磁盘使用率超过95%:系统会对 Elasticsearch 集群中对应节点里每个索引强制设置 read_only_allow_delete 属性,此时该节点上的所有索引将无法写入数据,只能读取和删除对应索引。
解决
- 通过delete命令清理集群过期数据等,释放磁盘空间
- 解除只读状态
PUT _all/_settings
{
"index.blocks.read_only_allow_delete": null
}