变为只读问题
跑在线上的elasticsearch服务突然不可以新增/修改数据了,但是查询是正常的
看了一下日志发现
1 | flood stage disk watermark [95%] exceeded on [oeTRcb8iT_Kwo-s-GF4Yww][oeTRcb8][/var/lib/elasticsearch/nodes/0] free: 1.9gb[4%], all indices on this node will be marked read-only |
这是由于磁盘空间不足,导致Elasticsearch触发磁盘保护,强制将所有索引设置成了只读状态
由于不是云服务器,不能进行立马扩容,删除掉一些无用的数据后,先将磁盘的阈值关掉,之后在进行磁盘扩容
1 | PUT 192.168.1.220:9200/_cluster/settings |
可用参数有
cluster.routing.allocation.disk.threshold_enabled
:是否开启磁盘空间的阈值,默认为truecluster.routing.allocation.disk.watermark.low
:控制磁盘使用率的低水位,默认是85%,当一个节点的磁盘空间使用率超过85%,就不会给该节点分配新的shardcluster.routing.allocation.disk.watermark.high
:控制磁盘使用率的高水位,默认是90%,当一个节点的磁盘空间使用率超过90%,就会将该节点的部分shard转移到其他节点上cluster.routing.allocation.disk.watermark.flood_stage
:洪水水位线,默认为95%,当一个节点的磁盘空间使用率超过95%,就会把所有索引设为只读。这是最后一个保护措施,索引的只读状态必须通过人工手动解除cluster.info.update.interval
:检查磁盘使用率的频率,默认30s
然后手动关掉索引的只读状态
1 | PUT 192.168.1.220:9200/_all/_settings |
磁盘扩容后将磁盘的阈值打开
1 | PUT 192.168.1.220:9200/_cluster/settings |