章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • ansible系列文章

  • Kubernetes笔记

  • elk

    • elk安装
    • docker-compose安装elk
    • filebeat-log相关配置指南
    • logstash提取日志字段到kibana仪表盘展示
    • 深入理解 ELK 中 Logstash 的底层原理
    • filebeat及logstash配置
    • es索引定期删除脚本
    • logstash线上配置文件
    • elk报错问题总结
    • es备份和还原
    • ES集群与角色规划
      • 集群架构
      • 预估容量
      • 热节点规模预估
      • 温节点规模预估
      • 冷节点规模预估
      • master节点预估
      • 组件调用关系
      • ES集群组件关系
      • 节点角色与配置
      • 软件与系统版本
    • ES8.8集群与Kibana部署
    • ElasticSearch可视化工具介绍
    • 使用docker构建ElasticSearch集群
  • jenkins

  • GitLabCI_CD

  • 专题
  • elk
章工运维
2024-03-12
目录

ES集群与角色规划

# 前言

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:1 7 308 370 12

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

节点 CPU(核) 内存(GB) 数据盘(GB)
hot-1 1 4 123
hot-2 1 4 123
hot-3 1 4 123

# 温节点规模预估

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

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

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

节点 CPU(核) 内存(GB) 数据盘(GB)
warm-1 1 6 607
warm-2 1 6 607

# 冷节点规模预估

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

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

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

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

# master节点预估

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

节点 CPU(核) 内存(GB) 数据盘(GB)
master 1 2 0

# 集群规划设计

# 组件调用关系

f690af1e2b0864a8.jpg

# ES集群组件关系

7a0cf713fca7ff13.jpg

# 节点角色与配置

建议将数据节点内存至少配置到4G以上,随着数据写入以及Elastic Agent部署,2G内存经常会出现OOM。
由于是实验环境,master节点暂部署一台,生产环境建议master节点3台。
fleet server节点建议部署在es集群之外,生产环境建议2台及以上组成集群,通过负载均衡方式管理与下发agent策略。
考虑到es节点还需要运行logstash、kibana、filebeat、kafka等服务,集群角色与配置规划如下:

主机名 CPU 内存 数据盘 es角色 其他服务 ip
es-fleet1 1C 1G 0 fleet server、filebeat、自定义APP 192.168.10.130
es-fleet2 1C 1G 0 fleet server、minIO、Grafana、Prometheus 192.168.10.131
es-master 4C 4G 50G master,ingest kibana、elastic agent 192.168.10.132
es-hot1 2C 4G 120G data_content,data_hot kafka、elastic agent 192.168.10.133
es-hot2 2C 4G 120G data_content,data_hot kafka、elastic agent 192.168.10.134
es-hot3 2C 4G 120G data_content,data_hot kafka、elastic agent 192.168.10.135
es-warm1 2C 6G 600G data_content,data_warm logstash、elastic agent 192.168.10.136
es-warm2 2C 6G 600G data_content,data_warm logstash、elastic agent 192.168.10.137
es-cold 1C 2G 800G data_content,data_cold elastic agent 192.168.10.138

# 软件与系统版本

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


原文链接 (opens new window)

微信 支付宝
上次更新: 2024/03/12, 17:22:04

← es备份和还原 ES8.8集群与Kibana部署→

最近更新
01
不花一分钱从0到1建站教程
04-22
02
批量拿取多台服务器的日志文件
04-21
03
高德MCP智能体搞定旅游计划
04-19
更多文章>
Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式