全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

在线运维

更新时间:2017-11-08 11:06:40

集群健康

在Elasticsearch集群中可以监控统计很多信息,但是只有一个是最重要的:集群健康(cluster health)。集群健康有三种状态:RedYellowGreen

可以通过:curl -u 用户名:密码 http://domain:9200/_cluster/health来查看。

颜色 状态 备注
Red 不是所有的主要分片都可用 表明该集群中存在不可用的主分片,可以理解为某个或者某几个索引存在主分片unassigned(丢失)的情况。
Yellow 所有主要分片可用,但不是所有复制分片都可用 表明该集群中某个或者某几个索引副本分片unassigned(丢失)的情况。
Green 所有主要分片和复制分片都可用 表明集群中所有的索引都很健康不存在unassigned的分片。

温馨提示:上述健康状态的描述说明,为了保证您的Elasticsearch集群处于Green状态,需要保证任何时候所有的主要分片和副本都可用,所以建议您的replica设置数量永远不要超过“amount_Node - 1”的数量,这样阿里云Elasticsearch可以保证在您使用dedicated master的时候集群重启时集群会保持在Green状态。

故障处理(持续补充…)

集群处于yellow状态

如果您的集群处于Yellow状态的话,此时进行修改密码或者升级会导致升级周期比较长,建议修复集群成健康状态(Green)然后再进行操作。造成Yellow状态的原因是索引存在副本分片unassigned(丢失)的情况,需要查找集群中有问题的索引。

索引状态查询命令:

  1. curl -u 用户名:密码 http://domain:9200/_cat/indices
  2. # 找到有问题的索引名称。如果是因为设置的副本数大于当前节点数减1导致集群处于Yellow状态,
  3. # 需调整有问题的索引的副本个数。

索引状态修复命令如下:

  1. curl -XPUT -u 账号:密码 http://domain:9200/有问题的索引名称/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(当前节点数减1)}'
  2. # 比如申请的实例节点数为3但是个别索引副本数为3,这样集群就会处于yellow的状态。
  3. # 设置问题索引副本数为2即可。

当您完成实例操作(重启/扩容/自定义配置)后,请根据您的实例节点数量设置合理副本数。这将有效提高您的elasticsearch 服务的可靠性和稳定性。

本文导读目录