記一次es 集羣red的排查解決過程

問題現象:es 集羣狀態red,查看基本信息以下:curl

解決過程:url

1- 查看未分配分片信息code

GET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason

 2- 首先設置全部索引副本個數全爲0blog

curl -XPUT "http://localhost:9200/_settings" -d' {  "number_of_replicas" : 0 } '{"acknowledged":true}

3- 執行下面語句查看集羣狀態:索引

curl localhost:9200/_cluster/health?pretty

別急,此時確定仍是red狀態,由於通常red狀態是由於有主分片沒有被分配 io

4-  使用下面語句查看未分配分片class

GET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason

發現有未分配主分片,個人解決方案是,在確認該索引能夠刪除的狀況下,直接刪除索引集羣

5- 刪除主分片未分配索引權限

curl -XDELETE localhost:9200/***

6- 確認是否還有未分配主分片grep

curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED

7- 查看集羣狀態,此時,若是6結果爲空,則狀態爲green或者yellow

8- 可是稍後重建索引以後,發現集羣狀態又變爲red

9- 查看未分配主分片緣由:

curl -XGET localhost:9200/_cluster/allocation/explain?pretty

緣由發現是索引往節點掛載的data目錄寫操做時,出現accessdenied拒絕;

解決方式:chmod -R 777 data

修改data目錄操做權限,再次刪除上述索引,後集羣狀態正常; 

相關文章
相關標籤/搜索