ES部署与服务标准_v1.1

109 阅读3分钟

ES规范

  1. 版本需要 ES7以上,目前默认版本 ES7.6.2
  2. ES服务数据盘挂载在 /data 下
  3. 默认没有权限认证,如有需要另外说明;kibana默认不带,如需请说明。
  4. 插件:分词器默认analysis-ik,如有其他需求另说明
  5. 默认端口9200(HTTP端口)和9300(TCP端口)
  6. 禁止同台ES主机混部ES服务
  7. 系统OS版本centos7以上
  8. ES的JVM大小建议为主机内存的50%(ES JVM大小最大只能32G)
  9. 如果有对数据保留时间有比较高的需求,磁盘空间要尽可能大
  10. 分片数量评估:

· 分片数量建议为data节点数的整数倍

· 单个分片大小保持在10GB~30GB之间

· 分片数量不容易调整,必须一次定型

· 根据数据量做评估,提前规划好分片数,不能过多,也不能过少

  1. 副本数replicas推荐1。若对数据稳定性无要求,配置为0
  2. 如果查询频次高,业务量大的话,master需要(算力8C/16G,不能有客户端连接),且单独部署。另外单独部署查询节点(协调节点)16c/32G,2台起。
  3. routing相关参数参考下面 “ES核心参数默认值”
  4. GC回收器默认使用CMS,老年代:年轻代=2:1。
  5. 数据 /data/elasticsearch/data 下。
  6. 日志路径在 /data/elasticsearch/log 下。



配置情况

配置套餐形式:

  1. 最小化配置:3台 4C/8G/50G (组件混合部署)
  2. 小型集群配置:3台 8C/16G/100G (组件混合部署)
  3. 基本型配置:6台8C/16G/50G (组件混合部署)
  4. 大型集群配置:3台master主机8C/16G +9台data主机 32C/64G/500G +4台coord主机 16C/32G (组件单独部署)

补充:

· ES只作为中间件使用,如果有数据存储的需求,磁盘容量需要另考量。

架构模型:

  1. 最小化集群:3节点 (混部)
  2. 标准集群:6节点(3master + 6data)(3台节点maser和data混部)
  3. 大型集群:16节点(3master + 9data + 4coord)

ES 核心参数默认值:

序号参数名默认数值
1max_shards_per_node3000
2transport.tcp.connect_timeout30s
3cluster.routing.allocation.disk.watermark.high90%
4cluster.routing.allocation.disk.watermark.low85%
5cluster.routing.rebalance.enableall
6cluster.routing.allocation.enableall
7cluster.routing.allocation.allow_rebalanceindices_all_active
8
9

JVM参数:

  1. CMS修改为G1 (优先使用)


## GC configuration
# 注释 CMS部分的参数
#-XX:+UseConcMarkSweepGC
#-XX:CMSInitiatingOccupancyFraction=75
#-XX:+UseCMSInitiatingOccupancyOnly

# 开启G1的参数
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-XX:G1ReservePercent=25
-XX:InitiatingHeapOccupancyPercent=30


#设置GC日志的相关参数,匹配9以上的JDK环境
9-:-Xlog:gc*,gc+age=trace,safepoint:file=/data/elasticsearch/log/gc.log:utctime,pid,tags:filecount=32,filesize=64m

说明:

  • ES7.10版本下默认为G1。
  • ES7.6.2版本下默认为CMS,需要手动改成G1。



基本监控




扩容与缩容

  1. 优先进行纵向扩容,把节点扩容到8核32GB或16核64GB的规格,然后再考虑横向扩容增加节点个数。
  2. 先迁移shard去别的节点,待shard转移完毕,开始停ES服务。



数据迁移方案

1、“扩容-缩容”方式(优势:0停机)

2、备份迁移(使用repo或者elasticdump)

3、双写