项目跑了一段时间,发现ES写索引异常,排查日志,报错org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];
ElasticSearch进入“只读”模式,只允许删除。
  ES说明文档中有写明,当ES数据所在目录磁盘空间使用率超过90%后,ES将修改为只读状态,所以初步判断是磁盘空间不足导致ES不允许写入。

如果是由于其他原因导致磁盘报满而且又不能删文件,只能通过加磁盘空间解决,这里提醒一下ES日志和数据存储目录尽量不要和ES安装在同一个目录,可以通过elasticsearch.yml配置。

path.data尽量配置在磁盘空间大的文件目录下,已保证有足够的空间可以存储索引数据,防止空间爆满写不了索引和后期的数据迁移。

问题描述:在向elasticsearch中插入字段时出现blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]的错误
解决办法:
curl -XPUT -H “Content-Type: application/json” http://127.0.0.1:9200/_all/_settings -d ‘{“index.blocks.read_only_allow_delete”: null}’

-all可以改为自己的索引名称,也可以直接执行


问题延伸:
一、可以在centos下执行curl

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐