报错:retrying failed action with response code:
403 ({"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];
问题原因:主要是因为磁盘不够用了。Elasticsearch磁盘占用大于95%时将所有索引置为只读。
如果你自己手动删除了数据,Elasticsearch不会给你自动切换回来,不过你可以手动去修改。就是用上面的命令就好了。
当弹性搜索检测到节点的磁盘接近满时,它会将节点持有的任何索引设置为仅读取状态以保护其在这些指数中拥有的数据。由于只能读取状态不能应用于碎片级别,因此您可能会从未接近其水印级别的节点收到此错误,因此请确保检查其他节点。
默认的洪水阶段水位,这是95%的磁盘弹性搜索已确定为其总大小,可以path.data动态更改 281.如果您有较大的磁盘,您可能需要手动设置此磁盘,因为 4TB 的 95% 大约是 110GB,或者暂时增加它,以便删除索引并释放空间。
磁盘空间问题解决后,您可以使用此呼叫将索引设置回可写状态:
解决方案:
1.curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
2.也可以直接在kibana的console中直接运行以下命令:
PUT /_all/_settings
{"index.blocks.read_only_allow_delete": null}
弹性搜索将上述值视为删除指数值的请求。