Elasticsearch 健康状态

  • 绿色: 完美, 不需要Debug
  • 黄色: 全部主Shard可用, 但副Shard不可用, 什么是主副稍后再说.
  • 红色: 部分主Shard不可用.

黄色

一般来说副Shard不可用不会影响到业务.

为了保证高可用, ES会保存多份数据到别的Node. 那么每个Shard就会有多个复制Shard, 这时的复制Shard就是副Shard.

在下面图中就是当number_of_replicas=1时的情况, 由于此集群中只有一个Node, 所以副Shard不可用, 就会是黄色状态.

ElasticHQ

可以通过重新设置number_of_replicas值让Indice正常. 详情可以看这篇文章

curl -X PUT 'http://localhost:9200/user_balance/_settings' -d '{"number_of_replicas": 0}'

红色

主Shard不可用就会影响到业务, 当操作的数据被路由到不可用的主Shard时就会发生TimeOut等错误.

检查磁盘

磁盘如果满了es也会进入红色状态, 这时候需要清理磁盘让出空间, 但我发现清理磁盘后es不会自动恢复, 调用接口依然报错, 还需要重启一下es才行.

其他原因

解决办法参考How to resolve unassigned shards in Elasticsearch.

主要有两个方法:

  • 重新路由, 像这样: 官方文档在这
    curl -XPOST 'localhost:9200/_cluster/reroute' -d 
    '{
      "commands": [
          {
              "allocate_stale_primary": {
                  "index": "user_balance",
                  "shard": 1,
                  "node": "",
                  "accept_data_loss": "true"
              }
          }
      ]
    }'
    
  • 重启大法: 将Indice先Close再Open.

参考

  • How to resolve unassigned shards in Elasticsearch

你可能感兴趣的:(Elasticsearch 健康状态)