解决:ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];


使用ES API执行请求

PUT http://127.0.0.1:9200/索引名称/_settings { "index.blocks.read_only_allow_delete": null }

可能是因为ES的数据目录所在的磁盘空间不够导致

需要解决磁盘空间

修改步骤,本例以elasticsearch-5.3.3为例:

先停止Elasticsearch。 修改配置文件中,数据的存储目录和日志的存储目录,配置文件在 elasticsearch-5.3.3/config/elasticsearch.yml 修改数据存储路径:path.data: /usr/xc/elasticsearch-data(新的路径信息) 修改日志存储路径:path.logs: /usr/xc/elasticsearch-log(新的路径信息) 迁移数据文件,把 elasticsearch-5.3.3/data 下的nodes文件夹移动或复制到 /usr/xc/elasticsearch-data/下,移动或复制后的目录:/usr/xc/elasticsearch-data/nodes 迁移日志文件,把 elasticsearch-5.3.3/logs 下的日志文件移动或复制到 /usr/xc/elasticsearch-log/下,移动或复制后的目录:/usr/xc/elasticsearch-log/logs 授权,把 nodes(/usr/xc/elasticsearch-data/nodes)文件夹归属为 elastic(要创建一个elastic用户,用这个用户启动elasticsearch的) 用户,命令:chown -R elastic:elastic * 授权,把 /usr/xc/elasticsearch-log/下的所有日志文件归属为elastic用户,命令:chown -R elastic:elastic * 切换到elastic用户,进入elasticsearch-5.3.3/bin/下,启动Elasticsearch命令:./elasticsearch -d 查看索引是否正常:http://IP:9200/_cat/indices?v,索引健康度显示为黄色或绿色说明迁移成功,可以正常访问ES。 想要索引的健康度变成绿色,需要配置集群。