# 健康检查

URL: https://caijiao.org/elasticsearch/05.admin/02.cluster-health
Source: docs/elasticsearch/05.admin/02.cluster-health.md
Description: 本章介绍如何使用 API 和常用工具进行 Elasticsearch 健康检查，监控集群状态并排查常见问题。

集群健康状态直接影响 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 集群稳定运行和及时预警的关键手段。
