背景:同事同步商品的es时,总是报index read-only。如下图。
然后各种排查,先看了一下es的数据节点磁盘已经满了。大部分都是日志数据。先删除日志数据。然后还是报这种错。
原因:当存储空间使用超过95%时,elasticsearch会将索引设置为只读模式,所以新产生的日志不能入库,也不能清除。因为商品和日志都是用的同一个es,导致同步商品也有问题。
解决:curl -XPUT -H “Content-Type: application/json” http://${ip}:9200/_all/_settings?pretty -d ‘{“index.blocks.read_only_allow_delete”: null}’ -u elastic
执行了数据节点的es还是只读,随后发现主节点磁盘也满了。原因是因为kafka消息实例化的数据太多了,最后更改了kafka的配置文件,保留最近五天的数据(原本是保存7天的数据)。然后执行上面的命令还是不行。最后发现是主节点也设置为了只读模式。最后使用上面的指令执行一下,es就好了。