DELETE logs-2026.09.*
PUT _all/_settings
{"index.blocks.read_only_allow_delete": null}
GET _cat/allocation?v

日志集群写了半天,所有写入突然报 blocked by: [FORBIDDEN/12/index read-only / allow delete (api)],_cat/allocation 显示磁盘使用率 95.2%。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,集群有三级水位,85% 不再往该节点分片,90% 尝试把分片挪走,95% 直接把索引设成只读块。到这一步是 flood_stage 生效,目的是防止磁盘写满把节点拖垮。只读块不会随磁盘下降自动消失。

「磁盘水位只读」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

处理上按这个顺序:先删过期索引或扩容 把磁盘降到 90% 以下;再手工清掉只读块 这一步要单独做;核对三个水位阈值是否符合当前磁盘规划;把日志索引的 ILM 策略补上 别等满了再处理。

改完只确认一件事:写入恢复 200,_cat/allocation 里各节点磁盘回落到 80% 上下。

作者 9823189