Docker中Enterprise Search容器异常:Kibana索引迁移因磁盘水位线受阻
解决Elasticsearch磁盘水位触发只读块导致Enterprise Search启动失败问题
问题根源
之前磁盘空间不足时,Elasticsearch触发了flood-stage watermark(洪水级磁盘水位)机制,自动给所有索引(包括Kibana的.kibana_7.14.0_001索引)添加了read-only-allow-delete只读块。即使后续修复了磁盘空间,这个只读块不会自动解除,导致Kibana无法完成对象迁移,进而引发Enterprise Search启动失败。
解决步骤
验证Elasticsearch磁盘状态与水位设置
若使用docker-compose,直接执行容器内命令查询:# 查看集群水位配置 docker-compose exec elasticsearch curl -XGET '_cluster/settings?include_defaults=true&pretty' # 查看磁盘使用详情 docker-compose exec elasticsearch curl -XGET '_cat/disk?v'确认磁盘空间已恢复,同时检查
disk.watermark.low、disk.watermark.high、disk.watermark.flood_stage的默认设置(分别为磁盘使用率85%、90%、95%)是否适配当前环境。手动解除所有索引的只读块
执行命令清除只读限制:docker-compose exec elasticsearch curl -XPUT -H "Content-Type: application/json" '_all/_settings' -d '{ "index.blocks.read_only_allow_delete": null }'检查Kibana索引状态
确认.kibana相关索引已恢复可读写:docker-compose exec elasticsearch curl -XGET '_cat/indices/.kibana*?v'索引状态为
green或yellow即正常;若为red,可先重启Elasticsearch再重新检查。重启Kibana与Enterprise Search容器
只读块解除后,重启相关服务:docker-compose restart kibana enterprise-search可选:调整磁盘水位阈值(按需)
如果当前磁盘空间紧张,可临时调整Elasticsearch的磁盘水位设置(需重启生效),在docker-compose.yml的Elasticsearch配置中添加:environment: - cluster.routing.allocation.disk.watermark.low=80% - cluster.routing.allocation.disk.watermark.high=85% - cluster.routing.allocation.disk.watermark.flood_stage=90%
内容的提问来源于stack exchange,提问作者Ant
相关产品推荐
相关产品推荐

