【前言】ElasticSearch简称es(下文均称为es),是一款由java语言开发的强大且灵活的搜索和分析引擎,本文记录基于es7.17版本的es集群搭建。
一、环境装备
1、准备服务器
本文准备了三台linux服务器,服务器需要互通(可用ping命令检查),下文分别称呼为服务器1、服务器2、服务器3
2、es安装包下载
es官网下载对应系统的安装包,选择自己需要的版本。
二、安装及配置es
以下步骤以服务器1为示例
1、上传es安装包到服务器
本文上传路径是/opt/elasticsearch
2、解压
进入es安装目录解压安装包
#执行tar命令解压es安装包,如:
tar -xvzf elasticsearch-7.17.18-linux-x86_64.tar.gz
如图所示解压成功,会生成一个新的解压文件夹
3、新建es用户
由于es安全要求,es不允许使用root命令启动,因此需要新建用户并授权,命令如下
#执行useradd命令增加用户,如
useradd elastic
#执行passwd命令对新用户设置密码,改名了需要输入两次密码
passwd elastic
3.1、对新用户授权
chown -R elastic:elastic /opt/elasticsearch/elasticsearch-7.17.18
使用命令 ll 产看授权是否成功,如图,es解压的目录已授权给elastic用户
4、修改相关配置
4.1、修改elasticsearch.yml
进入es解压目录/config目录下
修改elasticsearch.yml文件,在该文件末尾增加以下内容:
cluster.name: elasticsearch
node.name: node-1
node.master: true
node.data: true
network.host: 你服务器的ip
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["服务器1的ip","服务器2的ip"]
cluster.initial_master_nodes: ["node-1","node-2"]
ingest.geoip.downloader.enabled: false
4.2、修改jvm.options
该步骤非必须,es的内存配置可以在这里修改
请参考自己服务器资源进行配置合适的内存,否则当es启动时服务器容易卡死
5、修改系统相关配置
5.1修改/etc/security/limits.conf
在文件末尾增加以下内容
# 配置 es 用户打开文件最大数(因为es在启动时调用的文件超出普通用户默认打开文件最大数4096,会导致报错)
# 在文件末尾中增加下面内容
es soft nofile 65536
es hard nofile 65536
5.2修改/etc/security/limits.d/20-nproc.conf
在文件末尾增加以下内容,文件不存在就新建该文件
# 每个进程可以打开的文件数限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
5.3修改/etc/sysctl.conf
在末尾加入以下内容
# 一个进程可以拥有的虚拟内存区域的数量
vm.max_map_count=655360
然后执行命令重新加载
sysctl -p
5.4其他服务器配置
服务器2、服务器3均按照上述步骤配置,唯一不同的是上述4.1步骤的配置中,node.name需要不同
三、启动es
1、切换用户
#切换到前面步骤新建的用户
su elastic
2、启动
执行./elasticsearch启动es
3、可能遇到的问题
如果启动失败,检查服务器防火墙是否开启以及对应端口是否开放,检查命令及开放命令如下
#启动服务器防火墙
systemctl start firewalld.service
#查看服务器开放的端口命令
firewall-cmd --list-ports
#开放服务器9200和9300端口命令
firewall-cmd --add-port=9200/tcp
firewall-cmd --add-port=9300/tcp
启动成功如图所示
浏览器访问ip:9200如下,表示成功
3、检查集群是否成功
浏览器访问http://ip:9200/_cat/nodes,如下所示则成功