ES8生产实践——集群角色规划

前言

ES8自2020年2月发布至今已有一年多时间,相较于es7而言,最大的改变是彻底删除_type,并默认开启三层安全配置,进一步提高了集群安全性,同时kibana的实用性也进一步提升,大部分日常操作都可以通过web界面完成。本系列教程使用最新的es8.8版本,从运维角度出发,以构建日志平台为目的,以尽可能贴近实际生产的场景案例,优先使用简易的部署方式和kibana图形化界面操作。由浅入深,带领大家逐步上手和掌握ELK技术栈。更多ELK相关内容欢迎访问官方文档或本人博客笔记:https://www.cuiliangblog.cn/catalog/10898409

业务场景需求

日志类业务,假设理想情况下,此集群每天最多能够采集20GB的原始日志,需要经常查询最近7天数据,历史数据最大查询时间为30天,日志数据归档存储最多为60天。

规划分析

集群架构

日志类业务,通常情况下首选热温架构。如果有数据归档存储需求,可加入冷节点存储归档数据。
热节点使用高速SSD+小内存机器,温节点使用低速HDD+大内存机器,冷节点使用最便宜的DAS/SAN/磁带存储,组合达到最大性能和最低成本。

预估容量

原始数据量和索引后所占磁盘空间之间的比例大约为 1.1,所以20GB的原始数据预计会在磁盘上产生 22GB的索引数据。
加上副本分片(通常为1副本)后,此数值会翻倍,每天为44GB。
在30天内,主副分片占用量为1320GB,加上归档存储30天的数据(通常为0副本)占用量660GB,总计1980GB,这就是集群需要处理的总量。

热节点规模预估

在预估数据节点时,需要注意以下几点:

  • 预留 15%警戒磁盘水位空间。
  • 为错误余量和后台活动预留+ 5%。
  • 保留等效的数据节点以处理故障。

基于这些数据,我们便可以确定热节点所需的总磁盘空间和总内存量。

磁盘与内存的比例有效保留期(天)需存储的数据量 (GB)所需总磁盘空间 (GB)所需总内存 (GB)
30:1730837012

为保障数据完整性,避免单点故障,同一索引的主副分片不能位于同一节点,因此热温节点数量最少各2台。考虑到hot节点写入负载较高,为提高集群写入能力,规划三台节点,热节点的最低配置如下所示:

节点CPU(核)内存(GB)数据盘(GB)
hot-114123
hot-214123
hot-314123

温节点规模预估

热节点上超出保留期的数据将会转移到温节点。通过计算这些节点需要存储的数据量,我们便可以预估所需的规模,计算时也需要将高磁盘水位线和后台活动预留的开销考虑在内。

磁盘与内存的比例有效保留期(天)需存储的数据量(GB)所需总磁盘空间(GB)所需总内存 (GB)
100:1231012121412

温节点的最低配置如下所示

节点CPU(核)内存(GB)数据盘(GB)
warm-116607
warm-216607

冷节点规模预估

温节点上超出保留期的数据将会转移到冷节点。

磁盘与内存的比例有效保留期(天)需存储的数据量(GB)所需总磁盘空间(GB)所需总内存 (GB)
1000:1306607921

本实验中仅使用一台冷节点为例演示,存储到冷节点的索引不设置副本数。冷节点的最低配置如下所示

节点CPU(核)内存(GB)数据盘(GB)
cold-111792

master节点预估

除了数据节点,我们通常还需要专用master节点,在实际生产环境建议部署3台master节点,以便提高集群的弹性和可用性。由于这些节点不处理任何流量,所以它们的规模很小,后期随着业务集群规模增长再提高配置或增加master节点数。master节点的最低配置如下所示

节点CPU(核)内存(GB)数据盘(GB)
master120

集群规划设计

组件调用关系

elk stack架构图-组件调用关系.jpg

ES集群组件关系

yuque_diagram.jpg

节点角色与配置

建议将数据节点内存至少配置到4G以上,随着数据写入以及Elastic Agent部署,2G内存经常会出现OOM。考虑到es节点还需要运行logstash、kibana、filebeat、kafka等服务,集群角色与配置规划如下:

主机名CPU内存数据盘es角色其他服务ip
es-master4C4G50Gmaster,ingestkibana、fleet server、filebeat、minIO、自定义APP、Grafana、Prometheus192.168.10.132
es-hot12C4G120Gdata_content,data_hotkafka、elastic agent192.168.10.133
es-hot22C4G120Gdata_content,data_hotkafka、elastic agent192.168.10.134
es-hot32C4G120Gdata_content,data_hotkafka、elastic agent192.168.10.135
es-warm12C6G600Gdata_content,data_warmlogstash、elastic agent192.168.10.136
es-warm22C6G600Gdata_content,data_warmlogstash、elastic agent192.168.10.137
es-cold1C2G800Gdata_content,data_coldelastic agent192.168.10.138

软件与系统版本

操作系统:rockylinux:9.2
内核版本:5.15.49
ELK版本:8.8.2
prometheus版本:2.45.0
grafana版本:10.0.2

查看更多

微信公众号

微信公众号同步更新,欢迎关注微信公众号第一时间获取最近文章。在这里插入图片描述

博客网站

崔亮的博客-专注devops自动化运维,传播优秀it运维技术文章。更多原创运维开发相关文章,欢迎访问https://www.cuiliangblog.cn

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值