一.背景
今天收到告警短信发现某个业务系统几台服务器的日志收集服务filebeat均已下线,把Filebeat都重启之后,准备到Kibana查阅业务系统的日志,检索异常条目,发现从凌晨开始的日志条目都没有,今天的索引也没有建成,查看集群监控,发现Elasticsearch集群状态为red,也无法继续使用和写入数据,于是开始着手排查故障。
二.系统环境:
所使用集群架构组件及版本信息如下:
操作系统OS版本:CentOS release 7.9.2009 (Core)
| 名称 | 版本号 |
|---|---|
| filebeat | 7.10.0 |
| kafka | 2.4.1 |
| zookeeper | 3.5.7 |
| logstash | 7.5.2 |
| elasticsearch | 7.5.2 |
| kibana | 7.5.2 |
三.故障处理流程
1.首先在Kibana的控制台Dev Tools上使用
GET _cat/shards?v&s=state,prirep
查看索引的分片shard状态

发现主(state中标记为p,primary缩写)副分片(state中标记为r,replica缩写)都处于UNASSIGNED未分配的状态,所以Kibana上无法读取对应名为idr-attendance_2021.11.17以及.monitor-es-7-2021.11.16的索引上的数据
2.继续使用explain接口查看具体原因
GET /_cluster/allocation/explain
{
"index": "idr-attendance_2021.11.17",
"shard": 0,
"primary": true
}
把步骤1中提到的当天出现分片分配异常索引idr-attendance_2021.11.17,和具体的分片编号0,填入到上面的参数中,由于主分片和副本都有异常,首先把primary置为true,用来查询主分片异常原因,之后置为false,用来查询副本分片异常原因,调接口查询结果如下图所示


被折叠的 条评论
为什么被折叠?



