您可以通過Elasticsearch(簡(jiǎn)稱ES)的health API查看集群的健康狀態(tài),并根據(jù)健康狀態(tài)排查并規(guī)避可能存在的風(fēng)險(xiǎn)。

前提條件

已創(chuàng)建阿里云ES實(shí)例,創(chuàng)建方法請(qǐng)參見創(chuàng)建阿里云Elasticsearch實(shí)例

操作步驟

  1. 登錄目標(biāo)阿里云ES實(shí)例的Kibana控制臺(tái)。
    具體操作步驟請(qǐng)參見登錄Kibana控制臺(tái)
  2. 在左側(cè)導(dǎo)航欄,單擊Dev Tools(開發(fā)工具)。
  3. Console中,執(zhí)行以下命令查看集群的健康狀態(tài)。
    GET /_cluster/health
    正常情況下,返回如下結(jié)果。
    {
      "cluster_name" : "es-cn-45xxxxxxxxxxxxk1q",
      "status" : "green",
      "timed_out" : false,
      "number_of_nodes" : 2,
      "number_of_data_nodes" : 2,
      "active_primary_shards" : 18,
      "active_shards" : 36,
      "relocating_shards" : 0,
      "initializing_shards" : 0,
      "unassigned_shards" : 0,
      "delayed_unassigned_shards" : 0,
      "number_of_pending_tasks" : 0,
      "number_of_in_flight_fetch" : 0,
      "task_max_waiting_in_queue_millis" : 0,
      "active_shards_percent_as_number" : 100.0
    }
    status表示集群的健康狀態(tài),取值為greenyellowred
    集群健康狀態(tài) 狀態(tài) 說明
    red 不是所有的主要分片都可用。 表示該集群中存在不可用的主分片。可以理解為某個(gè)或者某幾個(gè)索引存在主分片丟失的情況。
    yellow 所有主要分片可用,但不是所有副本分片都可用。 表示該集群中某個(gè)或者某幾個(gè)索引存在副本分片存在丟失的情況。
    green 所有主要分片和副本分片都可用。 表示集群中所有的索引都很健康,不存在丟失的分片。
    如果您的集群處于yellow狀態(tài),此時(shí)進(jìn)行密碼修改、集群升配等集群變更操作時(shí)周期會(huì)比較長(zhǎng)。建議修復(fù)集群狀態(tài)為green后,再進(jìn)行操作。造成yellow狀態(tài)的原因是索引存在副本分片丟失的情況,需要查找并修復(fù)集群中有問題的索引,命令如下:
    • 索引狀態(tài)查詢命令
      curl -u <用戶名>:<密碼> http://<host>:9200/_cat/indices                   
      通過以上命令,您可以查找有問題的索引名稱,即狀態(tài)為yellow的索引名稱。有問題的索引
    • 索引狀態(tài)修復(fù)命令

      當(dāng)您設(shè)置的索引副本數(shù)大于當(dāng)前節(jié)點(diǎn)數(shù)減1時(shí),會(huì)導(dǎo)致集群處于yellow狀態(tài)。以下代碼僅針對(duì)此情況的索引的副本數(shù)進(jìn)行調(diào)整。例如,您購(gòu)買的集群節(jié)點(diǎn)數(shù)為3,但是個(gè)別索引副本數(shù)也為3,這樣集群就會(huì)處于yellow狀態(tài)。此時(shí)設(shè)置問題索引副本數(shù)為2即可。

      curl -XPUT -u <用戶名>:<密碼> http://<host>:9200/<有問題的索引名稱>/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(<當(dāng)前節(jié)點(diǎn)數(shù)-1>)}'              
      說明 當(dāng)您完成實(shí)例重啟、擴(kuò)容或其他自定義配置后,請(qǐng)根據(jù)阿里云ES實(shí)例的節(jié)點(diǎn)數(shù)量為索引設(shè)置合理的副本數(shù),這將有效提高ES服務(wù)的可靠性和穩(wěn)定性。