- 部署了单节点集群
由于只有一个节点,而elasticsearch采用默认配置(5分片,1副本),因此群集无法放置副本会处于黄色状态。
解决方案如下:
可以将副本计数降低到0或将第二个节点添加到群集,以便可以将主分片和副本分片安全地放在不同的节点上。这样做以后,如果您的节点崩溃,群集中的另一个节点将拥有该分片的副本。
- elasticsearch分配分片错误
进一步可能的原因:已经为集群中的节点数过分分配了副本分片的数量,则分片将保持UNASSIGNED状态。其错误码为:ALLOCATION_FAILED。
解决方案如下:
reroute:重新路由命令允许手动更改群集中各个分片的分配。
- 磁盘使用过载
磁盘使用超过设定百分比85%。
cluster.routing.allocation.disk.watermark.low——控制磁盘使用的低水位线。 它默认为85%,这意味着Elasticsearch不会将分片分配给使用磁盘超过85%的节点。 它也可以设置为绝对字节值(如500mb),以防止Elasticsearch在小于指定的可用空间量时分配分片。
解决方案:
(1)查看磁盘空间是否超过85%。
(2)删除不必要的索引,以释放更多的空间
- 磁盘路径权限问题
磁盘路径权限问题。安全起见,默认Elasticsearch非root账户和启动。相关的Elasticsearch数据路径也是非root权限。
解决方案:
去数据存储路径排查权限,或者在data的最外层设置:chown -R elasticsearch:elasticsearch data
elasticsearch 健康状态API
- 集群状态查看
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
- 分片状态查看
curl -XGET 'http://localhost:9200/_cat/shards?v'
- 查看unsigned 的原因
curl -XGET 'http://localhost:9200//_cluster/allocation/explain'
- 查看集群中不同节点、不同索引的状态
curl -XGET 'http://localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason'
参考
Comments | NOTHING