Elasticsearch最详细集群环境搭建

一. 准备工作

虚拟机三台机器,一主节点,两从节点

服务器名称ip
master172.16.185.100
node01172.16.185.110
node02172.16.185.120

二. 安装es

es下载地址

#三台机器都需要这样操作
#上传到三台服务器上
➜  ~  scp elasticsearch-7.9.0-linux-x86_64.tar.gz root@172.16.185.100:/usr/local/src/
#解压
> tar -zxvf elasticsearch-7.9.0-linux-x86_64.tar.gz
#重命名并移动到/usr/local/es目录下
> mv elasticsearch-7.9.0 /usr/local/es
> cd /usr/local/es
#创建新用户:elasticsearch 不允许使用root 直接运行
> useradd es 
> passwd  es
#更改目录所属用户和用户组:
> chown -R es:es es

修改elasticsearch.yml配置文件:

## 集群名称,保证唯一
cluster.name: es-master
#### 节点名称,必须不一样
node.name: master
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 0.0.0.0
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9700
#es7.x  之后新增的配置,节点发现
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["master","node01","node02"]
#数据和存储路径
path.data: /opt/data
path.logs: /opt/logs
#可以跨域
http.cors.enabled: true
#所有域名都可以访问
http.cors.allow-origin: "*"
#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

master主机配置

cluster.name: es-master #三台机器都是一样的
node.name: master  #每台机器的主机名
node.master: true  #主节点新增该参数
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9700
#可以跨域
http.cors.enabled: true
#所有域名都可以访问
http.cors.allow-origin: "*"
discovery.seed_hosts: ["172.16.185.100:9700", "172.16.185.110:9800","172.16.185.120:9900"]
cluster.initial_master_nodes: ["master", "node01","node02"]

node01配置

cluster.name: es-master #三台机器都是一样的
node.name: node01 #每台机器的主机名
network.host: 0.0.0.0
http.port: 9202
transport.tcp.port: 9800
#可以跨域
http.cors.enabled: true
#所有域名都可以访问
http.cors.allow-origin: "*"
discovery.seed_hosts: ["172.16.185.100:9700", "172.16.185.110:9800","172.16.185.120:9900"]
cluster.initial_master_nodes: ["master", "node01","node02"]

node02配置

cluster.name: es-master #三台机器都是一样的
node.name: node02 #每台机器的主机名
network.host: 0.0.0.0
http.port: 9203
transport.tcp.port: 9900
#可以跨域
http.cors.enabled: true
#所有域名都可以访问
http.cors.allow-origin: "*"
discovery.seed_hosts: ["172.16.185.100:9700", "172.16.185.110:9800","172.16.185.120:9900"]
cluster.initial_master_nodes: ["master", "node01","node02"]

jvm调优

#更改/usr/local/es/config/jvm.options
-Xms1g   修改为 ===>  -Xms2g
-Xmx1g   修改为 ===>  -Xmx2g
设置为物理内存一半最佳,可根据服务器内存去选择调

操作系统调优(必须配置,否则ES起不来)

【1】内存优化
在/etc/sysctl.conf添加如下内容
fs.file-max=655360
vm.max_map_count=655360
sysctl -p生效
解释:
(1)vm.max_map_count=655360
系统最大打开文件描述符数
(2)vm.max_map_count=655360
限制一个进程拥有虚拟内存区域的大小

【2】修改vim /etc/security/limits.conf  *号不要去掉
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited
解释:
(nofile)最大开打开文件描述符
(nproc)最大用户进程数
(memlock)最大锁定内存地址空间

【3】修改/etc/security/limits.d/20-nproc.conf
将1024修改为65536
* soft  nproc  1024    修改前
* soft  nproc  65536   修改后
ulimit -a查看

启动和关闭:

方式一:使用es.sh 脚本执行[需要注意的是,这个文件能在集群环境下执行成功的前提是这几个节点之间做了免密登陆!!!!]
将该文件放入到/usr/local/bin
启动:./es.sh start
关闭:./es.sh stop

方式二:三台机器启动都执行该命令
/usr/local/es/bin/elasticsearch

访问浏览器:http://172.16.185.100:9201/_cat/health?v
返回的node.total是3,代表集群搭建成功

在这里插入图片描述

三. head 插件的安装

需要nodejs 环境

压缩包路径:下载

# 解压
> tar -zxvf node-v14.9.0-linux-x64.tar.gz
> mv node-v14.9.0-linux-x64 /usr/local/nodejs
# 配置环境变量
> vim /etc/profile.d/node.sh 
# 添加以下内容
export NODE_HOME=/usr/local/nodejs
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
#让配置生效 
> source /etc/profile
# 检查是否配置成功 
> node -v # 如果显示了node的版本号说明配置成功 
# 修改npm镜像源为淘宝镜像源 
> npm config set registry https://registry.npm.taobao.org
# head插件下载解压
> wget https://github.com/mobz/elasticsearch-head/archive/master.zip 
# 解压
> unzip  master.zip 
> mv elasticsearch-head-master /usr/local/elasticsearch-head
> cd /usr/local/elasticsearch-head 
> npm install  #安装node_nodules

设置vim /usr/local/es/config/elasticsearch.yml

# 追加如下两行
http.cors.enabled: true 
http.cors.allow-origin: "*"

修改Gruntfile.js

> vim /usr/local/elasticsearch-head/Gruntfile.js
添加hostname: "0.0.0.0"

在这里插入图片描述
重启ES
启动Head插件
切换到cd /usr/local/elasticsearch-head
运行:npm run start
在这里插入图片描述
访问:http://172.16.185.100:9100/
在这里插入图片描述

四. Kibana 安装

注意:要保证kibana版本和es版本保持一致,需要使用非root启动

下载地址:https://www.elastic.co/cn/downloads/kibana
解压:tar -zxvf  kibana-7.9.0-linux-x86_64.tar.gz
移动:mv kibana-7.9.0  /usr/local/es/kibana
切换:cd /usr/local/es/kibana
设置权限:chown -R es:es kibana
修改:vim /usr/local/es/kibana/config/kibana.yml
#添加如下行
server.port: 5601
server.host: "172.16.185.100"
elasticsearch.hosts: ["http://172.16.185.100:9201"]
i18n.locale: "zh-CN" 

启动:/usr/local/es/kibana/bin/kibana
访问:http://172.16.185.100:5601

在这里插入图片描述

五. IK分词器 安装

注意:要保证IK分词器版本和es版本保持一致,三台机器都需要配置的

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

将压缩包解压到/usr/local/es/plugins/ik目录下【目录所属为es:es】

在这里插入图片描述
重启es集群

验证分词
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝颜~岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值