1-6-集群角色规划

熊 0 阅读 日志平台

ES8自2020年2月发布至今已有一年多时间 , 相较于es7而言 , 最大的改变是彻底删除_type , 并默认开启三层安全配置 , 进一步提高了集群安全性 , 同时kibana的实用性也进一步提升 , 大部分日常操作都可以通过web界面完成。本系列教程使用最新的es8.8版本 , 从运维角度出发 , 以构建日志平台为目的 , 以尽可能贴近实际生产的场景案例 , 优先使用简易的部署方式和kibana图形化界面操作。

1. 规划分析

1.1 集群架构

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

1.2 预估容量

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

1.3 热节点规模预估

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

  • 预留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

1.4 温节点规模预估

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

磁盘与内存的比例

有效保留期(天)

需存储的数据量(GB)

所需总磁盘空间(GB)

所需总内存 (GB)

100:1

23

1012

1214

12

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

节点

CPU(核)

内存(GB)

数据盘(GB)

warm-1

1

6

607

warm-2

1

6

607

1.5冷节点规模预估

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

磁盘与内存的比例

有效保留期(天)

需存储的数据量(GB)

所需总磁盘空间(GB)

所需总内存 (GB)

1000:1

30

660

792

1

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

节点

CPU(核)

内存(GB)

数据盘(GB)

cold-1

1

1

792

1.6 master节点预估

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

节点

CPU(核)

内存(GB)

数据盘(GB)

master

1

2

0

2. 集群规划设计

  • 组件调用关系

    ELK-base-cluster-role-1
  • ES集群组件关系

    ELK-base-cluster-role-2
  • 节点角色与配置

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

    主机名

    CPU

    内存

    数据盘

    es角色

    其他服务

    ip

    es-master

    4C

    4G

    50

    master,ingest

    kibana、fleet server、filebeat、minIO、自定义APP、Grafana、Prometheus

    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


参考链接

ELK Stack生产实践——集群角色规划 (qq.com)