一、资源准备
名称 | 地址 |
---|---|
ElasticSearch7.8 | https://mirrors.huaweicloud.com/home(华为开源镜像站) |
Logstash7.8 | https://mirrors.huaweicloud.com/home(华为开源镜像站) |
Kibana7.8 | https://mirrors.huaweicloud.com/home(华为开源镜像站 |
jdk1.8 | https://www.oracle.com/java |
二、安装配置
- 自行安装jdk及配置环境变量
- 解压
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz /usr/local/es
- 创建数据存放地址和日志存放地址
mkdir /opt/es/data
mkdir /opt/es/logs
chown -R my_user:my_user /opt/es/data #赋权
chown -R my_user:my_user /opt/es/logs
- 修改elasticsearch.yml配置文件
vim /usr/local/elasticsearch-7.8.0/config/elasticsearch.yml
-------------------------------------------------------------------------------------------------------------------------
cluster.name: es-node1 #为集群提供一个名称
node.name: node-1 #此节点名称
path.data: /opt/es/data #数据存放的地址
path.logs: /opt/es/logs #日志存放地址
network.host: 0.0.0.0 #网络绑定这样设置就好了
cluster.initial_master_nodes: ["node-1"] #将es-node1设置为master节点
- 修改系统进程内存限制
vim /etc/security/limits.conf
-----------------------------------------------------------------------------------------------------------------------
添加数据
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
-----------------------------------------------------------------------------------------------------------------------
vim /etc/sysctl.conf
-----------------------------------------------------------------------------------------------------------------------
vm.max_map_count=262145 #(es需要262144,我们在基础上+1,保证它启动)
-----------------------------------------------------------------------------------------------------------------------
sysctl -p #刷新
- 创建用户
由于elasticsearch不允许root用户操作,所以需要建立子用户
useradd my_user #增加一个子用户
chown -R my_user:my_user /usr/local/elasticsearch-7.8.0 #赋权
su esuser #切换成子用户
#进入 es/bin命令启动
cd /usr/local/elasticsearch-7.7.0/bin
./elasticsearch
三、es集群启动错误
原因:不能用root用户登录
解决:
su root
./elasticsearch
原因:普通用户没有 /opt/es/logs文件权限
解决
chown -R my_user:my_user /opt/es/logs
原因:上次启动后未正常关闭
解决:
ps -ef | grep elasticsearch #查看elasticsearch进程号
Kill -9 15802 (进程号根据自己的) #强制关闭该进程
- 校验es启动
浏览器输入ip:9200 如果返回json字符串则安装成功
单机版搭建完成!
四、es集群搭建
在config目录下,修改每个节点的elasticsearch.yml
- node-1节点配置
#集群名称
cluster.name: es-node
#节点名称,每个节点的名称不能重复
node.name: node-1
#数据、日志存储目录
path.data: /opt/es/data
path.logs: /opt/es/logs
#将绑定到所有网络接口
network.host: localhost(node-1的IP地址)
#是不是有资格成为主节点
node.master: true
node.data: true
#对外暴露端口。默认9200
http.port: 9200
#es集群节点之间的通信端口号。默认9300
transport.tcp.port: 9300
#跨域设置,保障head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置集群初始化后的主节点
cluster.initial_master_nodes: ["node-1"]
#节点发现,使用节点之间通信端口
discovery.seed_hosts: ["localhost(node-1):9300","localhost(node-2):9301","localhost(node-3):9302"]
- node-2节点配置
#集群名称
cluster.name: es-node
#节点名称,每个节点的名称不能重复
node.name: node-2
#数据、日志存储目录
path.data: /opt/es/data
path.logs: /opt/es/logs
#将绑定到所有网络接口
network.host: localhost(node-2的IP地址)
#是不是有资格成为主节点
node.master: true
node.data: true
#对外暴露端口。默认9200
http.port: 9201
#es集群节点之间的通信端口号。默认9300
transport.tcp.port: 9301
#跨域设置,保障head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置集群初始化后的主节点
cluster.initial_master_nodes: ["node-2"]
#节点发现,使用节点之间通信端口
discovery.seed_hosts: ["localhost(node-1):9300","localhost(node-2):9301","localhost(node-3):9302"]
- node-2节点配置
cluster.name: es-node
#节点名称,每个节点的名称不能重复
node.name: node-3
#数据、日志存储目录
path.data: /opt/es/data
path.logs: /opt/es/logs
#将绑定到所有网络接口
network.host: localhost(node-3的IP地址)
#是不是有资格成为主节点
node.master: true
node.data: true
#对外暴露端口。默认9200
http.port: 9202
#es集群节点之间的通信端口号。默认9300
transport.tcp.port: 9302
#跨域设置,保障head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置集群初始化后的主节点
cluster.initial_master_nodes: ["node-3"]
#节点发现,使用节点之间通信端口
discovery.seed_hosts: ["localhost(node-1):9300","localhost(node-2):9301","localhost(node-3):9302"]
同单机版分别启动es