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