本文主要是介绍es教程 关于磁盘不足导致的[FORBIDDEN/12/index read-only / allow delete (api)] - read only elasticsearch indices,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
缘起
在搭建好查询以后,我尝试着通过springboot项目向es中加入数据,但是一直提示以下异常:
[FORBIDDEN/12/index read-only / allow delete (api)] - read only elasticsearch indices
新手学习应该有很大几率碰到这个问题,特此记录
原因排查
查找了一些资料,原因在于硬盘空间不足,也确实如此,删除了冗余的东西以后疼出来一些空间,然而还是不行,需要手动设置一些东西。
通过查看日志文件,发现在之前就已经警告过了,只不过当时没有留意:
[2020-05-22T11:21:08,646][WARN ][o.e.c.r.a.DiskThresholdMonitor] [o4cZvrD] flood stage disk watermark [95%] exceeded on [o4cZvrD2RiCOItHhZpkieQ][o4cZvrD][\data\nodes\0] free: 15mb[0%], all indices on this node will be marked read-only
解决方案
- 腾出更大的空间无疑是必须的,据说使用空间大于95%就会出现这个问题。
- 有时间捣鼓的可以重新解压一份出来,新解压的会重新计算硬盘空间,也是据说,之前的es在空间满足要求之后不会自动解决这个问题。
- 修改配置,官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html
以下提供了三种情况下的配置
,具体配置:
#1.更新所有节点下配置(初次使用推荐)
PUT /_all/_settings
{"index.blocks.read_only_allow_delete": null
}
#2.更新twitter节点下配置(已新建节点情况下推荐)
PUT /twitter/_settings
{"index.blocks.read_only_allow_delete": null
}
#3.通用配置,node为你的节点名称
PUT /<node>/_settings
{"index.blocks.read_only_allow_delete": null
}
可使用postman或者其它接口调试工具进行访问。
以上是三种方式解决不同情况下的问题,因为我是第一次接触,还没有新建节点,故此,选择对所有节点更新,更新后立即生效,重新插入,提示插入成功。
这篇关于es教程 关于磁盘不足导致的[FORBIDDEN/12/index read-only / allow delete (api)] - read only elasticsearch indices的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!