共计 2446 个字符,预计需要花费 7 分钟才能阅读完成。
单节点的 ES 需要在处理大量数据的时候需要消耗大量内存和 CPU 资源,数据量大到一定程度就会产生处理瓶颈,甚至会出现宕机。为了解决单节点 ES 的处理能力的瓶颈及单节点故障问题,我们考虑使用 ES 集群。
一、ES 集群的优点:
优化数据处理能力:通过多台 ES 共同处理数据,提升处理能力,节省时间。
容错能力增强:解决了 ES 单点故障问题,让架构更稳定。
数据安全:分布式数据存储,数据更安全
实验部署准备
两台 ES 机器:node1、node2
同步时间:chrony
静态 IP:192.168.98.201 192.168.98.202
关闭防火墙、selinux
配置 ES yum 源
准备工作参考 https://www.zutuanxue.com/home/4/52_138
- ELK 学习准备
二、集群部署
部署步骤:
- node1、node2 安装 jdk、Elasticsearch 软件包
- node1、node2 设置配置文件配置集群
- 启动 ES 验证集群
2.1、软件包安装
软件包安装, 机器 node1 node2
以 node1 为例
jdk 安装通过 rpm 软件包
[root@node1 ~]# rpm -ivh jdk-13.0.2_linux-x64_bin.rpm
Elasticsearch 安装通过 rpm 软件包
[root@node1 ~]# rpm -ivh elasticsearch-7.6.0-x86_64.rpm
2.2、node1、node2 设置配置文件配置集群
配置文件修改
[root@node1 ~]# egrep -v "(^#|^$)" /etc/elasticsearch/elasticsearch.yml
cluster.name: zutuanxue_elk 集群名称, 所有节点必须一样
node.name: node1 节点名称
#node.master: true 定义为主
path.data: /var/lib/elasticsearch 数据路径
path.logs: /var/log/elasticsearch 日志路径
network.host: 0.0.0.0 监听地址
http.port: 9200 监听端口
discovery.seed_hosts: ["node1", "node2"] 可扫描监控的主机
cluster.initial_master_nodes: ["node1", "node2"] 开启服务的时候谁可以竞选为主[第一次启动集群]
node2 配置文件
[root@node2 elasticsearch]# egrep -v "(^#|^$)" /etc/elasticsearch/elasticsearch.yml
cluster.name: zutuanxue_elk
node.name: node2
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.98.202
discovery.seed_hosts: ["node1", "node2"]
cluster.initial_master_nodes: ["node1", "node2"]
拓展
当您想要与其他主机上的节点组成群集时,你必须使用 discovery.seed_hosts 来提供群集中可以成为 master,可能存在并且可以连接到的其他节点的列表,使得 discovery process 能够发现节点)。此设置通常应包含群集中所有可以成为 master 节点的地址。需要注意的是,IPv6 主机必须放在括号内。此设置的默认值为127.0.0.1,[::1]。cluster.initial_master_nodes
当你第一次启动全新的 Elasticsearch 集群时,会有一个集群引导 (cluster bootstrapping) 步骤,这个步骤会确定一个在第一次选举中投票被计数的、并且可以成为 master 节点的集合。cluster.initial_master_nodes 参数说明:es7 引用了 [Bootstrapping a cluster](https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-discovery-bootstrap-cluster.html) 后,首次启动 Elasticsearch 集群需要在集群中的一个或多个符合主节点的节点上显式定义初始的符合主节点的节点集。这称为群集自举,这仅在群集首次启动时才需要。
2.3 启动 ES 验证集群
启动 ES
[root@node1 ~]# systemctl restart elasticsearch
[root@node2 ~]# systemctl restart elasticsearch
确保服务正常启动:端口正常打开
2.4 集群测试
web 站点测试方法:http://192.168.98.201:9200/_cluster/health?pretty
页面输出介绍
{"cluster_name" : "zutuanxue_elk", # 集群名称
"status" : "green", # 集群状态
"timed_out" : false, # 超时设置
"number_of_nodes" : 2, # 集群节点数量
"number_of_data_nodes" : 2, # 集群数据节点数量
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
正文完
星哥玩云-微信公众号