ES水平扩容data节点WBS

55 阅读3分钟

一、背景

es节点CPU在高峰时间段使用率超过80%,业务担心支撑不了活动,申请水平扩容data节点。

KSA和WGA两套cpos es都要做水平扩容。




二、集群信息

带xpack的es

7.10.2172.25.171.34mdi920016C/32G/300G2022.05.20扩容+xpack,2024.02.23磁盘扩容到600G
7.10.2172.25.171.33mdi920016C/32G/300G2022.05.20扩容+xpack,2024.02.23磁盘扩容到600G
7.10.2172.25.171.32mdi920016C/32G/300G2022.05.20扩容+xpack,2024.02.23磁盘扩容到600G
7.10.2172.25.171.29di920016C/32G/300G2022.05.20扩容+xpack,2024.02.23磁盘扩容到600G
7.10.2172.25.171.25di920016C/32G/300G2022.05.20扩容+xpack,2024.02.23磁盘扩容到600G

配置文件路径: /opt/elasticsearch-7.10.2/config/elasticsearch.yml

插件: analysis-ik 7.10.2

ES版本: 7.10.2

jvm.option:16G

ES data路径:/opt/elasticsearch-7.10.2/data

kibana地址:http://172.25.171.33:5601

elasticsearch.username: "elastic"

elasticsearch.password: "a3b9ymeERz"

curl --user elastic:a3b9ymeERz http://172.25.171.29:9200

扩容节点使用RPM方式安装

数据路径 /data/elasticsearch/data

账号密码: yumdbuser / Stz8H6SY23

配置信息

  1. 172.25.171.34节点es yml
cluster.name: cpos                                                                                                                                        
node.name: vm172-25-171-34.ksc.com                                                                                                                        
node.master: true                                                                                                                                         
node.data: true                                                                                                                                           
path.data: /data/elasticsearch/data                                                                                                                       
path.logs: /data/elasticsearch/logs                                                                                                                       
bootstrap.memory_lock: false                                                                                                                              
network.host: 172.25.171.34                                                                                                                               
http.port: 9200                                                                                                                                           
discovery.seed_hosts: ["172.25.171.34","172.25.171.33","172.25.171.32","172.25.171.29","172.25.171.25"]                                                   
cluster.initial_master_nodes: ["172.25.171.34","172.25.171.33","172.25.171.32"]                                                                           
action.destructive_requires_name: false                                                                                                                   
http.cors.enabled: true                                                                                                                                   
http.cors.allow-origin: "*"                                                                                                                               
indices.memory.index_buffer_size: 20%                                                                                                                     
thread_pool:                                                                                                                                              
    search:                                                                                                                                               
        size: 80                                                                                                                                          
        queue_size: 2000                                                                                                                                  
                                                                                                                                                          
xpack.security.enabled: true                                                                                                                              
xpack.security.transport.ssl.enabled: true                                                                                                                
xpack.security.transport.ssl.verification_mode: certificate                                                                                               
xpack.security.transport.ssl.client_authentication: required                                                                                              
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12                                                                                
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12 

监控地址

infra-grafana.hwwt2.com/d/na_nxrE_m…




三、操作wbs

  1. 应用运维申请1个节点(新节点: 172.25.189.128)
  2. 资源16C/32G/600G 的中间件裸资源
  3. 变更报备
  4. 资源提供给DBA
  5. DBA检查资源的规格、数据盘挂载路径、数据盘文件格式等
  6. 初始化es服务所需的文件路径
/data/elasticsearch/data 
/data/elasticsearch/log
/data/elasticsearch/backup
  1. DBA部署data节点 (具体操作参考: 带XPACK的es水平扩容操作 ,这次操作的版本为 7.10.2

  2. 安装插件

  3. 配置jvm

主机内存的50%

  1. 配置es yml文件(注意标黄部分)
cluster.name: cpos                                                                                                                                        
node.name: vm172-25-171-34.ksc.com                                                                                                                        
node.master: false                                                                                                                                         
node.data: true                                                                                                                                           
path.data: /data/elasticsearch/data                                                                                                                       
path.logs: /data/elasticsearch/logs
path.repo: ["/data/elasticsearch/backup"]
bootstrap.memory_lock: false                                                                                                                              
network.host: xxx.xxx.xxx.xxx                                                                                                                               
http.port: 9200                                                                                                                                           
discovery.seed_hosts: ["172.25.171.34","172.25.171.33","172.25.171.32","172.25.171.29","172.25.171.25","xxx.xxx.xxx.xxx"]                                                   
cluster.initial_master_nodes: ["172.25.171.34","172.25.171.33","172.25.171.32"]                                                                           
discovery.zen.minimum_master_nodes: 2
action.destructive_requires_name: false                                                                                                                   
http.cors.enabled: true                                                                                                                                   
http.cors.allow-origin: "*"                                                                                                                               
indices.memory.index_buffer_size: 20%                                                                                                                     
thread_pool:                                                                                                                                              
    search:                                                                                                                                               
        size: 80                                                                                                                                          
        queue_size: 2000                                                                                                                                  
                                                                                                                                                          
xpack.security.enabled: true                                                                                                                              
xpack.security.transport.ssl.enabled: true                                                                                                                
xpack.security.transport.ssl.verification_mode: certificate                                                                                               
xpack.security.transport.ssl.client_authentication: required                                                                                              
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 
  1. 配置xpack信息

将master上的证书文件同步到新节点的对应路径下 /etc/elasticsearch/certs/

配置用户权限

注册 elasticsearch-keystore

# 配置的为ES集群之间tcp 9300 相互通讯的密码, elastic用户的密码
# 用于存储SSL/TLS密钥库(keystore)的密码,这个密码用于保护密钥库中的私钥和证书。
/usr/share/elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password

# 以下同时需要执行,密码相同
# 用于存储SSL/TLS信任库(truststore)的密码,信任库包含了Elasticsearch节点信任的证书列表
/usr/share/elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
  1. es集群分片策略调整,禁止新data加入shard平衡
  2. 启动新节点的es服务
  3. 平衡shard
  4. 检查
  5. 验证shard状态
  6. 监控对接

ES exporter 和 node exporter节点

如果新节点srv名字和原节点的srv不相同,应用运维提供信息后联系陈帅清洗

  1. 完成




四、回滚方案

  1. 修改分片分配策略,新节点上禁止分配shard

  2. 关停新节点es服务




五、补充

lue