温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

elasticsearch怎么排查故障

发布时间:2026-10-29 09:16:26 来源:亿速云 阅读:98 作者:小樊 栏目:软件技术

Elasticsearch(ES)故障排查一般遵循**“先看集群状态 → 再查节点/分片 → 再看日志 → 最后定位具体场景”的思路。下面给你一套实用排查手册**,适合运维和开发人员。


一、先确认集群整体状态(最关键)

1. 查看集群健康状态

GET /_cluster/health?pretty

重点关注:

  • status
    • green:正常
    • yellow:副本未分配(通常可用)
    • red:主分片丢失(有数据不可用)
  • unassigned_shards:未分配分片数
  • number_of_pending_tasks:堆积任务

2. 查看集群状态详情

GET /_cluster/state?pretty
GET /_cluster/stats?pretty

二、节点层面排查

1. 查看节点状态

GET /_cat/nodes?v
GET /_nodes/stats?pretty

关注:

  • CPU / 内存 / 磁盘使用率
  • heap_used_percent(建议 < 85%)
  • 是否有节点 missing 或频繁掉线

2. 磁盘空间(非常常见故障)

GET /_cat/allocation?v

常见错误:

  • disk watermark exceeded
  • 节点只读(index.blocks.read_only_allow_delete)

解决示例:

PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.threshold_enabled": false
  }
}

(生产环境要谨慎)


三、分片与索引排查(高频问题)

1. 查看分片分配情况

GET /_cat/shards?v
GET /_cat/indices?v

常见问题:

  • UNASSIGNED 分片
  • INITIALIZING 长时间不变
  • RELOCATING 卡住

2. 查看未分配原因(非常重要)

GET /_cluster/allocation/explain?pretty

会直接告诉你:

  • 磁盘不足
  • 副本数 > 节点数
  • 节点不在分配规则中

3. 索引级别问题

GET /索引名/_settings
GET /索引名/_mapping

常见问题:

  • mapping 冲突
  • 字段数过多(index.mapping.total_fields.limit)

四、日志排查(定位根因)

1. ES 日志位置

  • 默认:$ES_HOME/logs/
  • 文件:
    • elasticsearch.log
    • gc.log

重点看:

  • WARN / ERROR
  • OutOfMemory
  • circuit_breaking_exception
  • master not discovered

2. JVM & GC 问题

GET /_nodes/stats/jvm?pretty

关注:

  • Full GC 频繁
  • Heap 持续上涨不释放

五、常见故障场景速查

✅ 集群变红(red)

可能原因:

  • 主分片丢失
  • 节点宕机且无可恢复副本

排查:

GET /_cluster/allocation/explain

✅ 写入变慢

常见原因:

  • 副本数过多
  • refresh_interval 太小
  • bulk 太大
  • 磁盘 IO 瓶颈

优化:

PUT /索引名/_settings
{
  "index.refresh_interval": "30s"
}

✅ 查询慢

排查:

GET /索引名/_search
{
  "profile": true
}

✅ 节点频繁掉线

可能:

  • 网络抖动
  • 内存压力
  • 磁盘 IO 高

看:

GET /_cat/nodes?v&h=name,heap.percent,ram.percent,load_1m,disk.used_percent

六、推荐监控工具

  • Kibana → Stack Monitoring
  • Prometheus + Grafana
  • elasticsearch-exporter

七、排查总结流程图(简化版)

集群状态
  ↓
节点 / 磁盘 / 内存
  ↓
分片分配 explain
  ↓
索引 / mapping
  ↓
ES 日志 + GC

如果你愿意,可以告诉我:

  • ES 版本
  • 报错信息(截图或日志)
  • 是写入慢 / 查询慢 / 集群 red / 节点掉线

我可以帮你针对性分析具体故障原因。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手