Ubuntu 安装elasticsearch集群

本文详细指导如何在Ubuntu上为3台服务器搭建Elasticsearch集群,包括master和slave节点的配置,文件权限调整,安装、配置、启动以及访问测试,同时介绍了如何安装elasticsearch-head进行可视化管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 环境准备

准备三台服务器搭建集群环境

node1192.168.177.171
node2192.168.177.172
node3192.168.177.173

其中node1为master节点,node2,node3为slave节点

注意:以下都需要sudo权限,普通用户获取sudo权限操作指令:

教你如何在Ubuntu中创建 Sudo用户_寰宇001的博客-优快云博客_ubuntu创建sudo用户

普通用户切换root用户快速指令

sudo -s

一:安装ElasticSearch

1.下载

下载地址:下载 Elastic 产品 | Elastic

百度云:

链接:https://pan.baidu.com/s/1sQjpbiFIFhnSpa0_uCP53A 
提取码:AA56 

文件夹:elasticsearch

本文采用的是:elasticsearch-7.16.2

 2. 解压

tar -zxvf elasticsearch-7.16.2-linux-x86_64 (1).tar.gz

 3. 授权

3.1 没有/home/bin则自行新建(语法: sudo mkdir filename)

cd /home/bin

sudo mkdir es

3.2 给文件夹授权(存在可使用用户,可跳过)

注:es 启动不能使用root用户,需要新建一个普通用户

sudo adduser wcy

另外给用户授予sudo权限

sudo adduser wcy sudo

3.3 将elasticsearch-7.16.2文件夹移动到/home/bin/es目录下

sudo mv elasticsearch-7.16.2 /home/bin/es

3.4 给es目录授权

chown -R wcy:wcy /home/bin/es/

chown -R wcy:wcy /home/bin/es/elasticsearch-7.16.2/

3.5 修改sysctl.conf系统配置

vim /etc/security/limits.conf

文件最后按如下配置(添加):

vm.max_map_count=655360

保存,执行sysctl -p生效

sysctl -p

3.5 修改limits.conf系统配置

vim /etc/security/limits.conf

文件最后按如下配置(添加):

* soft nofile 65535

* hard nofile 65535

wcy soft nproc 4096

wcy hard nproc 4096

注:wcy是刚新增的用户

二. 集群配置

修改es配置文件(elasticsearch.yml)

vim /home/bin/es/elasticsearch-7.16.2/config/elastic-search.yml

1. master节点(node1)(elasticsearch.yml)

#集群名称
cluster.name: es-cluster

# 节点名称
node.name: node-1

# 定义node-1为主节点
node.master: true

# 定义node-1为数据节点
node.data: true

# 日志数据存储地址
path.data: /home/bin/es/elasticsearch-7.16.2/data
path.logs: /home/bin/es/elasticsearch-7.16.2/logs

#访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0

# 访问端口
http.port: 9221

# 集群通讯端口
transport.tcp.port: 9321

#配置所有节点
discovery.zen.ping.unicast.hosts: ["191.168.0.1:9321","191.168.0.2:9321","191.168.0.3:9321"]
cluster.initial_master_nodes: ["node-1"]

# 配置选举节点(数量安装候选master节点数/2 +1 ,即:N/2 +1)
# 3台master候选节点,此处就算2 (最好master节点数为奇数)
discovery.zen.minimum_master_nodes: 2

# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

2. 节点(node-2)(elasticsearch.yml)

#集群名称
cluster.name: es-cluster

# 节点名称
node.name: node-2

# 定义node-2不为matser节点
node.master: false

# 定义node-2为数据节点
node.data: true

# 日志数据存储地址
path.data: /home/bin/es/elasticsearch-7.16.2/data
path.logs: /home/bin/es/elasticsearch-7.16.2/logs

#访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0

# 访问端口
http.port: 9221

# 集群通讯端口
transport.tcp.port: 9321

#配置所有节点
discovery.zen.ping.unicast.hosts: ["191.168.0.1:9321","191.168.0.2:9321","191.168.0.3:9321"]
cluster.initial_master_nodes: ["node-1"]

# 配置选举节点(数量安装候选master节点数/2 +1 ,即:N/2 +1)
# 3台master候选节点,此处就算2 (最好master节点数为奇数)
discovery.zen.minimum_master_nodes: 2

# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

3. 节点(node3)(elasticsearch.yml)

只需要按照节点2中,修改node.name即可,其他与node3一致

4. 修改jvm.options(所有节点)

sudo vim /home/bin/es/elasticsearch-7.16.2/config/jvm.options

根据经验,最大堆大小应设置为 RAM 的 50%,但不超过 32GB(由于 Java 指针在较大堆中效率低下)。Elastic 还建议最大和最小堆大小的值相同。

这些值可以使用jvm.options文件中的 Xmx 和 Xms 设置进行配置。

配置如下:(具体需要根据实际服务器内存定义)

-Xms4g
-Xmx4g

5. 后台启动(wcy 用户)

su wcy
cd /home/bin/es/elasticsearch-7.16.2/bin/
./elasticsearch -d

6.开放端口

# 打开端口
sudo ufw allow 9221
sudo ufw allow 9321

# 重启防火墙
sudo ufw reload

7. 访问测试

浏览器访问

# 查看集群状态
http://ip:9221/_cat/health?v


# 查看节点状态
http://ip:9221/_cat/nodes?v

三:安装elasticsearch-head

1. 下载elasticsearch-head

下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

百度云:

链接:https://pan.baidu.com/s/1sQjpbiFIFhnSpa0_uCP53A 
提取码:AA56 

文件夹:elasticsearch

2. 解压elasticsearch-head

unzip elasticsearch-head-master.zip

      如果unzip报错:不存在

sudo apt-get update

sudo apt install unzip

然后再次执行unzip elasticsearch-head-master.zip

3. 移动elasticsearch-head-master

mv elasticsearch-head-master /home/bin/es/

4. 安装

npm install

如果npm报错:不存在

sudo apt install npm

然后再次执行npm install,安装中途失败就再次重试,可能是网络问题

5. 修改Gruntfile.js 文件

vim /home/bin/es/elasticsearch-head-master/Gruntfile.js

在文件最后面connect 字段下,添加:hostname:'*',

配置如下:

connect: {

    server: {

        options: {

            hostname:'*',

            port: 9220,

            base: '.',

            keepalive: true

        }

    }
}

6. 后台启动

cd /home/bin/es/elasticsearch-head-master/

sudo npm run start &

7.开启端口

# 打开端口
sudo ufw allow 9220

# 重启防火墙
sudo ufw reload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值