问题描述:
es中数据一直没有更新进来,第一步想到的是看看logstash是否将数据打到了es中,就发现了这个报错:
{"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"}
而且整个日志文件一直在刷,从错误的字面意思看就是,啥结点,只让读了。开始怀疑是不是es出了问题。但是对于es又不是太熟,就网上巴拉巴拉搜了一下,大家给出的意见都差不多,就是es所占磁盘容量达到阈值了,就会启动自我保护机制。禁止所有索引数据的写入,就只让读了,就会出这个问题。
问题解决方法一:
在kibana中执行以下命令,解除所有索引的锁定状态,就会ok了。
# 解除所有索引的只读锁定 PUT /_all/_settings {"index.blocks.read_only_allow_delete": null} # 使用通配符批量解除锁定 PUT /auth-server-prd*/_settings?pretty { "index.blocks.read_only_allow_delete": null }
问题解决方法二:
若是想根本解决这个问题,那么就是调整这个自我保护的阈值默认是85(这个默认值其实挺好不建议改),这个需要更改es的配置文件了。
cd /apps/elasticsearch-6.3.2/config/ vim elasticsearch.yml # 更改如下配置,没有的话就新增该配置,不过不建议改 cluster.routing.allocation.disk.watermark.flood_stage: 99% # 若是不更改这个值,也可以在末尾加另一个配置,与上面二选一即可 cluster.routing.allocation.disk.threshold_enabled: false
总结
问题排查很是快,解决也很快。再次记录加深印象,方便后面查找,感谢以下文字提供的解决思路:
https://blog.csdn.net/Darling_for/article/details/104021263 https://blog.csdn.net/weixin_42557481/article/details/103686467