Es集群搭建以及Head插件安装

Es集群搭建以及Head插件安装

部署环境:

安装系统为:centos7
Docker版本为:dockers:18.06.3
三台虚机机ip为:192.1x8.1x2.3,192.1x8.1x2.4,192.1x8.1x2.5
Es端口我会在接下来的部署说明
部署docker:
首先我们部署docker,已经部署完docker的同学可以直接前往下一步

centos7:docker官方要求的至少是3.8以上,建议3.10以上
2, 下载阿里云docker社区版 yum源

[root@localhost ~]# cd /etc/yum.repos.d/ 
[root@localhost yum.repos.d]# wget http://mirrors.aliyun.com/docker- 			ce/linux/centos/docker-ce.repo

注:最新的版本建议自行百度官方

查看docker安装包

yum list | grep docker

4.安装Docker Ce 社区版本(不下载阿里云yum源的话默认是没有社区版的镜像的)

yum install -y docker-ce.x86_64

5.设置开机启动

systemctl enable docker

6.更新xfsprogs

yum -y update xfsprogs

7.启动docker

systemctl start docker

8.查看版本

docker --version

到此我们的docker已经部署完毕。

部署Es

拉取Es镜像

我是使用docker pull 来拉取镜像

出现拉取镜像太慢的情况 我配置的为阿里云加速
配置方法:
登陆阿里云:找到右上角控制台 点击进入之后找到:容器镜像服务,点击进去有 一个镜像加速器
命令:vi /etc/docker/daemon.json

将拷贝的加速器改为自己的就可以。
重启docker:systemctl restart docker

拉取所需要的镜像:docker pull elasticSearch:7.8.0

      备注;三台机器分别这样配置

Es集群搭建:
1.运行容器:

docker run-d -p 9200:9200 -p 9300:9300 --name es-node-1 elasticsearch:7.8.0

进入容器修改配置文件:

docker exec -it containerID /bin/bash
cd config 
vi elasticsearch.yml

下面是我的yml文件配置并有相应的注解:

#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-1
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#数据存档位置
path.data: /usr/share/elasticsearch/data
#日志存放位置
path.logs: /usr/share/elasticsearch/log
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.1x8.1X2.3
#设置映射端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.1x8.1X2.3:9300","192.1x8.1X2.4:9301","192.1x8.1X2.5:9302"]
#elasticsearch自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true

2.运行容器:

docker run -d  -p 9201:9201 -p 9301:9301--name es-node-2 elasticsearch:7.8.0

进入容器修改配置文件:

docker exec -it containerID /bin/bash
cd config 
vi elasticsearch.yml

下面是我的yml文件配置并有相应的注解:

#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-2
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#数据存档位置
path.data: /usr/share/elasticsearch/data
#日志存放位置
path.logs: /usr/share/elasticsearch/log
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.1x8.1X2.4
#设置映射端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9301
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.1x8.1X2.3:9300","192.1x8.1X2.4:9301","192.1x8.1X2.5:9302"]
#elasticsearch自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true

3.运行容器:

docker run  -d -p 9202:9202 -p 9302:9302 --name es-node-3 elasticsearch:7.8.0

进入容器修改配置文件:

docker exec -it containerID /bin/bash
cd config 
vi elasticsearch.yml

下面是我的yml文件配置并有相应的注解:

#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-3
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#数据存档位置
path.data: /usr/share/elasticsearch/data
#日志存放位置
path.logs: /usr/share/elasticsearch/log
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.1x8.1x2.5
#设置映射端口
http.port: 9202
#内部节点之间沟通端口
transport.tcp.port: 9302
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.1x8.1X2.3:9300","192.1x8.1X2.4:9301","192.1x8.1X2.5:9302"]
#搭建集群的时候,选出合格的节点集群
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true

访问:http://192.1x8.1x2.3:9200/_cat/nodes?pretty

出现下面的内容
在这里插入图片描述

注:Es如果出现闪退情况
可以查看日志:docker logs -f 容器ID

这边是我遇见的问题

ERROR:  bootstrap checks failed
 max virtual memory areas vm.max_map_count [65530] is too low, 	 increase to at least [262144]

分配内存太小,需要将vm.max_map_count的值调大,
命令:sysctl -w vm.max_map_count=262144
查看vm.max_map_count命令:

sysctl -a|grep vm.max_map_count

但是以上方法在重启虚拟机之后就不生效,如果想要一直生效的话,到 /etc目录下编辑sysctl.conf文件,添加vm.max_map_count=262144就可以 了

**

部署Es-head:

**

		拉取head镜像:docker pull mobz/elasticsearch-head:5

创建容器:docker run -p 9100:9100 --name head mobz/elasticsearch-head:5

安装好以后,访问9100端口。此时无法访问ES

在elasticsearch的yml配置文件中添加:

#跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

重启Es就可以了。

可以查看到我们所有的节点了。
在这里插入图片描述

当然也可以查看到我们的插入的数据:这边是我插入的几条测试数据在这里插入图片描述

以上就是我的Es集群搭建全部过程,希望对大家有所帮助。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值