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 上传部署包(在所有节点执行)

  1. 将部署包上传到/home/elasticsearch目录
  2. 进入到/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 上传部署包(在所有节点执行)

  1. 将部署包上传到/home/elasticsearch目录
  2. 进入到/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集群高可用

  1. 登录主节点,进入到/home/elasticsearch/elasticsearch-8.11.3目录
  2. 执行kill $(cat ./pid)停止服务
  3. 查询节点状态curl -k -u test:123456 https://其他节点IP:9200/_cat/nodes?v,其他节点会变为master
  4. 执行./bin/elasticsearch -p pid -d启动服务
  5. 查询节点状态curl -k -u test:123456 https://当前节点IP:9200/_cat/nodes?v,当前节点会加入集群
posted @ 2024-02-22 17:55  柚子苹果果  阅读(171)  评论(0编辑  收藏  举报