FORBIDDEN/12/index read-only / allow delete (api)-Elasticsearch/Logstash错误

logstash日志中显示

[FORBIDDEN/12/index read-only / allow delete (api)]

logstash无法向elasticsearch写入文档,原因大致是硬盘已满导致。

硬盘已满时elasticsearch由于没有空间无法索引更多的文档,而将自己切换为只读状态,以确保只读查询的可用性。

此时无法写入,且增加/清理空间后也不会自动恢复。

可以发送以下命令来手动关闭elasticsearch的只读状态

1
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

如果使用docker将elk安装在一个系统中,可能因为logstash日志过多而塞满硬盘导致以上问题。

使用下面脚本清理docker的日志

1
2
3
4
5
6
7
8
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"

FORBIDDEN/12/index read-only / allow delete (api)-Elasticsearch/Logstash错误

https://blog.rui.plus/2021/2021-7-15/

作者

Rui plus

发布于

2021-07-15

更新于

2021-07-15

许可协议

评论