虚拟机三台机器,一主节点,两从节点
服务器名称 | ip |
---|---|
master | 172.16.185.100 |
node01 | 172.16.185.110 |
node02 | 172.16.185.120 |
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,代表集群搭建成功
需要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版本和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分词器版本和es版本保持一致,三台机器都需要配置的
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
将压缩包解压到/usr/local/es/plugins/ik目录下【目录所属为es:es】