我想在mac os上使用elasticsearch 6,但是当我通过将文档添加到无存在索引来创建索引后,几秒钟索引更改为只读,如果添加文档或更新文档会出现此错误
"error" : {
"root_cause" : [
{
"type" : "cluster_block_exception",
"reason" : "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
}
],
"type" : "cluster_block_exception",
"reason" : "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
},
"status" : 403
}
我测试禁用只读
curl -H'Content-Type: application/json' -XPUT localhost:9200/test/_settings?pretty -d'
{
"index": {
"blocks.read_only": false
}
}'
{
"acknowledged" : true
}
但没有任何改变
我用ubuntu测试另一个系统上的弹性6它没问题然后我认为我的系统可能有问题但弹性搜索5.6.2正常工作没有任何错误
弹性日志
[2018-01-05T21:56:52,254][WARN ][o.e.c.r.a.DiskThresholdMonitor] [gCjouly] flood stage disk watermark [95%] exceeded on [gCjoulysTFy1DDU7f7dOWQ][gCjouly][/Users/peter/Downloads/elasticsearch-6.1.1/data/nodes/0] free: 15.7gb[3.3%], all indices on this node will marked read-only
答案 0 :(得分:27)
我有这个问题 我认为在弹性6中添加新设置以在空硬时小于5%时关闭指数 你可以通过elasticsearch.yml
中的下一行禁用它 cluster.routing.allocation.disk.threshold_enabled: false
然后重启elasticsearch。 我希望这对你有用
答案 1 :(得分:7)
复制/粘贴到Kibana控制台中的便利性
# disable threshold alert
PUT /_cluster/settings
{
"persistent" : {
"cluster.routing.allocation.disk.threshold_enabled" : false
}
}
# unlock indices from read-only state
PUT /_all/_settings
{
"index.blocks.read_only_allow_delete": null
}
答案 2 :(得分:4)
如果您正在Docker中进行弹性搜索,则Docker可能空间不足。运行docker volume prune
可以删除未使用的本地卷,或者在Docker Preferences中增加磁盘映像的大小。
答案 3 :(得分:0)
运行这些命令
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_cluster/settings -d '{ "transient": { "cluster.routing.allocation.disk.threshold_enabled": false } }'
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
如果您使用的是Docker容器,则必须确保容器中有足够的空间,并且其使用率应小于85%。
您可以通过运行以下命令清除悬空的图像和体积来弥补空间
# remove the dangling images
docker rmi $(docker images -f "dangling=true" -q)
# remove the dangling volumes
docker volume rm $(docker volume ls -qf dangling=true)
如果您仍然遇到空间问题,最好进入Docker > Preferences
为docker腾出空间后,您需要运行在本文顶部共享的上述CURL命令。