一、使用ELK的时候,有一天服务器日志满了,我将日志清理,重启logstash之后,报错[INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"index [applog] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"})
二、错误消息指示索引由于“FORBIDDEN/12/index read-only / allow delete (api)”条件而被阻止。表明索引配置为只读,但也设置为允许删除操作。这种矛盾很可能导致错误。
三、解决办法(清理磁盘空间或扩容之后执行)
1、输入以下命令来解除集群的磁盘阈值限制:(如果你清理出了足够空间这一步可不用执行)
需要注意的是,禁用磁盘阈值可能会导致磁盘空间继续减少,最终可能导致系统不稳定或崩溃。因此,建议您在进行此操作之前确保已经释放足够的磁盘空间,并在可能的情况下进行磁盘容量扩展。
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_cluster/settings -d '{ "transient": { "cluster.routing.allocation.disk.threshold_enabled": false } }'
此外,一旦您解决了磁盘空间问题,记得重新启用磁盘阈值,以确保系统在将来的磁盘使用情况下能够稳定运行。您可以使用类似的curl命令来重新启用磁盘阈值:
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_cluster/settings -d '{ "transient": { "cluster.routing.allocation.disk.threshold_enabled": true } }'
2、输入以下命令来解除所有索引的只读状态:(已经清理出足够空间直接执行这个命令即可)
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
3、确保将上面命令中的http://localhost:9200
替换为你自己的Elasticsearch服务器的正确地址和端口。