【ES实战】ES集群节点迁移与缩容补充说明
【ES实战】ES集群节点迁移与缩容补充说明
【ES实战】ES集群节点迁移与缩容
文章目录
- 【ES实战】ES集群节点迁移与缩容补充说明
- 1、集群的现状分析和集群的规划
- 2、集群健康关注点,变化关注点
- 3、集群的可缩容实例个数
- 4、监控指标说明
1、集群的现状分析和集群的规划
(新机器部署安装角色不知道排的是否正确?)
- 确认目前的部署方式
- 确认项
- master与data实例是否分离部署
- 单机器是否部署了多个data角色实例
- 确认服务器存储使用情况
- 确认方式:可以通过
GET _cat/nodes?v&s=ip
命令和GET _cat/indices?v&s=store.size:desc
命令结果来确认。node.role
中mdi
代表master
和data
未分离node.role
中mi
代表master
角色不包含data
node.role
中di
代表data
角色不包含master
- 同一个IP下出现多个包含
d
的代表,同一台机器下部署了多个data实例。 store.size
代表目前主分片和副本分片一共占的存储大小。
- 确认项
- 新的部署要求
- 若不是完全替换集群中所有的机器,则端口号与之前保持一致。
- master与data实例分离部署,一台机器上可以部署一个data实例和一个master。
- 若集群原来采用的是单机部署多个data实例,则新扩容的机器上也可以部署多个data实例
- 若集群未采用单机多data实例部署,则不进行单机多data实例部署。
- 若单机需要部署1个master+2个data实例,则服务器最低配置需要20C 128G。存储按实际情况来。
2、集群健康关注点,变化关注点
(扩容,迁移后重点关注查看哪些项?)
通过命令来查询集群的健康情况和节点实例情况
-
GET _cat/health?v
:查询集群健康情况,status
值可以为green
,yellow
,red
三种。green
:集群上所有索引的主分片和副本分片全部属于正常状态。yellow
:集群上所有索引的主分片均已正常,还存在部分副本分片为正常。red
:集群上存在部分主分片不正常。
对于索引分片未正常的情况,可以参考:【ES实战】分片无法分配
-
GET _cat/nodes?v&s=ip
:查询集群上节点实例的情况,检查对应的实例是否已经正确加入集群。角色(node.role
)是否正确。 -
GET _cat/shards?v&s=state,ip,index
:查询集群上索引分片的情况。检查集群分片的迁移情况,state
不为STARTED
,均需要关注。对于数据迁移可以参考:【ES实战】节点数据的清空
对于索引分片无法正常的情况,可以参考:【ES实战】分片无法分配
3、集群的可缩容实例个数
(用户上报的缩容数字和预操作数不匹配的时候不知道如何处理)
- 通过排除节点数据且不下节点的方式,将数据集中在某个数量的ES实例中,通过监控,存储,集群未发生故障,排除的节点数量代表集群目前实际可以缩容的机器数。
- 因为集群健康度导致的资源浪费(无法正常缩容的),需要对业务对集群进行治理。治理方向主要为大分片,无用索引,无效数据生命周期等等。
- 对于为达到最小化部署标准(3台机器),可以尝试与用户沟通进行缩容。
- 通过告警寻找故障率较高的机器,优先缩容和替换。
4、监控指标说明
(查看集群情况promes的时候重点关注哪些项?)
-
集群层面
- 集群状态(cluster status)
- 节点数(nodes)
- 待执行任务数(pending tasks)
- 索引个数(indices)
- 总存储(Size)
- 分片数(total shards)
- 未分配分片(unassigned)
- 正在初始化分片(initializing)
- 正在迁移的分片(relocating)
-
节点层面
- 读、写、删除的tps、延迟,包括各节点的最小值、最大值、均值、当前值
- 各节点的监控指标:cpu使用率(CPU utilization),节点负载(load average),节点内存使用(Memory useage),磁盘使用率(Disk of path usage)
- heap使用内存(heap used)进程启动内存为31G、GC次数(GC count)、GC耗时(GC time)
- 读、写线程的情况,rejected属性的线程数量,只增不减(重启实例重置),不一定代表当前的最大值,可代表历史最大值
- 写数据线程:bulk线程池活跃线程数(bulk active)、index 线程池活跃线程数(index active)、bulk线程池排队的任务数(bulk queue)、index线程池排队的任务数(index queue)、拒绝的bulk任务数(bulk rejected)、拒绝的index任务数(index rejected)
- 读数据线程:search线程池活跃线程数(search active)、get线程池活跃线程数(get active)、search线程池排队的任务数(search queue)、get线程池排队的任务数(get queue)、拒绝的search任务数(search rejected)、拒绝的get任务数(get rejected)
-
索引层面
- 索引主分片数(index primary shards)
- 索引的副本数(index replicas)
- 索引存储大小(Index Size)
- 索引segment个数(Segment Count)
- *索引segment占用内存(Segment Memory)
- 索引写tps(Index Rate)
- 索引读tps(Search Rate)
- 索引refresh频率(Refresh Rate)
- 索引Flush频率(Flush Rate)
- 索引删除文档数(Document deleted count)
- 索引Translog大小(transLog size)