问题重现:
1、es中创建索引时,需要说明分片和副本数
2、创建后,可以查看集群状态
粗框为主分片,细框为副本分片,集群颜色:
这里集群状态为黄色,说明分片出了问题。
原因探究:
1、寻找到无法分配的索引分片
http://192.168.191.131:9200/_cat/shards?v&s=state:desc
state为unassigned代表未分配的分片。
2、查询分片未分配的理由
http://192.168.191.131:9200/_cluster/allocation/explain
问题分析:从节点上的磁盘使用情况来看,节点的磁盘空间利用率超过了集群设置的低水位标记(cluster.routing.allocation.disk.watermark.low=85%),实际可用空间只有 14.18%
解决办法
解决办法有三个:
①扩大磁盘
②删除部分历史索引,腾出磁盘空间
③更改es设置
这里我选择更改es设置,更改每个节点的配置文件
1、在节点目录下打开配置文件
vim elasticsearch.yml
2、在每个节点的配置文件中添加:
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: 90%
cluster.routing.allocation.disk.watermark.high: 95%
cluster.routing.allocation.disk.watermark.flood_stage: 98%
3、其他节点同理
4、重启es