ElasticSearch服务端报错:FileSystemException: No space left on device

一、确认问题

  1. elasticsearch节点启动失败

  2. elasticsearch节点集群日志中有类似如下报错

    bash 复制代码
    ElasticsearchException: java.nio.file.FileSystemException: /usr/share/elasticsearch/workspace/data/nodes/0/state/_13qo.fdt: No space left on device

二、处理办法

问题原因

  • 主机磁盘空间不足
  • 正常情况下ES自身是有磁盘水位线(cluster.routing.allocation.disk.watermark)的设置,存储数据目录在非人为解除只读情况下不会打满磁盘,需要确认导致磁盘打满的根本原因,大致有以下方向:
    1. 水位线达到阈值后触发集群只读,运维人员手动解除了只读
    2. 集群日志级别过低,并且没有配置好滚动策略导致日志无法滚动或保存日志数量过大
      3.与其他服务共用了一块存储,其他服务打爆了磁盘

处理办法

根据 问题原因 中指出的思路排查出问题根本原因并按照以下思路处理

  1. 删除磁盘上服务的日志类文件,给ES留出能正常运行的空间

  2. 节点能够正常启动后立即设置集群只读可删

    bash 复制代码
    curl -s -XPUT -H "Content-Type: application/json" es访问地址/_cluster/settings -d '{"persistent": {"cluster.blocks.read_only_allow_delete": true}}'
  3. 删除ES集群监控类索引

    bash 复制代码
    curl -s -XDELETE es访问地址/.monitoring-es*
  4. 给数据量大、按时间创建的索引设置生命周期,只保留一定期限内的数据,超过期限的删除,关于索引生命周期管理(ILM)可参考https://elasticstack.blog.csdn.net/article/details/102728987

  5. 若与其他服务共用磁盘,建议拆分开,避免服务之间相互干扰,增加运维难度

  6. 最后处理完磁盘空间问题后,需要取消集群只读的设置

    bash 复制代码
    ​curl -s -XPUT -H "Content-Type: application/json" es访问地址/_cluster/settings -d '{"persistent": {"cluster.blocks.read_only_allow_delete": null}}'
相关推荐
Navicat中国5 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
知了学历孙老师7 小时前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
XCDoris7 小时前
郴州logo设计机构
大数据·人工智能·python
物联网软硬件开发-轨物科技8 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
zyseo89 小时前
谷歌SEO 准首页词挖掘脚本:找出排在第 8-20 名的隐藏流量
大数据·数据库·人工智能
xiaogai_gai10 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
jonyleek11 小时前
JVS数字底座私有化部署实践:Spring Cloud + K8S 实现文档平台开箱即用
elasticsearch·kubernetes·私有化部署·springcloud·minio·jvs企业文档·文档治理
skywsp12 小时前
Agent智能体架构设计-知识整理
大数据·人工智能
starzy199012 小时前
KafkaProducer 加载元数据:一条 MetadataRequest 的完整旅程
大数据·kafka
内容营销专家刘鑫炜12 小时前
AI搜索实战专家刘鑫炜:做AI搜索第一步,首先得让 AI 看到你
大数据·人工智能