ElasticSearch集群环境搭建指南详细版
ElasticSearch集群环境搭建指南
1、环境准备
选3台机器作为安装Es集群的服务器
节点名称 | IP地址 |
---|---|
node-55 | xx.xx.xx.55 |
node-56 | xx.xx.xx.57 |
node-57 | xx.xx.xx.58 |
2、安装包下载
官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch
最新安装包7.8,可以选择合适的版本,这里我将以7.7.1版本来介绍集群的搭建
3、操作步骤
3.1上传文件
上传下载的安装包到指定目录,如下,将文件存放到/tpdata目录下
3.2. 解压文件
tar -xzvf elasticsearch-7.7.1-linux-x86_64.tar.gz
解压之后的文件会生成一些文件,包括配置文件日志文件,如下
3.2.1. 文件说明
ElasticSearch的解压目录config中包含ES主要的配置文件,分别如下图
(1)elasticsearch.yml是ES的核心文件
vim /etc/elasticsearch/elasticsearch.yml
配置 | 说明 |
---|---|
cluster.name: my-els | 集群名称,名称必须相同 |
node.name: els-node1 | 节点名称,仅仅是描述名称,用于在日志中区分 |
path.data | 数据的默认存放路径 |
path.logs | 日志的默认存放路径 |
network.host | 当前节点的IP地址 |
http.port | 对外提供服务的端口,9300为集群服务的端口 |
discovery.zen.ping.unicast.hosts | 集群多个节点IP地址,也可以使用域名名称,需要各节点能够解析 |
discovery.zen.minimum_master_nodes | 集群节点数最少数量 |
(2)jvm.options 是 jvm的相关配置、内存大小等
(3)Log4j2.properties 是日志配置文件
3.3. 创建目录
(1)创建ES数据存储目录
mkdir -p /tpdata/es/data
(2)创建ES日志存储目录
mkdir -p /tpdata/es/log
如下图
3.4. 创建用户和组
如果是root用户操作以上步骤则需要创建用户,因为es不能在root用户下运行
创建用户组
groupadd es
创建用户并添加至用户组
useradd es -g es
更改用户密码(输入 123123)
passwd es
如果不是root用户则忽略此步骤,本文章以loginuser用户为例
3.5. 部署其他服务器
将上述操作的机器xx.xx.xx.55对应的/tpdata/elasticsearch-7.7.1目录拷贝到其他集群机器对应目录
scp -r /tpdata/elasticsearch-7.7.1 [email protected]:/tpdata/
scp -r /tpdata/elasticsearch-7.7.1 [email protected]:/tpdata/
修改配置
vim elasticsearch.yml
3.6. 启动es
需切换为非root用户
su es
启动服务(当前的路径为:/tpdata/elasticsearch-7.7.1)
./bin/elasticsearch
后台运行ES
可以加入-p 命令 让es在后台运行, -p 参数 记录进程ID为一个文件
设置后台启动
./bin/elasticsearch -p …/es.pid -d
所有机器均将es启动
命令检查节点启动是否正常,如下图
3.6.1. 集群节点状态查看
http://xx.xx.xx.55:9200/_cat/nodes?v
http://xx.xx.xx.57:9200/_cat/health?v
Green代表集群状态正常
3.7. Kibana安装
文件下载,与es的版本保持一致,上传到指定路径解压
修改配置文件/tpdata/kibana-7.7.1-linux-x86_64/config/kibana.yml
放开如下配置
server.port: 5601
server.host: “0.0.0.0”
elasticsearch.hosts: [“http://xxx:9200”]
kibana.index: “.kibana”
启动kibana
检查状态
访问页面:http://ip:5601,如下图则安装正常
创建索引测试:PUT zhaohaitao/
4. 常见报错
4.1. 应用启动报错
>解决方案
(1)修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
4.2. 查看节点报错
页面返回master_not_discovered_exception错误
{“error”%3A{“root_cause”%3A[{“type”%3A"master_not_discovered_exception"%2C"reason"%3Anull}]%2C"type"%3A"master_not_discovered_exception"%2C"reason"%3Anull}%2C"status"%3A503}&tn=monline_7_dg&ie=utf-8
解决方案
在每一个节点修改配置文件elasricsearch.yml
放开配置:cluster.initial_master_nodes: [“node-55”]
对应的节点为当前节点的node.name的值,修改之后重启所有的节点