ES生产环境遇到的unassigned问题及ES搭建集群教程

2020-05-22 00:00:00 索引 集群 节点 副本 器上

近期一直在整理公司这边的Elasticsearch,因为服务器上的ES不稳定,部门里其他人都没有接触过这个(我也没有接触过...)

接手这个任务后,通过ip:端口访问了一下ES,获取到ES部分信息,当前端口节点名称、当前服务器ES版本信息


通过head插件访问到ES页面后,发现ES的健康值呈现黄色,黄色意味着所有的数据都是可用的,但是某些复制没有被分配;界面上显示了两个节点,有一个节点是unassigned状态的;通过Xshell 6访问到服务器,通过ps -ef | grep elastic 命令查看当前正在运行的ES服务,发现只有一个进程,打开es目录下conf目录下的elasticsearch.yml文件,发现并没有配置集群信息,服务器上仅仅只是一个单机的。

一个单机的ES,在呈现自己的节点同时,还呈现出一个未知的unassigned节点,纳闷了老半天;

通过head插件查看每个索引下的分片副本数,发现每个索引的副本数都配置的为1,基本上锁定了问题所在了;服务器上搭建了一套单机的ES,但是之前的索引在创建的时候是已集群的方式来创建的索引,为每个索引都指定了分片副本数,但是实际上只有一个节点,所以这个多出的副本没有地方可以存放,导致出现了未知的unassigned节点;

找到问题后就好解决了,将每个索引的副本数重置为0即可解决这个未知节点问题;

put ip:端口/my_index/_settings
{
"number_of_replicas":
}

通过PUT请求,修改指定索引的number_of_replicas参数,将所有索引都修改为即可;

相关文章