资讯专栏INFORMATION COLUMN

ES集群规划优化方案

社区管理员 / 892人阅读



1.1 现状资源接入量


监控设备达到4000+节点,其中网络设备400+ (监控项数约80万,采集频率1分钟),日数据量200G 左右。
1.2 问题
ES为普通 6节点普通集群,未做冷热分类,读写压力巨大,导致数据写入缓慢、查询数据返回超时。


1.3 计划采取措施

  • 常规集群模式变更为冷(6个月历史数据)热(1个月数据)集群;
  • 热节点采用固态硬盘替换机械硬盘,提升读写性能。





ES配置




2.1 预备硬件基本信息

生产环境预备的是:

  • 3主节点:内存64G,8核,5T的机械硬盘;
  • 3热数据节点:内存64G,16核,5T的固态硬盘;
  • 3冷数据节点:内存64G,8核,50T的机械硬盘。

图片

2.2 现状分析

1)主节点磁盘资源使用不完


因为仅主节点非数据节点不存储数据,因此主节点不需要多带带配置5T的硬盘。


2)主机数较多


因为主机内存仅为64g内存,因此单个主机仅能部署1个数据节点,节点间的通信是主机间通信,相比主机内节点间通信会增加通信延时,节点数越多要求的主机数越多,不仅增加节点间通信延时,同时扩展性很差,因此建议采用较大内存主机,主机内部署多个节点。


2.3 规划逻辑

1)主节点和数据节点共用主机


主节点和数据节点在同一个主机上能减少主节点与数据节点间的延时。


2)规划数据量及所需承载节点数

  • 热设备存储30天的数据,冷设备存储6个月的数据,生产环境目前每天产生的数据大概在200G左右,周期为30天之前的数据迁移至冷节点。
  • 总热数据量=200G*30 约6t数据,按单个64g内存数据节点规划可以承载1.85t数据(内存存储比为30),至少需4个热数据节点。
  • 总冷数据量=200G*6*30 约36t数据,按单个64g内存数据节点规划可以承载32t数据(内存存储比为500),至少需要2个冷数据节点。

2.4 规划优化方案


1)主节点和热数据节点
按256g机器来规划,256g机器最多可以部署4个节点,其中一个节点当做主节点,其它部署为数据节点,因此需要2台256g作为主节点和热数据节点共用的主机,考虑单主机故障容灾,建议使用3台256g的机器作为主节点和热数据节点共用的主机。相比之前规划减少6台主机。
2)冷数据节点
目前3台64g内存的主机作为冷数据节点已达到上述至少2个冷数据节点的要求,因此可以暂不更改,如果资源足够,也可以采用2台128/256g内存的机器,每个主机上部署2个冷数据节点,共4个冷数据节点。
结合规划逻辑和实际情况,目前的规划方案如下,后续可根据实际使用情况进行调整。
3)现场生产实际情况
目前有3台512G内存、48核、39T机械硬盘、4块2.9T固态硬盘的物理机(若不划分虚拟机,则4块固态硬盘可以叠加),因此方案改为:物理机不划分虚拟机,一台物理机上部署1个主节点(不占用磁盘)、2个热数据节点(使用固态硬盘)、1个冷数据节点(使用机械硬盘)。


2.5 配置文件

1)生成证书,在node0执行一次即可(xpack开启)


cd elasticsearch
export  JAVA_HOME=/home/shsnc/snc_product/elasticsearch/jdk ##修改JDK的环境变量
./bin/elasticsearch-certutil ca ##一直回车即可
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 ##一直回车即可
mv elastic-certificates.p12 ./config/    ##将证书文件放置到node0指定路径
mv elastic-stack-ca.p12 ./config/      ##将证书文件放置到node0指定路径
scp elastic-certificates.p12 elastic-stack-ca.p12 192.168.XXX.178:/home/shsnc/snc_product/elasticsearch/config/    ##将证书文件放置到node1指定路径
scp elastic-certificates.p12 elastic-stack-ca.p12 192.168.XXX.179:/home/shsnc/snc_product/elasticsearch/config/    ##将证书文件放置到node2指定路径
./bin/x-pack-env ##执行环境变量
./bin/x-pack-security-env ##执行环境变量
./bin/elasticsearch-setup-passwords interactive ##手动配置每个用户密码
export  JAVA_HOME=/home/shsnc/snc_product/jdk ##还原JDK的环境变量


2)主节点配置


cluster.name: shsnc
node.name: node0
network.host: 192.168.XXX.177
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: false
node.ingest: true
bootstrap.memory_lock: true
cluster.routing.allocation.same_shard.host: true
xpack.license.self_generated.type: basic
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /home/shsnc/snc_product/elasticsearch/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /home/shsnc/snc_product/elasticsearch/config/elastic-certificates.p12
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false
node.attr.box_type: hot
discovery.zen.ping.unicast.hosts: ["192.168.XXX.177:9300","192.168.XXX.178:9300","192.168.XXX.179:9300"


3)热数据节点配置

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129089.html

相关文章

发表评论

0条评论

社区管理员

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<