教程 elasticsearch tutorial

健康检查

集群健康状态直接影响 Elasticsearch 的稳定性与可用性。通过健康检查,可以及时发现分片异常、节点失联等问题,保障系统稳定运行。

1. 集群健康状态

使用以下 API 查看整体健康状态:

bash
GET /_cluster/health

`

返回示例:

json
{
  "cluster_name": "my-cluster",
  "status": "yellow",
  "number_of_nodes": 3,
  "active_primary_shards": 5,
  "active_shards": 10,
  "unassigned_shards": 1,
  ...
}

状态含义:

  • ✅ green:所有主分片与副本分片均正常
  • ⚠️ yellow:主分片正常,部分副本未分配(常见于单节点部署)
  • ❌ red:部分主分片不可用,存在数据丢失风险

2. 节点检查

查看所有节点的状态和角色:

bash
GET /_cat/nodes?v=true

可用字段:ip、heap.percent、cpu、node.role、master 等

3. 分片状态检查

检查分片分配、未分配和异常状态:

bash
GET /_cat/shards?v=true

查看未分配分片原因:

bash
GET /_cluster/allocation/explain

4. 日志检查

  • Elasticsearch 日志路径通常为 /var/log/elasticsearch/
  • 重点关注 GC、分片分配失败、节点断开等警告和错误日志

5. 常见问题排查

问题 可能原因 解决建议
Yellow 状态 缺少副本分片 增加节点或调整分片策略
Red 状态 主分片丢失或损坏 恢复索引或检查磁盘问题
节点频繁掉线 内存不足、网络不稳定 增加资源、排查网络配置
查询响应缓慢 查询过重、分片过多、字段未优化 优化查询与映射,合并分片

定期执行健康检查和指标监控,是保障 Elasticsearch 集群稳定运行和及时预警的关键手段。