暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ES磁盘使用率过高导致集群状态red

IT那活儿 2023-11-09
1026
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!



问题背景



指标平台数据停留在前一天,通过服务日志排查到ES出现异常,无法写入,进入到kibana发现ES集群状态red。

ES集群有6个节点,每日写入量接近100G,ES节点1、节点2磁盘大小为1.7T,另外4个ES节点磁盘大小为2.2T,由于长期未关注ES磁盘空间占用情况,节点1、节点2磁盘使用率达到85%,导致集群状态red。




排查思路



2.1 当前问题

磁盘使用率过高,导致ES无法写入,并且索引状态red导致ES集群状态red。
注:磁盘使用率超过80%,ES会变成只读状态,当磁盘使用率恢复到80%以下,ES会恢复读写状态。

2.2 排查过程

df -h #查看磁盘使用率,超过80%。
1)删除指定索引,支持*,批量删除
curl -X DELETE http://elastic:elastic@IP:9200/索引
curl -X DELETE http://elastic:elastic@IP:9200/metric_dbl_2022*

2)查看ES集群状态
curl http://elastic:elastic@IP:9200/_cat/health?v
3)查看ES集群的各个节点
curl -XGET 'http://elastic:elastic@IP:9200/_cat/nodes?v'
4)查看索引状态
curl -XGET 'http://elastic:elastic@IP:9200/_cat/nodes?v'




解决方案



如果是索引red的问题,可以选择重构red的索引,或者删除索引,当前我们选择重构索引。

3.1 查看索引结构

curl http://elastic:elastic@localhost:9200/索引

3.2 新建临时索引

curl -X PUT http://elastic:elastic@localhost:9200/索引_back

3.3 拷贝临时索引

curl -X POST -H "Content-Type: application/json" http://elastic:elastic@localhost:9200/_reindex -d '{"source":{"index":"索引"},"dest":{"index":"索引_back"}}'

3.4 查询索引状态

curl http://elastic:elastic@localhost:9200/_cat/indices

3.5 删除旧的索引

curl -X DELETE http://elastic:elastic@localhost:9200/索引
重启应用建立索引:
sh elastic.sh start

3.6 还原数据

curl -X POST -H "Content-Type: application/json" http://elastic:elastic@localhost:9200/_reindex -d '{"source":{"index":"索引_back"},"dest":{"index":"索引"}}'

3.7 删除临时索引

curl -X DELETE http://elastic:elastic@localhost:9200/索引_back

建 议:

  • 1)定时检查磁盘剩余空间,保证空间处于正常范围内;
  • 2)设置索引有效期,将超过一定期限的索引进行删除;
  • 3)定时检查ES索引状态,一旦发现问题及时排查。

END


本文作者:事业二部(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论