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目录下
ElasticSearch集群环境搭建指南详细版

3.2. 解压文件

tar -xzvf elasticsearch-7.7.1-linux-x86_64.tar.gz
解压之后的文件会生成一些文件,包括配置文件日志文件,如下
ElasticSearch集群环境搭建指南详细版

3.2.1. 文件说明

ElasticSearch的解压目录config中包含ES主要的配置文件,分别如下图
ElasticSearch集群环境搭建指南详细版

(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

如下图
ElasticSearch集群环境搭建指南详细版

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
ElasticSearch集群环境搭建指南详细版ElasticSearch集群环境搭建指南详细版

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启动

命令检查节点启动是否正常,如下图
ElasticSearch集群环境搭建指南详细版

3.6.1. 集群节点状态查看

http://xx.xx.xx.55:9200/_cat/nodes?v

ElasticSearch集群环境搭建指南详细版

http://xx.xx.xx.57:9200/_cat/health?v
Green代表集群状态正常

ElasticSearch集群环境搭建指南详细版

3.7. Kibana安装

文件下载,与es的版本保持一致,上传到指定路径解压
ElasticSearch集群环境搭建指南详细版

修改配置文件/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

ElasticSearch集群环境搭建指南详细版

检查状态

访问页面:http://ip:5601,如下图则安装正常
创建索引测试:PUT zhaohaitao/
ElasticSearch集群环境搭建指南详细版

4. 常见报错

4.1. 应用启动报错

ElasticSearch集群环境搭建指南详细版>解决方案

(1)修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
ElasticSearch集群环境搭建指南详细版

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

ElasticSearch集群环境搭建指南详细版

解决方案
在每一个节点修改配置文件elasricsearch.yml
放开配置:cluster.initial_master_nodes: [“node-55”]
对应的节点为当前节点的node.name的值,修改之后重启所有的节点

ElasticSearch集群环境搭建指南详细版