ElasticSearch集群搭建
1 环境和版本
1.1 操作系统
干干静静的centos7系统,选取的是mini的iso最小化安装CentOS Linux release 7.9.2009 (Core)
1.2 ElasticSearch版本
本文使用的版本是8.11.3
,下载地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html
1.3 集群环境
IP | 主机名 |
---|---|
10.10.2.241 | deploy1 |
10.10.2.242 | deploy2 |
10.10.2.243 | deploy3 |
2 安装
2.1 准备
2.1.1 关闭selinux(可选,在所有节点执行)
setenforce 0 && sed -i 's|SELINUX=\(.*\)|SELINUX=disabled|g' /etc/selinux/config
2.1.2 开放防火墙端口(在所有节点执行)
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9201/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --zone=public --add-port=9301/tcp --permanent
firewall-cmd --reload
2.1.3 为ElasticSearch建立普通用户(在所有节点执行)
建立普通用户,用户名可自定义(本文为elasticsearch
):useradd elasticsearch
2.1.4 调整系统配置(在所有节点执行)
2.4.1.1 增加可打开的文件数:
echo 'elasticsearch soft nofile 65535' >> /etc/security/limits.conf
echo 'elasticsearch hard nofile 65535' >> /etc/security/limits.conf
注意:上面两行命令中elasticsearch
为建立的普通用户的用户名
2.4.2.2 增加最大虚拟内存
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
2.2 部署(官方文档)
注意:部署过程中都将以elasticsearch
用户进行操作
2.2.1 上传部署包(在所有节点执行)
- 将部署包上传到
/home/elasticsearch
目录 - 进入到
/home/elasticsearch
目录,解压部署包:tar zxvf elasticsearch-8.11.3-linux-x86_64.tar.gz
2.2.3 部署第一个ElasticSearch(在第一个节点执行)
进入到/home/elasticsearch/elasticsearch-8.11.3
目录
2.2.3.1 启动ElasticSearch
执行命令./bin/elasticsearch -p pid -d
启动ElasticSearch
2.2.3.2 配置ElasticSearch
编辑vim ./config/elasticsearch.yml
去掉transport.host: 0.0.0.0
前面的#
2.2.3.3 停止ElasticSearch
KILL掉ElasticSearch进程kill $(cat ./pid)
2.2.3.4 启动ElasticSearch
执行命令./bin/elasticsearch -p pid -d
启动ElasticSearch
2.2.3.5 创建集群Token
执行命令./bin/elasticsearch-create-enrollment-token -s node
创建集群Token,记录输出的值。后面其他节点加入集群时要用。
2.2.4 部署其他ElasticSearch(在非第一个节点执行)
进入到/home/elasticsearch/elasticsearch-8.11.3
目录
2.2.4.1 加入集群
执行命令./bin/elasticsearch -p pid -d --enrollment-token xxxxxx
2.3 部署(简单方式)
注意:部署过程中都将以elasticsearch
用户进行操作
2.3.1 上传部署包(在所有节点执行)
- 将部署包上传到
/home/elasticsearch
目录 - 进入到
/home/elasticsearch
目录,解压部署包:tar zxvf elasticsearch-8.11.3-linux-x86_64.tar.gz
2.3.2 配置ElasticSearch(在所有节点执行)
编辑vim ./config/elasticsearch.yml
,用如下内容覆盖:
xpack.security.enabled: false
discovery.seed_hosts: ["10.10.2.241:9300", "10.10.2.242:9300", "10.10.2.243:9300"]
cluster.initial_master_nodes: ["deploy1"]
http.host: 0.0.0.0
transport.host: 0.0.0.0
2.3.3 启动ElasticSearch
执行命令./bin/elasticsearch -p pid -d
启动ElasticSearch
3 验证
3.1 为ElasticSearch建立用户(在所有节点执行)
进入到/home/elasticsearch/elasticsearch-8.11.3
目录,执行命令./bin/elasticsearch-users useradd test -p 123456 -r superuser
创建名为test
密码为123456
的超管用户
3.2 查询ElasticSearch集群状态(在任意节点执行)
注意:按上面2.2章节部署后默认开启HTTPS,按上面2.3章节部署后关闭了HTTPS。所以下面curl命令需要按实际调整
3.2.1 查询节点状态
curl -k -u test:123456 https://10.10.2.241:9200/_cat/nodes?v
curl -k -u test:123456 https://10.10.2.242:9200/_cat/nodes?v
curl -k -u test:123456 https://10.10.2.243:9200/_cat/nodes?v
3.2.2 查询集群状态
根据查询节点状态输出确认主节点IP,然后执行
curl -k -u test:123456 https://替换为主节点IP:9200/_cat/health?v
3.3 验证ElasticSearch集群高可用
- 登录主节点,进入到
/home/elasticsearch/elasticsearch-8.11.3
目录 - 执行
kill $(cat ./pid)
停止服务 - 查询节点状态
curl -k -u test:123456 https://其他节点IP:9200/_cat/nodes?v
,其他节点会变为master
- 执行
./bin/elasticsearch -p pid -d
启动服务 - 查询节点状态
curl -k -u test:123456 https://当前节点IP:9200/_cat/nodes?v
,当前节点会加入集群