主题
健康检查
集群健康状态直接影响 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/explain4. 日志检查
- Elasticsearch 日志路径通常为
/var/log/elasticsearch/ - 重点关注 GC、分片分配失败、节点断开等警告和错误日志
5. 常见问题排查
| 问题 | 可能原因 | 解决建议 |
|---|---|---|
| Yellow 状态 | 缺少副本分片 | 增加节点或调整分片策略 |
| Red 状态 | 主分片丢失或损坏 | 恢复索引或检查磁盘问题 |
| 节点频繁掉线 | 内存不足、网络不稳定 | 增加资源、排查网络配置 |
| 查询响应缓慢 | 查询过重、分片过多、字段未优化 | 优化查询与映射,合并分片 |
定期执行健康检查和指标监控,是保障 Elasticsearch 集群稳定运行和及时预警的关键手段。